private void generateXmlProlog ( Node . Nodes page ) { /* * An XML declaration is generated under the following conditions: * * - 'omit-xml-declaration' attribute of <jsp:output> action is set to * "no" or "false" * - JSP document without a <jsp:root> */ String omitXmlDecl = pageInfo . getOmitXmlDecl ( ) ; if ( ( omitXmlDecl != null && ! JspUtil . booleanValue ( omitXmlDecl ) ) || ( omitXmlDecl == null && page . getRoot ( ) . isXmlSyntax ( ) && ! pageInfo . hasJspRoot ( ) && ! ctxt . isTagFile ( ) ) ) { String cType = pageInfo . getContentType ( ) ; String charSet = cType . substring ( cType . indexOf ( "charset=" ) + 8 ) ; out . printil ( "out.write(\"<?xml version=\\\"1.0\\\" encoding=\\\"" + charSet + "\\\"?>\\n\");" ) ; } /* * Output a DOCTYPE declaration if the doctype-root-element appears. * If doctype-public appears: * <!DOCTYPE name PUBLIC "doctypePublic" "doctypeSystem"> * else * <!DOCTYPE name SYSTEM "doctypeSystem" > */ String doctypeName = pageInfo . getDoctypeName ( ) ; if ( doctypeName != null ) { String doctypePublic = pageInfo . getDoctypePublic ( ) ; String doctypeSystem = pageInfo . getDoctypeSystem ( ) ; out . printin ( "out.write(\"<!DOCTYPE " ) ; out . print ( doctypeName ) ; if ( doctypePublic == null ) { out . print ( " SYSTEM \\\"" ) ; } else { out . print ( " PUBLIC \\\"" ) ; out . print ( doctypePublic ) ; out . print ( "\\\" \\\"" ) ; } out . print ( doctypeSystem ) ; out . println ( "\\\">\\n\");" ) ; } }
Generates an XML Prolog which includes an XML declaration and an XML doctype declaration .