Fields Summary |
---|
protected static final String | NAMESPACES_FEATURE_IDNamespaces feature id (http://xml.org/sax/features/namespaces). |
protected static final String | NAMESPACE_PREFIXES_FEATURE_IDNamespace prefixes feature id (http://xml.org/sax/features/namespace-prefixes). |
protected static final String | VALIDATION_FEATURE_IDValidation feature id (http://xml.org/sax/features/validation). |
protected static final String | SCHEMA_VALIDATION_FEATURE_IDSchema validation feature id (http://apache.org/xml/features/validation/schema). |
protected static final String | SCHEMA_FULL_CHECKING_FEATURE_IDSchema full checking feature id (http://apache.org/xml/features/validation/schema-full-checking). |
protected static final String | HONOUR_ALL_SCHEMA_LOCATIONS_IDHonour all schema locations feature id (http://apache.org/xml/features/honour-all-schemaLocations). |
protected static final String | VALIDATE_ANNOTATIONS_IDValidate schema annotations feature id (http://apache.org/xml/features/validate-annotations) |
protected static final String | GENERATE_SYNTHETIC_ANNOTATIONS_IDGenerate synthetic schema annotations feature id (http://apache.org/xml/features/generate-synthetic-annotations). |
protected static final String | DYNAMIC_VALIDATION_FEATURE_IDDynamic validation feature id (http://apache.org/xml/features/validation/dynamic). |
protected static final String | LOAD_EXTERNAL_DTD_FEATURE_IDLoad external DTD feature id (http://apache.org/xml/features/nonvalidating/load-external-dtd). |
protected static final String | XINCLUDE_FEATURE_IDXInclude feature id (http://apache.org/xml/features/xinclude). |
protected static final String | XINCLUDE_FIXUP_BASE_URIS_FEATURE_IDXInclude fixup base URIs feature id (http://apache.org/xml/features/xinclude/fixup-base-uris). |
protected static final String | XINCLUDE_FIXUP_LANGUAGE_FEATURE_IDXInclude fixup language feature id (http://apache.org/xml/features/xinclude/fixup-language). |
protected static final String | LEXICAL_HANDLER_PROPERTY_IDLexical handler property id (http://xml.org/sax/properties/lexical-handler). |
protected static final String | DEFAULT_PARSER_NAMEDefault parser name. |
protected static final boolean | DEFAULT_NAMESPACESDefault namespaces support (true). |
protected static final boolean | DEFAULT_NAMESPACE_PREFIXESDefault namespace prefixes (false). |
protected static final boolean | DEFAULT_VALIDATIONDefault validation support (false). |
protected static final boolean | DEFAULT_LOAD_EXTERNAL_DTDDefault load external DTD (true). |
protected static final boolean | DEFAULT_SCHEMA_VALIDATIONDefault Schema validation support (false). |
protected static final boolean | DEFAULT_SCHEMA_FULL_CHECKINGDefault Schema full checking support (false). |
protected static final boolean | DEFAULT_HONOUR_ALL_SCHEMA_LOCATIONSDefault honour all schema locations (false). |
protected static final boolean | DEFAULT_VALIDATE_ANNOTATIONSDefault validate schema annotations (false). |
protected static final boolean | DEFAULT_GENERATE_SYNTHETIC_ANNOTATIONSDefault generate synthetic schema annotations (false). |
protected static final boolean | DEFAULT_DYNAMIC_VALIDATIONDefault dynamic validation support (false). |
protected static final boolean | DEFAULT_XINCLUDEDefault XInclude processing support (false). |
protected static final boolean | DEFAULT_XINCLUDE_FIXUP_BASE_URISDefault XInclude fixup base URIs support (true). |
protected static final boolean | DEFAULT_XINCLUDE_FIXUP_LANGUAGEDefault XInclude fixup language support (true). |
protected static final boolean | DEFAULT_CANONICALDefault canonical output (false). |
protected PrintWriter | fOutPrint writer. |
protected boolean | fCanonicalCanonical output. |
protected int | fElementDepthElement depth. |
protected Locator | fLocatorDocument locator. |
protected boolean | fXML11Processing XML 1.1 document. |
protected boolean | fInCDATAIn CDATA section. |
Methods Summary |
---|
public void | characters(char[] ch, int start, int length)Characters.
if (!fInCDATA) {
normalizeAndPrint(ch, start, length, false);
}
else {
for (int i = 0; i < length; ++i) {
fOut.print(ch[start+i]);
}
}
fOut.flush();
|
public void | comment(char[] ch, int start, int length)Comment.
if (!fCanonical && fElementDepth > 0) {
fOut.print("<!--");
for (int i = 0; i < length; ++i) {
fOut.print(ch[start+i]);
}
fOut.print("-->");
fOut.flush();
}
|
public void | endCDATA()End CDATA section.
if (!fCanonical) {
fInCDATA = false;
fOut.print("]]>");
}
|
public void | endDTD()End DTD.
|
public void | endElement(java.lang.String uri, java.lang.String local, java.lang.String raw)End element.
fElementDepth--;
fOut.print("</");
fOut.print(raw);
fOut.print('>");
fOut.flush();
|
public void | endEntity(java.lang.String name)End entity.
|
public void | error(org.xml.sax.SAXParseException ex)Error.
printError("Error", ex);
|
public void | fatalError(org.xml.sax.SAXParseException ex)Fatal error.
printError("Fatal Error", ex);
throw ex;
|
protected java.lang.String | getVersion()Extracts the XML version from the Locator.
if (fLocator == null) {
return null;
}
String version = null;
Method getXMLVersion = null;
try {
getXMLVersion = fLocator.getClass().getMethod("getXMLVersion", new Class[]{});
// If Locator implements Locator2, this method will exist.
if (getXMLVersion != null) {
version = (String) getXMLVersion.invoke(fLocator, (Object[]) null);
}
}
catch (Exception e) {
// Either this locator object doesn't have
// this method, or we're on an old JDK.
}
return version;
|
public void | ignorableWhitespace(char[] ch, int start, int length)Ignorable whitespace.
characters(ch, start, length);
fOut.flush();
|
public static void | main(java.lang.String[] argv)Main program entry point.
// is there anything to do?
if (argv.length == 0) {
printUsage();
System.exit(1);
}
// variables
Writer writer = null;
XMLReader parser = null;
boolean namespaces = DEFAULT_NAMESPACES;
boolean namespacePrefixes = DEFAULT_NAMESPACE_PREFIXES;
boolean validation = DEFAULT_VALIDATION;
boolean externalDTD = DEFAULT_LOAD_EXTERNAL_DTD;
boolean schemaValidation = DEFAULT_SCHEMA_VALIDATION;
boolean schemaFullChecking = DEFAULT_SCHEMA_FULL_CHECKING;
boolean honourAllSchemaLocations = DEFAULT_HONOUR_ALL_SCHEMA_LOCATIONS;
boolean validateAnnotations = DEFAULT_VALIDATE_ANNOTATIONS;
boolean generateSyntheticAnnotations = DEFAULT_GENERATE_SYNTHETIC_ANNOTATIONS;
boolean dynamicValidation = DEFAULT_DYNAMIC_VALIDATION;
boolean xincludeProcessing = DEFAULT_XINCLUDE;
boolean xincludeFixupBaseURIs = DEFAULT_XINCLUDE_FIXUP_BASE_URIS;
boolean xincludeFixupLanguage = DEFAULT_XINCLUDE_FIXUP_LANGUAGE;
boolean canonical = DEFAULT_CANONICAL;
// process arguments
for (int i = 0; i < argv.length; i++) {
String arg = argv[i];
if (arg.startsWith("-")) {
String option = arg.substring(1);
if (option.equals("p")) {
// get parser name
if (++i == argv.length) {
System.err.println("error: Missing argument to -p option.");
}
String parserName = argv[i];
// create parser
try {
parser = XMLReaderFactory.createXMLReader(parserName);
}
catch (Exception e) {
try {
Parser sax1Parser = ParserFactory.makeParser(parserName);
parser = new ParserAdapter(sax1Parser);
System.err.println("warning: Features and properties not supported on SAX1 parsers.");
}
catch (Exception ex) {
parser = null;
System.err.println("error: Unable to instantiate parser ("+parserName+")");
e.printStackTrace(System.err);
}
}
continue;
}
if (option.equalsIgnoreCase("n")) {
namespaces = option.equals("n");
continue;
}
if (option.equalsIgnoreCase("np")) {
namespacePrefixes = option.equals("np");
continue;
}
if (option.equalsIgnoreCase("v")) {
validation = option.equals("v");
continue;
}
if (option.equalsIgnoreCase("xd")) {
externalDTD = option.equals("xd");
continue;
}
if (option.equalsIgnoreCase("s")) {
schemaValidation = option.equals("s");
continue;
}
if (option.equalsIgnoreCase("f")) {
schemaFullChecking = option.equals("f");
continue;
}
if (option.equalsIgnoreCase("hs")) {
honourAllSchemaLocations = option.equals("hs");
continue;
}
if (option.equalsIgnoreCase("va")) {
validateAnnotations = option.equals("va");
continue;
}
if (option.equalsIgnoreCase("ga")) {
generateSyntheticAnnotations = option.equals("ga");
continue;
}
if (option.equalsIgnoreCase("dv")) {
dynamicValidation = option.equals("dv");
continue;
}
if (option.equalsIgnoreCase("xi")) {
xincludeProcessing = option.equals("xi");
continue;
}
if (option.equalsIgnoreCase("xb")) {
xincludeFixupBaseURIs = option.equals("xb");
continue;
}
if (option.equalsIgnoreCase("xl")) {
xincludeFixupLanguage = option.equals("xl");
continue;
}
if (option.equalsIgnoreCase("c")) {
canonical = option.equals("c");
continue;
}
if (option.equals("h")) {
printUsage();
continue;
}
}
// use default parser?
if (parser == null) {
// create parser
try {
parser = XMLReaderFactory.createXMLReader(DEFAULT_PARSER_NAME);
}
catch (Exception e) {
System.err.println("error: Unable to instantiate parser ("+DEFAULT_PARSER_NAME+")");
e.printStackTrace(System.err);
continue;
}
}
// set parser features
try {
parser.setFeature(NAMESPACES_FEATURE_ID, namespaces);
}
catch (SAXException e) {
System.err.println("warning: Parser does not support feature ("+NAMESPACES_FEATURE_ID+")");
}
try {
parser.setFeature(NAMESPACE_PREFIXES_FEATURE_ID, namespacePrefixes);
}
catch (SAXException e) {
System.err.println("warning: Parser does not support feature ("+NAMESPACE_PREFIXES_FEATURE_ID+")");
}
try {
parser.setFeature(VALIDATION_FEATURE_ID, validation);
}
catch (SAXException e) {
System.err.println("warning: Parser does not support feature ("+VALIDATION_FEATURE_ID+")");
}
try {
parser.setFeature(LOAD_EXTERNAL_DTD_FEATURE_ID, externalDTD);
}
catch (SAXNotRecognizedException e) {
System.err.println("warning: Parser does not recognize feature ("+LOAD_EXTERNAL_DTD_FEATURE_ID+")");
}
catch (SAXNotSupportedException e) {
System.err.println("warning: Parser does not support feature ("+LOAD_EXTERNAL_DTD_FEATURE_ID+")");
}
try {
parser.setFeature(SCHEMA_VALIDATION_FEATURE_ID, schemaValidation);
}
catch (SAXNotRecognizedException e) {
System.err.println("warning: Parser does not recognize feature ("+SCHEMA_VALIDATION_FEATURE_ID+")");
}
catch (SAXNotSupportedException e) {
System.err.println("warning: Parser does not support feature ("+SCHEMA_VALIDATION_FEATURE_ID+")");
}
try {
parser.setFeature(SCHEMA_FULL_CHECKING_FEATURE_ID, schemaFullChecking);
}
catch (SAXNotRecognizedException e) {
System.err.println("warning: Parser does not recognize feature ("+SCHEMA_FULL_CHECKING_FEATURE_ID+")");
}
catch (SAXNotSupportedException e) {
System.err.println("warning: Parser does not support feature ("+SCHEMA_FULL_CHECKING_FEATURE_ID+")");
}
try {
parser.setFeature(HONOUR_ALL_SCHEMA_LOCATIONS_ID, honourAllSchemaLocations);
}
catch (SAXNotRecognizedException e) {
System.err.println("warning: Parser does not recognize feature ("+HONOUR_ALL_SCHEMA_LOCATIONS_ID+")");
}
catch (SAXNotSupportedException e) {
System.err.println("warning: Parser does not support feature ("+HONOUR_ALL_SCHEMA_LOCATIONS_ID+")");
}
try {
parser.setFeature(VALIDATE_ANNOTATIONS_ID, validateAnnotations);
}
catch (SAXNotRecognizedException e) {
System.err.println("warning: Parser does not recognize feature ("+VALIDATE_ANNOTATIONS_ID+")");
}
catch (SAXNotSupportedException e) {
System.err.println("warning: Parser does not support feature ("+VALIDATE_ANNOTATIONS_ID+")");
}
try {
parser.setFeature(GENERATE_SYNTHETIC_ANNOTATIONS_ID, generateSyntheticAnnotations);
}
catch (SAXNotRecognizedException e) {
System.err.println("warning: Parser does not recognize feature ("+GENERATE_SYNTHETIC_ANNOTATIONS_ID+")");
}
catch (SAXNotSupportedException e) {
System.err.println("warning: Parser does not support feature ("+GENERATE_SYNTHETIC_ANNOTATIONS_ID+")");
}
try {
parser.setFeature(DYNAMIC_VALIDATION_FEATURE_ID, dynamicValidation);
}
catch (SAXNotRecognizedException e) {
System.err.println("warning: Parser does not recognize feature ("+DYNAMIC_VALIDATION_FEATURE_ID+")");
}
catch (SAXNotSupportedException e) {
System.err.println("warning: Parser does not support feature ("+DYNAMIC_VALIDATION_FEATURE_ID+")");
}
try {
parser.setFeature(XINCLUDE_FEATURE_ID, xincludeProcessing);
}
catch (SAXNotRecognizedException e) {
System.err.println("warning: Parser does not recognize feature ("+XINCLUDE_FEATURE_ID+")");
}
catch (SAXNotSupportedException e) {
System.err.println("warning: Parser does not support feature ("+XINCLUDE_FEATURE_ID+")");
}
try {
parser.setFeature(XINCLUDE_FIXUP_BASE_URIS_FEATURE_ID, xincludeFixupBaseURIs);
}
catch (SAXNotRecognizedException e) {
System.err.println("warning: Parser does not recognize feature ("+XINCLUDE_FIXUP_BASE_URIS_FEATURE_ID+")");
}
catch (SAXNotSupportedException e) {
System.err.println("warning: Parser does not support feature ("+XINCLUDE_FIXUP_BASE_URIS_FEATURE_ID+")");
}
try {
parser.setFeature(XINCLUDE_FIXUP_LANGUAGE_FEATURE_ID, xincludeFixupLanguage);
}
catch (SAXNotRecognizedException e) {
System.err.println("warning: Parser does not recognize feature ("+XINCLUDE_FIXUP_LANGUAGE_FEATURE_ID+")");
}
catch (SAXNotSupportedException e) {
System.err.println("warning: Parser does not support feature ("+XINCLUDE_FIXUP_LANGUAGE_FEATURE_ID+")");
}
// setup writer
if (writer == null) {
writer = new Writer();
try {
writer.setOutput(System.out, "UTF8");
}
catch (UnsupportedEncodingException e) {
System.err.println("error: Unable to set output. Exiting.");
System.exit(1);
}
}
// set parser
parser.setContentHandler(writer);
parser.setErrorHandler(writer);
try {
parser.setProperty(LEXICAL_HANDLER_PROPERTY_ID, writer);
}
catch (SAXException e) {
// ignore
}
// parse file
writer.setCanonical(canonical);
try {
parser.parse(arg);
}
catch (SAXParseException e) {
// ignore
}
catch (Exception e) {
System.err.println("error: Parse error occurred - "+e.getMessage());
if (e instanceof SAXException) {
Exception nested = ((SAXException)e).getException();
if (nested != null) {
e = nested;
}
}
e.printStackTrace(System.err);
}
}
|
protected void | normalizeAndPrint(java.lang.String s, boolean isAttValue)Normalizes and prints the given string.
int len = (s != null) ? s.length() : 0;
for (int i = 0; i < len; i++) {
char c = s.charAt(i);
normalizeAndPrint(c, isAttValue);
}
|
protected void | normalizeAndPrint(char[] ch, int offset, int length, boolean isAttValue)Normalizes and prints the given array of characters.
for (int i = 0; i < length; i++) {
normalizeAndPrint(ch[offset + i], isAttValue);
}
|
protected void | normalizeAndPrint(char c, boolean isAttValue)Normalizes and print the given character.
switch (c) {
case '<": {
fOut.print("<");
break;
}
case '>": {
fOut.print(">");
break;
}
case '&": {
fOut.print("&");
break;
}
case '"": {
// A '"' that appears in character data
// does not need to be escaped.
if (isAttValue) {
fOut.print(""");
}
else {
fOut.print("\"");
}
break;
}
case '\r": {
// If CR is part of the document's content, it
// must not be printed as a literal otherwise
// it would be normalized to LF when the document
// is reparsed.
fOut.print("
");
break;
}
case '\n": {
if (fCanonical) {
fOut.print("
");
break;
}
// else, default print char
}
default: {
// In XML 1.1, control chars in the ranges [#x1-#x1F, #x7F-#x9F] must be escaped.
//
// Escape space characters that would be normalized to #x20 in attribute values
// when the document is reparsed.
//
// Escape NEL (0x85) and LSEP (0x2028) that appear in content
// if the document is XML 1.1, since they would be normalized to LF
// when the document is reparsed.
if (fXML11 && ((c >= 0x01 && c <= 0x1F && c != 0x09 && c != 0x0A)
|| (c >= 0x7F && c <= 0x9F) || c == 0x2028)
|| isAttValue && (c == 0x09 || c == 0x0A)) {
fOut.print("");
fOut.print(Integer.toHexString(c).toUpperCase());
fOut.print(";");
}
else {
fOut.print(c);
}
}
}
|
protected void | printError(java.lang.String type, org.xml.sax.SAXParseException ex)Prints the error message.
System.err.print("[");
System.err.print(type);
System.err.print("] ");
String systemId = ex.getSystemId();
if (systemId != null) {
int index = systemId.lastIndexOf('/");
if (index != -1)
systemId = systemId.substring(index + 1);
System.err.print(systemId);
}
System.err.print(':");
System.err.print(ex.getLineNumber());
System.err.print(':");
System.err.print(ex.getColumnNumber());
System.err.print(": ");
System.err.print(ex.getMessage());
System.err.println();
System.err.flush();
|
private static void | printUsage()Prints the usage.
System.err.println("usage: java sax.Writer (options) uri ...");
System.err.println();
System.err.println("options:");
System.err.println(" -p name Select parser by name.");
System.err.println(" -n | -N Turn on/off namespace processing.");
System.err.println(" -np | -NP Turn on/off namespace prefixes.");
System.err.println(" NOTE: Requires use of -n.");
System.err.println(" -v | -V Turn on/off validation.");
System.err.println(" -xd | -XD Turn on/off loading of external DTDs.");
System.err.println(" NOTE: Always on when -v in use and not supported by all parsers.");
System.err.println(" -s | -S Turn on/off Schema validation support.");
System.err.println(" NOTE: Not supported by all parsers.");
System.err.println(" -f | -F Turn on/off Schema full checking.");
System.err.println(" NOTE: Requires use of -s and not supported by all parsers.");
System.err.println(" -hs | -HS Turn on/off honouring of all schema locations.");
System.err.println(" NOTE: Requires use of -s and not supported by all parsers.");
System.err.println(" -va | -VA Turn on/off validation of schema annotations.");
System.err.println(" NOTE: Requires use of -s and not supported by all parsers.");
System.err.println(" -ga | -GA Turn on/off generation of synthetic schema annotations.");
System.err.println(" NOTE: Requires use of -s and not supported by all parsers.");
System.err.println(" -dv | -DV Turn on/off dynamic validation.");
System.err.println(" NOTE: Not supported by all parsers.");
System.err.println(" -xi | -XI Turn on/off XInclude processing.");
System.err.println(" NOTE: Not supported by all parsers.");
System.err.println(" -xb | -XB Turn on/off base URI fixup during XInclude processing.");
System.err.println(" NOTE: Requires use of -xi and not supported by all parsers.");
System.err.println(" -xl | -XL Turn on/off language fixup during XInclude processing.");
System.err.println(" NOTE: Requires use of -xi and not supported by all parsers.");
System.err.println(" -c | -C Turn on/off Canonical XML output.");
System.err.println(" NOTE: This is not W3C canonical output.");
System.err.println(" -h This help screen.");
System.err.println();
System.err.println("defaults:");
System.err.println(" Parser: "+DEFAULT_PARSER_NAME);
System.err.print(" Namespaces: ");
System.err.println(DEFAULT_NAMESPACES ? "on" : "off");
System.err.print(" Prefixes: ");
System.err.println(DEFAULT_NAMESPACE_PREFIXES ? "on" : "off");
System.err.print(" Validation: ");
System.err.println(DEFAULT_VALIDATION ? "on" : "off");
System.err.print(" Load External DTD: ");
System.err.println(DEFAULT_LOAD_EXTERNAL_DTD ? "on" : "off");
System.err.print(" Schema: ");
System.err.println(DEFAULT_SCHEMA_VALIDATION ? "on" : "off");
System.err.print(" Schema full checking: ");
System.err.println(DEFAULT_SCHEMA_FULL_CHECKING ? "on" : "off");
System.err.print(" Dynamic: ");
System.err.println(DEFAULT_DYNAMIC_VALIDATION ? "on" : "off");
System.err.print(" Canonical: ");
System.err.println(DEFAULT_CANONICAL ? "on" : "off");
System.err.print(" Honour all schema locations: ");
System.err.println(DEFAULT_HONOUR_ALL_SCHEMA_LOCATIONS ? "on" : "off");
System.err.print(" Validate Annotations: ");
System.err.println(DEFAULT_VALIDATE_ANNOTATIONS ? "on" : "off");
System.err.print(" Generate Synthetic Annotations: ");
System.err.println(DEFAULT_GENERATE_SYNTHETIC_ANNOTATIONS ? "on" : "off");
System.err.print(" XInclude: ");
System.err.println(DEFAULT_XINCLUDE ? "on" : "off");
System.err.print(" XInclude base URI fixup: ");
System.err.println(DEFAULT_XINCLUDE_FIXUP_BASE_URIS ? "on" : "off");
System.err.print(" XInclude language fixup: ");
System.err.println(DEFAULT_XINCLUDE_FIXUP_LANGUAGE ? "on" : "off");
|
public void | processingInstruction(java.lang.String target, java.lang.String data)Processing instruction.
if (fElementDepth > 0) {
fOut.print("<?");
fOut.print(target);
if (data != null && data.length() > 0) {
fOut.print(' ");
fOut.print(data);
}
fOut.print("?>");
fOut.flush();
}
|
public void | setCanonical(boolean canonical)Sets whether output is canonical.
fCanonical = canonical;
|
public void | setDocumentLocator(org.xml.sax.Locator locator)Set Document Locator.
fLocator = locator;
|
public void | setOutput(java.io.OutputStream stream, java.lang.String encoding)Sets the output stream for printing.
if (encoding == null) {
encoding = "UTF8";
}
java.io.Writer writer = new OutputStreamWriter(stream, encoding);
fOut = new PrintWriter(writer);
|
public void | setOutput(java.io.Writer writer)Sets the output writer.
fOut = writer instanceof PrintWriter
? (PrintWriter)writer : new PrintWriter(writer);
|
protected org.xml.sax.Attributes | sortAttributes(org.xml.sax.Attributes attrs)Returns a sorted list of attributes.
AttributesImpl attributes = new AttributesImpl();
int len = (attrs != null) ? attrs.getLength() : 0;
for (int i = 0; i < len; i++) {
String name = attrs.getQName(i);
int count = attributes.getLength();
int j = 0;
while (j < count) {
if (name.compareTo(attributes.getQName(j)) < 0) {
break;
}
j++;
}
attributes.insertAttributeAt(j, name, attrs.getType(i),
attrs.getValue(i));
}
return attributes;
|
public void | startCDATA()Start CDATA section.
if (!fCanonical) {
fOut.print("<![CDATA[");
fInCDATA = true;
}
|
public void | startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)Start DTD.
|
public void | startDocument()Start document.
fElementDepth = 0;
fXML11 = false;
fInCDATA = false;
|
public void | startElement(java.lang.String uri, java.lang.String local, java.lang.String raw, org.xml.sax.Attributes attrs)Start element.
// Root Element
if (fElementDepth == 0) {
if (fLocator != null) {
fXML11 = "1.1".equals(getVersion());
fLocator = null;
}
// The XML declaration cannot be printed in startDocument because
// the version reported by the Locator cannot be relied on until after
// the XML declaration in the instance document has been read.
if (!fCanonical) {
if (fXML11) {
fOut.println("<?xml version=\"1.1\" encoding=\"UTF-8\"?>");
}
else {
fOut.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
}
fOut.flush();
}
}
fElementDepth++;
fOut.print('<");
fOut.print(raw);
if (attrs != null) {
attrs = sortAttributes(attrs);
int len = attrs.getLength();
for (int i = 0; i < len; i++) {
fOut.print(' ");
fOut.print(attrs.getQName(i));
fOut.print("=\"");
normalizeAndPrint(attrs.getValue(i), true);
fOut.print('"");
}
}
fOut.print('>");
fOut.flush();
|
public void | startEntity(java.lang.String name)Start entity.
|
public void | warning(org.xml.sax.SAXParseException ex)Warning.
printError("Warning", ex);
|