[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Wikipedia on XML

  • From: Michael Ludwig <mlu@as-guides.com>
  • To: 'XML Developers List' <xml-dev@lists.xml.org>
  • Date: Wed, 26 Aug 2009 12:18:45 +0200

Re:  Wikipedia on XML
Michael Kay schrieb:
>> Your OoxmlProcessor could load the stylesheet using a SAX
>> filter that performs the appropriate identifier replacement
>> on all xmlns or xmlns:xy attributes carrying your standard
>> OOXML namespace.
>
> Actually, you don't have to descend to SAX programming to achieve
> this. With XSLT 2.1 streaming you will be able to write:
>
>  <xsl:stylesheet xmlns:xsl=...
>    xmlns:oo=...>
>
>  <xsl:mode streamable="yes" default-action="copy">
>
>  <xsl:template match="oo:*">
>    <xsl:element name="{local-name()}" namespace="oo2namespace">
>      <xsl:apply-templates select="@*,node()"/>
>    </xsl:element>
>  </xsl:template>
>
>  <xsl:template match="@oo:*">
>    <xsl:attribute name="{local-name()}" namespace="oo2namespace"
> select="."/>
>  </xsl:template>
>
>  </xsl:stylesheet>

I'm sure there is a lot of good new stuff in XSLT 2.1 and it's great to
see that it is moving on. The way I understood Rick, however, which may
well be wrong, was that he did not want to move the OOXML documents to a
new namespace (which your example seems to be doing), but to parametrize
the XSLT stylesheet to cope with the new OOXML namespace his instances
have already been moved into.

So that instead of: <xsl:stylesheet xmlns:ooxml="ooxml-v1" ...
he'd have:          <xsl:stylesheet xmlns:ooxml="ooxml-v2" ...

So I think he wants a parameter to alter the namespace declaration in
the XSLT stylesheet, and that is not possible at the XSLT level. It is
possible, however, by changing the source. (A program manipulating a
program to generate a new program.)

Thinking more about it, he'd need a URI Resolver to load all stylesheet
modules through the namespace substitution filter, including those
pulled in via xsl:include and xsl:import.

As the very last resort, my shameless DPH advice would be:

cp -r ooxml-xsl-v1 ooxml-xsl-v2
perl -pi -e 's#old-ooxml-ns-uri#new-ooxml-ns-uri#g' ooxml-xsl-v2/*

That would work instantly.

-- 
Michael Ludwig


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.