|
Subject: RE: [xsl] Declaring ns-prefixes for namespaces imported within a generated xml:schema From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Fri, 5 May 2006 14:47:58 +0100 |
XSLT 2.0 has an xsl:namespace instruction for this purpose - it generates a
namespace node in the result tree, in the same way as xsl:attribute
generates an attribute node.
For XSLT 1.0 there's a workaround, so long as your processor supports
xx:node-set(): you create an element in a temporary tree with the
appropriate namespace, and then copy its namespace nodes:
<xsl:variable name="dummy">
<xsl:element name="{$prefix}:dummy" namespace="{$uri}"/>
</xsl:variable>
<xsl:copy-of select="xx:node-set($dummy)//namespace::*"/>
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Robert Melskens [mailto:tridero@xxxxxxxxxxx]
> Sent: 05 May 2006 14:36
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Declaring ns-prefixes for namespaces imported
> within a generated xml:schema
>
> Hello,
>
> Can anyone help me with the following simplified version of
> my problem?
>
> I have a lot of XML-Schema's in which a lot of elements are
> created at global level. Each of them is created by a
> different creator and they all have their own target
> namespace. They all can refer to eachother and we don't know
> all schema's which will be used.
> Besides that I also have XML files describing a specific form
> (lets call them form-instances).
> Within each form-instance the elements are listed which are
> used within the related form.
> In future a lot of different forms (and form-instances) will
> be created.
>
> In the future we will also receive a lot of XML-instances,
> representing the content of the form.
> To be able to validate these XML-instances we would like to
> generate an XML-Schema for each form-instance.
>
> Using XSLT I create this, top level, XML-schema which imports
> all schema's containing one or more of the elements used
> within the form-instance.
> I also create a top level element in which I place the needed
> elements which refer to the elements within the other XML-Schema's.
> To be able to distinguish the namespace of each element I
> need to create a prefix for each namespace which I will use
> within the 'ref' attribute of the 'xs:element' element.
> Since I don't know beforehand which namespace will be
> imported and don't know all possible namespaces I can't hard
> code the namespaces within my 'xsl:stylesheet' element.
> As most of us will know declaring a prefix for each namespace
> needs to be done using the 'xmlns:xx' attribute.
> However this attribute can't be created by using the 'xsl:attribute'
> element.
>
> This is where de development of my stylesheet drives against
> a big wall.
>
> Does anyone knows a way to overcome this problem? Thanks in advance.
>
> _________________________________________________________________
> Krijg direct antwoord op je vragen: MSN Messenger
> http://www1.imagine-msn.com/Messenger/Default2.aspx
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] Declaring ns-prefixes for nam, Robert Melskens | Thread | Re: [xsl] Declaring ns-prefixes for, Jirka Kosek |
| [xsl] Declaring ns-prefixes for nam, Robert Melskens | Date | Re: [xsl] converting word document , António Mota |
| Month |