Subject: RE: [xsl] How to output a xmlns:prefix attribute (special case) From: "Michael Kay" <mhkay@xxxxxxxxxxxx> Date: Thu, 12 Jul 2001 09:15:08 +0100 |
If the namespace you require is declared in the stylesheet, and you output a literal result element, then you will get a namespace declaration output for it. If you can't do that, another solution is to add a dummy attribute to the output, with the name prefix:att. If you're really desparate, create a separate XML file of the form <dummy xmlns:prefix="my-uri"/> and do <xsl:copy-of select=document('dummy.xml')/*/namespace::prefix"/> (this relies on something in the XSLT 1.0 errata so it may not work on all processors, but it should work with Saxon). Mike Kay Software AG > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of > Richard Gruet > Sent: 12 July 2001 01:33 > To: XSL-list > Subject: [xsl] How to output a xmlns:prefix attribute (special case) > > > 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 > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] How to output a xmlns:pre, David Carlisle | Thread | Re: [xsl] How to output a xmlns:pre, Richard Gruet |
RE: [xsl] cutting it short!, Michael Kay | Date | RE: [xsl] How can I do the xsl file, Jarno . Elovirta |
Month |