RE: "xmlns" problem for transform2005-08-04 13:18:27xx:node-set() is the conventional way we describe a set of functions provided by different vendors of XSLT 1.0 processors: msxml:node-set() for MSXML, xalan:node-set() for Xalan, saxon:node-set() for Saxon, oracle:node-set() for Oracle, etc. (Sometimes without the hyphen). Choose the one that suits your processor. In XSLT 2.0, you don't need the function: instead of <xsl:apply-templates select="xx:node-set($output-of-phase-1)"/> do <xsl:apply-templates select="$output-of-phase-1" /> Sorry if I sometimes abbreviate my answers too much, you never know how much knowledge the person asking the question already has, or how good they are at looking it up if they don't know. Michael Kay http://www.saxonica.com/ -----Original Message----- From: Chenzhou Cui [mailto:ccz(_at_)bao(_dot_)ac(_dot_)cn] Sent: 04 August 2005 20:34 To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com Subject: Re: [xsl] "xmlns" problem for transform Dear Michael, I can't "xx:node-set" function from both XPath 1 and XPath 2. Problem is still there. cheers, Michael Kay wrote:Then, how can I merge the template with my main template? Ineed themworking as one program.Think pipelines. First stage (optional): convert everythingto the correctnamespace. Second stage: do the real processing. You can implement a pipeline either within a singlestylesheet or with aseries of stylesheets linked at application level. In thefirst 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 dowith 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 thesame vocabulary oflocal names is used in more than one namespace. But if youdo (as RSS usersdo) the best way is to write your transformation on theassumption that thenames are in a namespace, and then write a preprocessingtransformationwhere necessary to put them in that namespace. This isessentially a varianton 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(_at_)bao(_dot_)ac(_dot_)cn] Sent: 03 August 2005 21:29 To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com Subject: Re: [xsl] "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 neededprefix, thefilter 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(_at_)lists(_dot_)mulberrytech(_dot_)com scripsit Chenzhou Cui<ccz(_at_)bao(_dot_)ac(_dot_)cn>:it can't transform the body of sample file with "schema" assigned.As the post's subject indicates, this is anamespace-related problemindeed. The schema sets the default namespace to "http://www.ivoa.net/xml/VOTable/v1.1", you need todefine in yourxslt a namespace with this uri and a chosen prefix (I know 'xmlns="http://www.ivoa.net/xml/VOTable/v1.1"' is alreadypresent; youneed 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 xpathexpression orpattern 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(_at_)bao(_dot_)ac(_dot_)cn Beijing 100012, China | WWW: www.lamost.org/~cb ============================================================ --~------------------------------------------------------------------XSL-List info and archive:http://www.mulberrytech.com/xsl/xsl-listTo unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/ or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com> --~----~------------------------------------------------------------------XSL-List info and archive:http://www.mulberrytech.com/xsl/xsl-listTo unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/ or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com> --~---- ============================================================ 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(_at_)bao(_dot_)ac(_dot_)cn Beijing 100012, China | WWW: www.lamost.org/~cb ============================================================ --~------------------------------------------------------------------XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/ or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com> --~----~------------------------------------------------------------------ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/ or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com> --~---- ============================================================ 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(_at_)bao(_dot_)ac(_dot_)cn Beijing 100012, China | WWW: www.lamost.org/~cb ============================================================ --~------------------------------------------------------------------ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/ or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com> --~-- --~------------------------------------------------------------------ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/ or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com> --~--
|
|