Subject: RE: [xsl] Namespace conflicts processing Word documents From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Mon, 6 Oct 2008 14:28:11 +0100 |
> WordML and OOXML files (Word saved-as-XML from vv2003-2008) > contain some different namespace declarations for the same > prefix (specifically w: but a few others). > > On the surface, this appears to mean that an XSLT file > written to process WordML files' w:* elements cannot be used > to process OOXML files' w:* elements Depends exactly what you mean. Of course you can process both namespaces, because there is no requirement for the stylesheet to use the same prefix as the source document: it can use any prefix it likes, so long as it is bound to the correct URI. However, it's always challenging to write reusable stylesheet code that can process two different (but similar) vocabularies that use different namespace URIs (this has nothing to do with whether or not they use the same prefix). The way I usually recommend doing it is to preprocess the input to change its namespace, so that the bulk of your transformation code only has a single namespace to contend with: that is, use a pipeline. > > I tested this by creating two "driver" XSLT files, one > implementing the WordML namespace declarations and one the > OOXML ones; with both files having a single xsl:import or > xsl:include (tested both ways) calling my file of templates > which itself declared no namespaces except XSL. > > Both Saxon and xalan throw an error, saying that the > namespace w: was undeclared in all cases. > > This makes it appear that namespaces cannot be inherited from > an outer XSLT file to an included or imported one; in effect > that the omission of namespace declarations on the > included/imported xsl:stylesheet element nullifies all outer > namespace declarations. > > Is this correct, or have I missed something? It's certainly true that an included or imported stylesheet module doesn't inherit any namespace declarations from the including/importing module. Michael Kay http://www.saxonica.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Namespace conflicts proce, David Carlisle | Thread | Re: [xsl] Namespace conflicts proce, Andrew Welch |
Re: [xsl] Namespace conflicts proce, David Carlisle | Date | Re: [xsl] Namespace conflicts proce, Andrew Welch |
Month |