Sorry to bother everyone with a question whose answer is probably in the
FAQ, but I couldn't find it there.
My input document (which happens to be a schema) has the following form:
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:pfx="http://my.url"
targetNamespace="http://my.url"
elementFormDefault="qualified">
<xs:complexType name="ChildClass">
<!-- details omitted ->
</xs:complexType>
<xs:element name="ParentClass">
<xs:complexType>
<xs:sequence>
<xs:element name="Property" type="pfx:ChildClass"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
As part of its processing, my transform needs to identify all
complexType nodes that are referenced as types elsewhere in the
document. In the example above, I need to identify ChildClass because it
is a complexType that is referenced by the "type" attribute within the
ParentClass.
I would expect the following to work:
<xsl:template match="/">
<xsl:for-each
select="(*/xs:simpleType|*/xs:complexType)[//@type=(_at_)name]">
<!-- do something useful ->
</xsl:for-each>
</xsl:template>
But, at least with Saxon6.5.5 it selects nothing. It seems like a
namespace problem, since removing pfx: from the type (and defining a
default namespace) makes the transform work as I expect it to. I suppose
I could play around with local-name() and get the transform to work, but
that doesn't seem like the right approach. I was thinking (hoping?) that
XSL would handle the namespace resolution automatically, but clearly I
am wrong. Or perhaps my select is wrong, and it just happens to work by
coincidence without namespace prefixes. In any case, I would welcome
enlightenment.
Many thanks for your patience and thanks in advance for any assistance,
Stephen
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--