[xsl] How to output a xmlns:prefix attribute (special case)

Subject: [xsl] How to output a xmlns:prefix attribute (special case)
From: "Richard Gruet" <rgruet@xxxxxxxxxxxxx>
Date: Wed, 11 Jul 2001 17:32:52 -0700
Hi all,

I'm trying to generate a XML-Schema from a definition in a custom
language of my own (itself validated by an XML-Schema), using an XSLT
stylesheet.
Because my language allows some kind of "imports" that will be
translated to xsd:import elements + xmlns:prefix attributes in the
generated schema, I need to add the xmlns:prefix declarations to the
output xsd:schema element.

Unfortunately, as I am generating xml (not mere text), the XSLT
processor (Saxon 6.4, but it is probably a general rule) prevents me to
do this, by forbidding to add this particular attribute. Instead, it
detects output elements or attributes whose names are qualified with a
prefix, and inserts automatically the corresponding xmlns:prefix
declarations in the output top element.

But it does not work for me, since the references to the qualified types
occur only as *values* of an attribute, not directly as element or
attribute names, e.g in:

<xsd:complexType name="prefix:typeName">

..in that case, the XSLT processor does not know that it should include
a xmlns:prefix declaration in my top xsd:schema element, and anyway it
would not know where to take the URI for that namespace (I won't declare
*every* possible namespace on the planet in my stylesheet ;-).

So I'm stuck: the processor prevents me to put explicitely xmlns
declarations, but OTOH does not do it by itself, so what to do ?
Should I switch to text output mode to bypass the controls ? Is there a
clevier way to proceed ?

Thanks for any advice,

Richard Gruet


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


Current Thread