xsl-list
[Top] [All Lists]

Re: generating xml with a runtime resolved default namespace

2003-01-07 11:07:41
At 2003-01-07 18:38 +0100, Jerome Euzenat wrote:
It comes from the need to have a variable default namespace in the output docu-
ment. That is a default namespace which is known at run-time only.

This can be done and I've modified your code in the example below ... note that you were improperly setting the default namespace.

Also, the name property of xsl:element can include attribute value templates, which gets you your prefix and element name.

I hope this helps.

........... Ken

T:\ftemp>type jerome.xml
<?xml version="1.0" encoding="UTF-8"?>

<owls:Ontology  xmlns:owls= "http://www.w3.org/2003/OWL-XMLSchema";>
  <owls:Individual owls:name="foo" owls:class="Bar" />
</owls:Ontology>

T:\ftemp>type jerome.xsl
<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0"
 xmlns     = "http://www.w3.org/2003/OWL-XMLSchema";
 xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
 xmlns:owls= "http://www.w3.org/2003/OWL-XMLSchema";
>

  <xsl:param name="prefix">http://www.example.com</xsl:param>

  <xsl:template match="/">
    <xsl:apply-templates/>
  </xsl:template>

  <xsl:template match="owls:Ontology">
    <xsl:element name="rdf:RDF"
      namespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#";>
      <xsl:apply-templates mode="axioms"/>
    </xsl:element>
  </xsl:template>

  <xsl:template match="owls:Individual" mode="axioms">
    <xsl:element name="{(_at_)owls:class}" namespace="{$prefix}#">
<xsl:attribute name="rdf:resource"><xsl:value-of select="@owls:name"/></xsl:attribute>
    </xsl:element>
  </xsl:template>

</xsl:stylesheet>



T:\ftemp>saxon jerome.xml jerome.xsl
<?xml version="1.0" encoding="utf-8"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";>
  <Bar xmlns="http://www.example.com#"; rdf:resource="foo"/>
</rdf:RDF>
T:\ftemp>

--
Upcoming hands-on in-depth    North America:  February  3- 7,2003
XSLT/XPath and XSL-FO         Europe:         February 17-21,2003

G. Ken Holman                mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd.         http://www.CraneSoftwrights.com/m/
Box 266, Kars, Ontario CANADA K0A-2E0   +1(613)489-0999 (F:-0995)
ISBN 0-13-065196-6                      Definitive XSLT and XPath
ISBN 0-13-140374-5                              Definitive XSL-FO
ISBN 1-894049-08-X  Practical Transformation Using XSLT and XPath
ISBN 1-894049-10-1              Practical Formatting Using XSL-FO
Male Breast Cancer Awareness http://www.CraneSoftwrights.com/m/bc


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



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