|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: "xmlns" problem for transform
> Then, how can I merge the template with my main template? I need them
> working as one program.
Think pipelines. First stage (optional): convert everything to the correct
namespace. Second stage: do the real processing.
You can implement a pipeline either within a single stylesheet or with a
series of stylesheets linked at application level. In the first approach,
you typically do:
<xsl:variable name="output-of-phase-1">
<xsl:apply-templates select="/" mode="phase-1"/>
</xsl:variable>
<xsl:variable name="output-of-phase-2">
<xsl:apply-templates select="xx:node-set($output-of-phase-1)"
mode="phase-2"/>
</xsl:variable>
<xsl:template match="/">
<xsl:copy-of select="$output-of-phase-N"/>
</xsl:template>
Michael Kay
http://www.saxonica.com/
>
> cheers,
> Chenzhou
>
> Michael Kay wrote:
>
> >It's nothing to do with the presence or absence of a schema,
> it's all to do
> >with the fact that X in namespace N is completely unrelated to X in
> >namespace N2, or X in no namespace.
> >
> >You shouldn't get yourself into this situation where the
> same vocabulary of
> >local names is used in more than one namespace. But if you
> do (as RSS users
> >do) the best way is to write your transformation on the
> assumption that the
> >names are in a namespace, and then write a preprocessing
> transformation
> >where necessary to put them in that namespace. This is
> essentially a variant
> >on the identity transform:
> >
> ><xsl:template match="*[namespace-uri()='']">
> > <xsl:element name="{local-name()}" namespace="the.real.namespace">
> > <xsl:copy-of select="@*"/>
> > <xsl:apply-templates/>
> > </xsl:element>
> ></xsl:template>
> >
> >Michael Kay
> >http://www.saxonica.com/
> >
> >
> >
> >
> >>-----Original Message-----
> >>From: Chenzhou Cui [mailto:ccz@xxxxxxxxx]
> >>Sent: 03 August 2005 21:29
> >>To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> >>Subject: Re: "xmlns" problem for transform
> >>
> >>Dear Joris:
> >>
> >>Thank you very much! Now the problem is PARTLY solved. After
> >>I add the
> >>non-default namespace for my xslt filter and all needed prefix, the
> >>filter works well with schema assigned data files. However,
> >>it can not
> >>transform files without schema. An opposite problem to before.
> >>
> >>How can I do?
> >>
> >>cheers,
> >>
> >>Joris Gillis wrote:
> >>
> >>
> >>
> >>>Hi,
> >>>
> >>>Tempore 21:02:56, die 08/03/2005 AD, hinc in
> >>>xsl-list@xxxxxxxxxxxxxxxxxxxxxx scripsit Chenzhou Cui
> >>>
> >>>
> >><ccz@xxxxxxxxx>:
> >>
> >>
> >>>>it can't transform
> >>>>the body of sample file with "schema" assigned.
> >>>>
> >>>>
> >>>As the post's subject indicates, this is a
> >>>
> >>>
> >>namespace-related problem
> >>
> >>
> >>>indeed.
> >>>
> >>>The schema sets the default namespace to
> >>>"http://www.ivoa.net/xml/VOTable/v1.1", you need to define in your
> >>>xslt a namespace with this uri and a chosen prefix (I know
> >>>'xmlns="http://www.ivoa.net/xml/VOTable/v1.1"' is already
> >>>
> >>>
> >>present; you
> >>
> >>
> >>>need to add another non-default namespace declaration). e.g.
> >>>'xmlns:VOT="http://www.ivoa.net/xml/VOTable/v1.1"'
> >>>
> >>>Next step is to find all element names in any xpath expression or
> >>>pattern in your xslt and add the prefix.
> >>>
> >>>e.g. <xsl:for-each select="//RESOURCE/TABLE/FIELD" /> becomes
> >>>
> >>><xsl:for-each select="//VOT:RESOURCE/VOT:TABLE/VOT:FIELD"/>
> >>>
> >>>regards,
> >>>
> >>>
> >>--
> >>============================================================
> >>Chenzhou Cui (Chinese Virtual Observatory: China-VO)
> >>National Astronomical Observatory | Tel: (8610)64841695
> >>Chinese Academy of Sciences | FAX: (8610)64878240
> >>20A Datun Road, Chaoyang District | Email: ccz@xxxxxxxxx
> >>Beijing 100012, China | WWW: www.lamost.org/~cb
> >>============================================================
> >
> >
> >
>
> --
> ============================================================
> Chenzhou Cui (Chinese Virtual Observatory: China-VO)
> National Astronomical Observatory | Tel: (8610)64841695
> Chinese Academy of Sciences | FAX: (8610)64878240
> 20A Datun Road, Chaoyang District | Email: ccz@xxxxxxxxx
> Beijing 100012, China | WWW: www.lamost.org/~cb
> ============================================================
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








