| <?xml version="1.0" standalone="no"?> |
| <!-- |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| --> |
| |
| <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd"> |
| |
| <s1 title="Sample: DOMPrint"> |
| |
| <s2 title="DOMPrint"> |
| <p>DOMPrint parses an XML file, constructs the DOM tree, and |
| invokes DOMLSSerializer::write() to serialize the resultant |
| DOM tree back to XML stream. |
| </p> |
| |
| <s3 title="Running DOMPrint"> |
| |
| <p>The DOMPrint sample parses an XML file, using either a validating |
| or non-validating DOM parser configuration, builds a DOM tree, |
| and then invokes DOMLSSerializer::write() to serialize the |
| resultant DOM tree. To run DOMPrint, enter the following:</p> |
| <source>DOMPrint <XML file></source> |
| <p>The following parameters may be set from the command line </p> |
| <source> |
| Usage: |
| DOMPrint [options] <XML file> |
| |
| This program invokes the DOM parser, and builds the DOM tree |
| It then asks the DOMLSSerializer to serialize the DOM tree. |
| |
| Options: |
| -e create entity reference nodes. Default is no expansion. |
| -v=xxx Validation scheme [always | never | auto*]. |
| -n Enable namespace processing. Default is off. |
| -s Enable schema processing. Default is off. |
| -f Enable full schema constraint checking. Defaults is off. |
| -wenc=XXX Use a particular encoding for output. Default is |
| the same encoding as the input XML file. UTF-8 if |
| input XML file has not XML declaration. |
| -wfile=xxx Write to a file instead of stdout. |
| -wscs=xxx Enable/Disable split-cdata-sections. Default on. |
| -wddc=xxx Enable/Disable discard-default-content. Default on. |
| -wflt=xxx Enable/Disable filtering. Default off. |
| -wfpp=xxx Enable/Disable format-pretty-print. Default off. |
| -wbom=xxx Enable/Disable write Byte-Order-Mark Default off. |
| -? Show this help |
| * = Default if not provided explicitly. |
| |
| The parser has intrinsic support for the following encodings:\n" |
| UTF-8, US-ASCII, ISO8859-1, UTF-16[BL]E, UCS-4[BL]E,\n" |
| WINDOWS-1252, IBM1140, IBM037, IBM1047.\n" |
| </source> |
| <p><em>-v=always</em> will force validation<br/> |
| <em>-v=never</em> will not use any validation<br/> |
| <em>-v=auto</em> will validate if a DOCTYPE declaration or a schema declaration is present in the XML document</p> |
| <p>Here is a sample output from DOMPrint</p> |
| <source>cd &XercesC3InstallDir;/samples/data |
| DOMPrint -v=always personal.xml |
| |
| <?xml version="1.0" encoding="iso-8859-1"?> |
| |
| <!DOCTYPE personnel SYSTEM "personal.dtd"> |
| <!-- @version: --> |
| <personnel> |
| |
| <person id="Big.Boss"> |
| <name><family>Boss</family> <given>Big</given></name> |
| <email>chief@foo.com</email> |
| <link subordinates="one.worker two.worker three.worker |
| four.worker five.worker"></link> |
| </person> |
| |
| <person id="one.worker"> |
| <name><family>Worker</family> <given>One</given></name> |
| <email>one@foo.com</email> |
| <link manager="Big.Boss"></link> |
| </person> |
| |
| <person id="two.worker"> |
| <name><family>Worker</family> <given>Two</given></name> |
| <email>two@foo.com</email> |
| <link manager="Big.Boss"></link> |
| </person> |
| |
| <person id="three.worker"> |
| <name><family>Worker</family> <given>Three</given></name> |
| <email>three@foo.com</email> |
| <link manager="Big.Boss"></link> |
| </person> |
| |
| <person id="four.worker"> |
| <name><family>Worker</family> <given>Four</given></name> |
| <email>four@foo.com</email> |
| <link manager="Big.Boss"></link> |
| </person> |
| |
| <person id="five.worker"> |
| <name><family>Worker</family> <given>Five</given></name> |
| <email>five@foo.com</email> |
| <link manager="Big.Boss"></link> |
| </person> |
| |
| </personnel></source> |
| <p>Note that DOMPrint does not reproduce the original XML file. DOMPrint and |
| SAXPrint produce different results because of the way the two APIs store data |
| and capture events.</p> |
| |
| <p>Application needs to provide its own implementation of |
| DOMErrorHandler (in this sample, the DOMPrintErrorHandler), |
| if it would like to receive notification from the serializer |
| in the case any error occurs during the serialization. |
| </p> |
| |
| <p>Application needs to provide its own implementation of |
| DOMLSSerializerFilter (in this sample, the DOMPrintFilter), |
| if it would like to filter out certain part of the DOM |
| representation, but must be aware that thus may render the |
| resultant XML stream invalid. |
| </p> |
| |
| <p>Application may choose any combination of characters as the |
| end of line sequence to be used in the resultant XML stream, |
| but must be aware that this may render the resultant XML |
| stream ill formed. |
| </p> |
| |
| <p>Application may choose a particular encoding name in which |
| the output XML stream should be, but must be aware that if |
| unrepresentable in the encoding specified characters appear |
| in the markup, it may force the serializer to terminate serialization |
| prematurely, and thus no complete serialization would be done. |
| </p> |
| |
| <p>Application shall query the serializer first, before set any |
| feature/mode(true, false), or be ready to catch exception if this |
| feature/mode is not supported by the serializer. |
| </p> |
| |
| <p>Application needs to release the filter, error handler and |
| format target objects created for the serialization. |
| </p> |
| |
| </s3> |
| </s2> |
| </s1> |