Subject: Re: [xsl] Printing CDATA from feed as HTML|
From: ac <ac@xxxxxxxxxxxxx>
Date: Tue, 17 Jun 2008 20:54:28 -0400
"Colin" == Colin Paul Adams <colin@xxxxxxxxxxxxxxxxxx> writes:
>>> I think a parse() function almost made it into 2.0..."David" == David Carlisle <davidc@xxxxxxxxx> writes:
David> it did.
David> <xsl:function name="x:parse" as="document-node()"> David> <xsl:param name="s" as="xs:string"/> <xsl:sequence David> select="doc(concat('data:text/xml,'$s))"/> </xsl:function>
Colin> Almost. Colin> Your data URI needs the charset parameter.
Hm. Maybe not.
There is a portability problem here, in that there is a dependency
upon the Unicode encoding form used by the implementation.
For instance, Gestalt currently uses UTF-8, so you need to specify:
but I am currently re-engineering it to use UTF-32 (amongst other changes), and so there is a problem.
Now the implementation would be able to supply the actual encoding using a higher level protocol (something internal to the implementation of fn:doc()). You then have a clash between the labelled encoding, and the encoding supplied by the higher level protocol.
It is a TAG recommendation that the XML parser must not override the encoding supplied by the higher level protocol in this case. So you are just about OK. The normal thing for an XML parser to do would be to report an error in this case, but that is not required by an spec.