This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: XSL and Namespace
>Hi Perry,
>
> > I am using a namespace called "documentation" in my XSL which I process
> with
> > its own XSL to produce html documentation for the XSL file. The following
> > code snippet causes an error when using Saxon (both Instant and 6.1),
> > telling me that the import tags need to be the first tags after the
> > xsl:stylesheet element, however Xalan and MSXML 3 process without
> error. The
> > spec says <xsl:import> has to be the first element but does it have to be
> > the first element of all namespaces?
>
>The XSLT Recommendation says:
>
> "The xsl:import element children must precede all other element
> children of an xsl:stylesheet element, including any xsl:include
> element children."
>
>It doesn't predicate the 'element children' of the xsl:stylesheet
>element as being 'XSLT element children' or 'element children in the
>XSLT namespace'. So, strictly, you can't have any other element
>children, no matter what namespace, before xsl:import elements.
>
>Cheers,
>
>Jeni
Some more scholastic input from the XSLT spec:
"In addition, the xsl:stylesheet element may contain any element not from
the XSLT namespace, provided that the expanded-name of the element has a
non-null namespace URI. (...) Thus, an XSLT processor is always free to
ignore such top-level elements, and must ignore a top-level element without
giving an error if it does not recognize the namespace URI."
So it is an error to put a <documentation:xyz> element before <xsl:import>
but the XSLT implementation must ignore the error. But must it ignore only
the fact that it does not recognize the namespace URI or can it ignore the
element occurring before xsl:import? The later seems quite reasonable to me.
Cheers,
Johannes
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list