This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
how to reflect on the namexpaces URIs and prefixes in XSLT?
- From: Gunther Schadow <gunther at aurora dot regenstrief dot org>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Mon, 11 Feb 2002 11:43:47 -0500
- Subject: [xsl] how to reflect on the namexpaces URIs and prefixes in XSLT?
- Organization: Regenstrief Institute for Health Care
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi,
I am working on a XSLT dealing with XML Schemas. I generate
certain Schema thingies, like complexType and simpleType
and other elements. Within those, I need to deal properly
with the XML Schema "targetNamespace". For instance, if
the ancestor schema node of the input document has this
<xsd:schema
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:v3dt='urn::hl7.org/v3dt'
targetNamespace='urn::hl7.org/v3dt'>
now if I generate a xsd:complexType definition for a type
called 'foo' I will generate:
<xsd:complexType name='foo'/>
if I refer to such types defined in the schema, I have to
do something like this:
<xsd:element name='thing' type='v3dt:foo' />
Now the questions:
- how do I query for the active namespace prefix declarations
in the input document?
Apparently (in saxon at least) the document that I can see
with <copy-of select='$root'/> where <xsl:variable name='root'
select='/'/> doesn't contain any xmlns:... attributes, at least
not at the point of my XSLT execution where I need them.
- even if I find those xmlns:... attributes (which I do, sort of,
in the root template of the XSLT), how do I query those? I can see
the xslns attributes show up when I do
<xsl:copy-of select='$root//xsd:schema'/>
but as soon as I'm trying to grab them specifically, e.g.,
using:
<xsl:for-each select='$root//xsd:schema/@*'/>
I'm not seeing any of the xmlns ones. They only show up if
anything is actually using the namespace in the output, but
how do I know what namespace prefix the xsd:schema/@targetNamespace
is bound to?
It sounds like XSLT is making namespace prefix declarations a
special thing (which is O.K.) but it doesn't provide any special
mechanisms by which one could dynamically work with the namespaces
used by an input document. Are there any workarounds?
thanks,
-Gunther
--
Gunther Schadow, M.D., Ph.D. gschadow@regenstrief.org
Medical Information Scientist Regenstrief Institute for Health Care
Adjunct Assistant Professor Indiana University School of Medicine
tel:1(317)630-7960 http://aurora.regenstrief.org
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list