|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] generating xml with a runtime resolved default namespa
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@xxxxxxxXSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








