[
Lists Home |
Date Index |
Thread Index
]
It's not easy in XSLT 1.0 to create a namespace node on an element if
the namespace isn't actually used in the element name or an attribute
name. But it can be done, by using xsl:copy to copy the namespace node
from elsewhere.
So you can do:
<xsl:variable name="dummy">
<xsl:element name="d" namespace="{@Namespace}"/>
</xsl:variable>
then
<xsl:copy select="xx:node-set($dummy)//namespace::*"/>
In XSLT 2.0 this is easier, you can do
<xsl:namespace name=""><xsl:value-of
select="@Namespace"/></xsl:namespace>
This is available in Saxon 7.4
Michael Kay
Software AG
home: Michael.H.Kay@ntlworld.com
work: Michael.Kay@softwareag.com
> -----Original Message-----
> From: Paul Spencer [mailto:ps@boynings.co.uk]
> Sent: 01 April 2003 13:31
> To: xml-dev@lists.xml.org
> Subject: [xml-dev] Namespaces, schemas and stylesheets
>
>
> Am I just being stupid here? This has to be easy.
>
> I am using a stylesheet to create a WXS schema document. The
> problem I am having is that I want to make the default
> namespace for the resulting schema the same as the target
> namespace (so I can xs:include other schema documents). The
> URI for the namespace is in my source XML document. So in
> effect, I want something like:
>
> <xs:schema
> targetNamespace="{@Namespace}"
> xmlns="{@Namespace}"
> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>
> I know I can't create a namespace in this way as "xmlns" is
> not a normal attribute, but is there another way to create
> the namespace in the output? I could live with not making it
> the default in this case and using a prefix instead, but the
> default would be better.
>
> Regards
>
> Paul Spencer
>
> -----------------------------------------------------------------
> The xml-dev list is sponsored by XML.org
> <http://www.xml.org>, an initiative of OASIS
<http://www.oasis-open.org>
The list archives are at http://lists.xml.org/archives/xml-dev/
To subscribe or unsubscribe from this list use the subscription
manager: <http://lists.xml.org/ob/adm.pl>
|