Subject: RE: [xsl] copy-of "canonicalization" behavior in Xalan (Java) From: "Ganesh Babu Nallamothu, Integra-India" <ganeshbabu.nallamothu@xxxxxxxxxxxxxxxxx> Date: Sat, 24 Jul 2004 09:38:28 +0530 |
Dear All, As of now Xalan 2.6.0 is supporting only XSLT 1.0, When it will start supporting XSLT 2.0? Any idea? Ganesh -----Original Message----- From: Mukul Gandhi [mailto:mukul_gandhi@xxxxxxxxx] Sent: Friday, July 23, 2004 9:14 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: RE: [xsl] copy-of "canonicalization" behavior in Xalan (Java) Thank you Mike for the explanation... Regards, Mukul --- Michael Kay <mhk@xxxxxxxxx> wrote: > Attributes and namespaces are quite different things > in the data model, and > it's expressly stated in the language spec that you > can't create namespaces > by trying to create an attribute with an "xmlns:" > name. > > XSLT 2.0 has an xsl:namespace instruction that > allows dynamic construction > of namespace nodes. > > Michael Kay > > > -----Original Message----- > > From: Mukul Gandhi [mailto:mukul_gandhi@xxxxxxxxx] > > > Sent: 23 July 2004 13:37 > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > Subject: Re: [xsl] copy-of "canonicalization" > behavior in Xalan (Java) > > > > I wrote this stylesheet > > > > <?xml version="1.0"?> > > <xsl:stylesheet > > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > > version="1.0"> > > > > <xsl:output method="xml" /> > > > > <xsl:template match="node()"> > > <xsl:copy> > > <xsl:attribute > > name="xmlns:{substring-before(name(),':')}"> > > <xsl:value-of select="namespace-uri()" /> > > </xsl:attribute> > > <xsl:for-each select="@*"> > > <xsl:attribute name="{name()}"> > > <xsl:value-of select="." /> > > </xsl:attribute> > > </xsl:for-each> > > <xsl:apply-templates /> > > </xsl:copy> > > </xsl:template> > > > > </xsl:stylesheet> > > > > When it is applied to the given XML, Xalan > produces > > error > > "Could not resolve namespace prefix: xmlns. The > node > > will be ignored." > > > > My questions are > > 1) Is it possible to generate attribute names like > > xmlns:something (i.e. how to escape special > meaning of > > xmlns: in XSLT for namespaces) > > 2) If this is possible, then is it architecturally > > correct? > > > > Regards, > > Muku > > > > --- Matthew McKennirey > <mmckennirey@xxxxxxxxxxxxxx> > > wrote: > > > The copy-of element when processed by Xalan > (Java) > > > appears to canonicalize the output, rather than > > > output the source tree exactly. > > > > > > For specific nodes in the source tree I would > like > > > to create an identical copy in the result tree, > > > including redundant namespace > > > declarations. > > > > > > Assume a source document like: > > > > > > <foo:root xmlns:foo="http://abc.org/foo#" > > > xmlns:xyz="http://xyzinc.com/xyz#"> > > > <foo:parent xmlns:foo="http://abc.org/foo#"> > > > <foo:child > xmlns:foo="http://abc.org/foo#">more > > > text</foo:child> > > > <xyz:child > xmlns:xyz="http://xyzinc.com/xyz#">yet > > > more text</xyz:child> > > > </xyz:parent> > > > </foo:root> > > > > > > The namespace declarations on the parent and > child > > > nodes are redundant (their namespace prefixes > have > > > been bound to a namespace on > > > the root node). > > > > > > When I use copy-of, such as in the simple > template > > > below, in XML Spy using its built in XSLT > processor > > > the result tree is an exact > > > and complete copy of the source tree, redundant > > > namespace declarations and all, as I would > expect. > > > > > > <xsl:template match ="/"> > > > <xsl:copy-of select="(.)"/> > > > </xsl:template> > > > > > > (I have simplified the template in the extreme > to > > > make it clear.) > > > > > > When I run the same template with the Xalan > (Java) > > > XSLT processor, which uses a SAX parser, I get a > > > "cleaned", canonical form of the > > > source tree as my result, with all redundant > > > namespace declarations removed. > > > > > > This may appear to be a benefit, but I later > > > manipulate parts of the result tree (which is > much > > > more complex than the simple > > > example) as separate XML fragments and at that > point > > > the namespace declarations are in fact no longer > > > redundant but critical. > > > > > > I have not been able to find anything in the > Xalan > > > documentation which suggests a way to avoid this > > > canonicalization - perhaps its a > > > SAX issue? Is there a way to force Xalan to make > an > > > exact copy of the source tree, warts and all? > > > > > > > > > Thanks __________________________________ Do you Yahoo!? New and Improved Yahoo! Mail - 100MB free storage! http://promotions.yahoo.com/new_mail
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] copy-of "canonicalizatio, Mukul Gandhi | Thread | [xsl] resolving entities, Rui Alberto L. |
RE: [xsl] Converting a Batch File t, Deirdre Saoirse Moen | Date | RE: [xsl] Multiple level filtering , Jeff Cann |
Month |