Revision [800]
This is an old revision of Serialization made by DavidLee on 2009-09-23 05:43:55.
Serialization and Parsing options
There are several global (shell scope) options that control serialization and parsing. These control default parameters used whenever plain text is parsed into XML , and when XML is serialized to text.
Parsing Options
The following global parsing options may be set by the set command.
- text-encoding - The default encoding any time that text is encountered and otherwise the encoding is not known. Defaults to the java file.encoding property.
Serializing Options
The following global serialization options may be set by the set command. These may be overwritten by specific commands.
- omit-xml-declaration - Omit the leading xml declaration.
- indent - Indent text serialized xml for more human friendly output
- xml-encoding - Default encoding used for serialized xml
Examples
It is not always obvious when parsing or serialization occurs, for example depending on the participants in a pipeline and the xpipe setting, there may or may not be serialization and parsing in a pipeline.
Example: The xcat command will serialize to text then xml2csv will parse text to XML
xcat *.xml | xml2csv
Example: This uses an internal event oriented StAX pipeline and does NOT serialize or parse text XML
set +xpipe xcat *.xml | xml2csv
Also depending on what technology individual commands use they may be outputing as 'pure XML' or as text.
Even with xpipe set, the external "cat" command requires text input so the xml is serialized and the xpipe is ignored.
set +xpipe xcat *.xml | cat
How redirection is specified may also affect if XML is serialized or parsed.
For example, the following will serialize to text
xslt -f stylesheet.xsl -i input.xml > file.xml
But this command will NOT serialize to text, but rather construct an XML variable which was never serialized.
It is the TinyTree representation which saxon produces directly from the xslt without a copy or serialization.
xslt -f stylesheet.xsl -i input.xml >{VAR}
Similary the following may not ever produce or parse a text format depending on the implementation of "command".
var=$<(command)