This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: How to output a xmlns:prefix attribute (special case)
- To: xsl-list at lists dot mulberrytech dot com
- Subject: RE: [xsl] How to output a xmlns:prefix attribute (special case)
- From: Jarno dot Elovirta at nokia dot com
- Date: Thu, 12 Jul 2001 08:47:09 +0300
- Reply-To: xsl-list at lists dot mulberrytech dot com
Hip hei!
[d:\temp]type test.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:prefix="http://prefix.com">
<xsl:output method="xml"
indent="yes"
encoding="ISO-8859-1" />
<xsl:template match="/">
<xsd:schema>
<xsl:copy-of select="document('')/*/namespace::prefix" />
<xsd:complexType name="prefix:typeName" />
</xsd:schema>
</xsl:template>
</xsl:stylesheet>
[d:\temp]saxon -t test.xsl test.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:prefix="http://prefix.com">
<xsd:complexType name="prefix:typeName"/>
</xsd:schema>
Was this what you were after? Anyhow, note that you
Note that you can't do
<xsd:schema targetNamespace="http://whatever.com">
<xsl:copy-of select="document('')/*/namespace::prefix" />
<xsd:complexType name="prefix:typeName" />
</xsd:schema>
with Saxon 6.4.2, it throws an run-time error "Cannot copy a namespace node
to an element after attributes have been added". In jd.xslt, MSXML, and
Xalan this works. With Saxon you can do it by using xsl:attribute
<xsd:schema>
<xsl:copy-of select="document('')/*/namespace::prefix" />
<xsl:attribute
name="targetNamespace">http://whatever.com</xsl:attribute>
<xsd:complexType name="prefix:typeName" />
</xsd:schema>
Hope this helps
Jarno
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list