I am writing some C++ code to run under windows, using the
MSXML DOM implementation. My user supplies both xml and xslt
input. The input may generate a new xml document, or a flat
file. I am trying to determine what comes out of the ms parser.
Could someone(s) please advice me of the accuracy, or
otherwise, of the following statements?
I believe the output from the parser must be one of the
following: A result tree; A wide (Unicode) string; An ASCII
(8bit) string;
I think you must be referring to the output of the transformer, rather
than the output of the parser. The output of the parser is typically a
DOM, and this acts as the input to the transformer. (It's very common,
but completely wrong, to refer to an XSLT processor as a "parser").
I believe which of these is produced will be determined by
the <xsl:output> element. Do I have to interrogate the style
sheet to find this information?
No, the xsl:output declaration determines how the result tree is
serialized, if it is serialized at all. The actual output destination is
determined by the way you invoke the XSLT processor from its API.
If you specify a byte stream as the destination, then the xsl:output
encoding will determine the encoding of that byte stream. If you specify
a character stream, then the output will be characters rather than
bytes, so the encoding is irrelevant.
Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list