Subject: RE: order in the xml prolog
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 20 Nov 2007 15:16:02 -0000
|
I was mildly surprised to discover that comments and PIs are allowed before
the DOCTYPE declaration.
The DOCTYPE declaration is newly created by the serializer, it is not a copy
of the DOCTYPE declaration in your source document. It will always precede
any nodes that are present in the result tree. There's no way to control
this. I can't imagine any circumstances where you really need to generate
comments and PIs before the DOCTYPE declaration.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Trevor Nicholls [mailto:trevor@xxxxxxxxxxxxxxxxxx]
> Sent: 20 November 2007 14:46
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: order in the xml prolog
>
> I have a modified identity transform which is translating a
> few element names, and it's performing that task admirably.
> However the output XML has also switched the order of
> elements in the xml prolog.
>
> Two questions:
> 1) Does it really matter?
> 2) How do I modify the identity template to get the original order?
>
> I am able to use either Saxon or xsltproc (libxml). Both
> transpose the PI and the DTD.
>
> Input xml:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <?xml-stylesheet href="../../utils/doc2html.xsl" type="text/xsl"?>
> <!DOCTYPE document SYSTEM "../../utils/docs.dtd">
> <document>
> <title id="Lab156">Boxes</title>
> <include srcfile="boxes_intro.xml"/>
> <include srcfile="boxes_items.xml"/>
> </document>
>
> xsl:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output doctype-system="../../utils/docs.dtd"
> method="xml" encoding="UTF-8" />
>
> <xsl:preserve-space elements="*" />
>
> <!-- identity -->
> <xsl:template match="node()|@*">
> <xsl:copy>
> <xsl:apply-templates select="@*|node()" />
> </xsl:copy>
> </xsl:template>
>
> <!-- translate various code elements into a standard set -->
> <!-- skipped -->
>
> </xsl:stylesheet>
>
> Output xml:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE document SYSTEM "../../utils/docs.dtd">
> <?xml-stylesheet href="../../utils/doc2html.xsl" type="text/xsl"?>
> <document>
> <title id="Lab156">Boxes</title>
> <include srcfile="boxes_intro.xml"/>
> <include srcfile="boxes_items.xml"/>
> </document>
>
>
>
> Cheers
> Trevor Nicholls
|