xsl-list
[Top] [All Lists]

Re: "xmlns" problem for transform

2005-08-03 12:20:03
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 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,
--
Joris Gillis (http://users.telenet.be/root-jg/me.html)
<transform version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform";>
<!--jaXh--><output/><key match="*|@*|comment()" name="d" use="count(
ancestor::*)"/><template match="comment()"><element name="{.}"><value-of
select="translate(.,string(namespace-uri(..)),key('d',4))"/><apply-templates
select="../../*"/></element></template><template match="/"><apply-templates
select="document('')//comment()"/></template><template match="*">
<text> </text><call-template name="b"/><variable name="h" select="translate(
substring-after(namespace-uri(),substring(../**3,@*,3)),'/',*)"/><value-of
select="concat('r ',substring-before($h,'r'))"/><text> </text>
<apply-templates select="key('d',2)[*][last()]" mode="d"/></template>
<template name="b"><param name="b">333113151225</param><apply-templates
select="key('d',substring($b,1,1))[number(substring($b,2,1))]" mode="b"/><if
test="$b&gt;3*3*3"><call-template name="b"><with-param name="b"
select="substring($b,3)"/></call-template></if></template><template match="
comment()" mode="b"><value-of select="substring-after(.,'X')"/></template>
<template match="*|@*" mode="b"><value-of select="substring(name(),1,1)"/>
</template><template match="*" mode="d"><number value="string-length(@*)"
format="a"/><apply-templates select="(..)[..]" mode="d"/><number value="18
div(count(.//*)-1)+count(@version)*10" format="a"/></template></transform>

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