[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

generating xml with a runtime resolved default namespa

Subject: generating xml with a runtime resolved default namespace
From: Jerome.Euzenat@xxxxxxxxxxxx (Jerome Euzenat)
Date: Tue, 7 Jan 2003 18:38:31 +0100
owls ontology
Hello,

        I submit to this enlightened list a concrete XSLT problem for a change.
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.
        I reduce the problem below to a small stylesheet and input and output
documents:

--------- tentative stylesheet
<?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">
    <rdf:RDF
          xmlns="{$prefix}#"
          xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <xsl:apply-templates mode="axioms"/>
    </rdf:RDF>
  </xsl:template>

<xsl:template match="owls:Individual" mode="axioms">
<xsl:element name="@owls:class">
<xsl:attribute name="rdf:resource"><xsl:value-of select="@owls:name"/></xsl:attribute>
</xsl:element>
</xsl:template>


</xsl:stylesheet>

------------- input
<?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>

------------- output
<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF  xmlns="http://www.example.com#"
          xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <Bar rdf:resource="#foo" />
</rdf:RDF>

IMPORTANT CONSTRAINT: Yes Bar is in the http://www.example.com# namespace.

REMARKS:
0) this is extracted from a real test case (i.e. due yesterday ;-);
1) the '#' do not cause trouble;
2) not found in the FAQ
3) the problem is that XSLT does not treat xmlns and xmlns: prefixed attributes as the others (and it is pretty consistent in doing so, in source, in alias and in attribute);
4) we cannot use <xsl:element name="rdf:RDF" namespace="{$prefix}#"> because it will consider that rdf is the same as http://www.example.com#;



Any help to offer?


Thanks,

--
 Jérôme Euzenat                  __
                                 /      /\
 INRIA Rhône-Alpes,            _/  _   _   _ _    _
                              /_) | ` / ) | \ \  /_)
 655, avenue de l'Europe,    (___/___(_/_/  / /_(_________________
 Montbonnot St Martin,       /        http://www.inrialpes.fr/exmo
 38334 Saint-Ismier cedex,  /          Jerome.Euzenat@xxxxxxxxxxxx
 France____________________/                Jerome.Euzenat@xxxxxxx

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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.