xsl-list
[Top] [All Lists]

xsd:import and namespaces

2003-04-23 15:09:25
How can I get the value of schemaLocation from the xsd:element/@ref attribute in the following XML Schema sample:

...
<xsd:schema ... xmlns:xxx="http://www.yo.com/example.namespace";>
<xsd:import namespace="http://www.yo.com/example.namespace"; schemaLocation="http://www.yo.com/example.xsd"/>
...
<xsd:element ref="xxx:SomeName"/>
...

My xsl looks something like this:

...
<xsl:template match="xsd:element[(_at_)ref]">
        <xsl:element name="{(_at_)ref}">
<xsl:variable name="schema" select="//xsd:import/@schemaLocation[../@namespace=???]"/>

<xsl:apply-templates select="document($schema)//element[(_at_)name=current()/@ref]"/>
        </xsl:element>
</xsl:template>
...

Am I on the right track? If so, what should replace the ??? in the location path? If I remove the stuff between the xsl:element tags I get the following output:

...
        <xxx:SomeName xmlns:xxx="http://www.yo.com/example.namespace"/>
...

So XSLT knows the namespace I want...I just don't know how to ask it.

Thanks.

BTW...I'm using LibXSLT and perl for the transform.


XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>