[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
|