Subject: RE: Doctype and namespaces in source/generated files
From: "Andreas L. Delmelle" <a_l.delmelle@xxxxxxxxxx>
Date: Sat, 29 May 2004 00:20:19 +0200
|
> -----Original Message-----
> From: Mayo [mailto:mayo@xxxxxxx]
>
Hi,
> The xslt I'm using matches elements in undefined namespaces, and copies
> those into the output, and processes the elements in my custom
> namespaces.
<snip />
> <xsl:template match="*[not(namespace-uri())]">
> than I simply xsl:copy, and apply templates. This prevents me to
> specify DOCTYPE or namespaces for xhtml in the source documents, as as
> soon as I specify them (in the source documents) the match rule will
> stop working, and strips all my xhtml out.
>
So close, and yet...
Why not use:
<xsl:template match="*[namespace-uri()='http://www.w3.org/1999/xhtml']">
instead then?
> My quesiton is, is there a better way to do this, or is there any easy
> way that I can manipulate what namespaces/doctypes the output files
> will have? (I want to strip out my custom namespaces, preserve any
> other ones, add the xhtml one, as well as add a doctype to the
> generated document).
>
If the result document has to be in the XHTML namespace, define:
xmlns="http://www.w3.org/1999/xhtml"
on your xsl:stylesheet element.
Use the exclude-result-prefixes attribute on xsl:stylesheet to omit other
namespaces in scope for the stylesheet.
For adding the doctype, check the applicable attributes for the xsl:output
element. Use XML as output method, and add doctype-public and doctype-system
with the appropriate values.
The relevant specifications:
For XSLT 1.0:
http://www.w3.org/TR/xslt#stylesheet-element
http://www.w3.org/TR/xslt#output
For XSLT 2.0:
http://www.w3.org/TR/xslt20/#stylesheet-element
http://www.w3.org/TR/xslt20/#element-output
Hope this helps!
Greetz,
Andreas
|