Subject: RE: xsl:namespace
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 20 Feb 2009 17:49:03 -0000
|
In the case of QName-valued attributes (of which xsi:type is a well-known
example), xsl:namespace is needed if (A) the namespace prefix or URI is
decided dynamically, or (B) if the containing element is constructed using
xsl:element. But there's nothing wrong with using it in other cases too.
Another use case for xsl:namespace is to promote a namespace declaration to
the root element of a document to avoid the clutter caused when it appears
on hundreds of child elements. Again, xsl:namespace is needed only if the
root element is created using xsl:element or if the namespace URI or prefix
is computed.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Jesper Tverskov [mailto:jesper.tverskov@xxxxxxxxx]
> Sent: 20 February 2009 17:33
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: xsl:namespace
>
> I use the xsi:type example because that is the one we have in
> the spec, http://www.w3.org/TR/xslt20/#element-namespace, and
> the one Michael Kay is using in "XSLT 2,0 and XPath 2.0", 4th
> Edition, page 392. But the problem with the examples in the
> spec and MK are, that xsl:namespace is not really needed. The
> spec admits that an xsl:element example would have been more
> appropriate.
>
> So I kept the literal not so good example of spec and MK as
> alternative 2 but I removed xsl:namespace. Then I added an
> example with xsl:element, alternative 1, and I added a
> dynamic one, alternative 3.
>
> But the two proposals of Florent and Vladimir are basically
> the literal example one more time where xsl:namespace is not
> needed unless in a dynamic solution as in my alternative 3.
> We could make Vladimir's dynamic but it will not make it less
> artificial or confusing than my own example. Instead of the
> xsi namespace we will get some other namespace.
>
> So wee still need some good examples of why xsl:namespace can
> be necessary. I have provided a dynamic one where it is
> necessary, and one using xsl:element, where xsl:namespace is
> also necessary if xsl:element must be used (we might e.g.
> need to compute the name of the element).
>
>
> Cheers,
> Jesper Tverskov
>
> http://www.xmlkurser.dk
> http://www.xmlplease.com
|