|
Subject: [xsl] How to compare two QName values in an XML Schema? From: "Costello, Roger L." <costello@xxxxxxxxx> Date: Fri, 8 Apr 2011 12:00:21 -0400 |
Hi Folks,
Below is an XML Schema, containing two simpleTypes. The second one references
the first.
I want an XPath expression that compares the second simpleType's reference to
the name of the first simpleType:
/xs:schema/xs:simpleType[1]/@name
eq
/xs:schema/xs:simpleType[2]/xs:restriction/@base
That returns False. I want it to return True.
I figured the reason it's returning False is because it is comparing the
string "elev:BostonAreaSurfaceElevation" against the string
"EarthSurfaceElevation". Yes?
I want it to do a comparison of QNames, not strings. So I type-cast the
values:
xs:QName(/xs:schema/xs:simpleType[1]/@name)
eq
xs:QName(/xs:schema/xs:simpleType[2]/xs:restriction/@base)
But that gave me this error:
Casting from xs:unTypedAtomic to xs:QName can never succeed.
Why?
What's the correct way to do the comparison?
---------------------------------------------------------
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.elevation.org"
xmlns:elev="http://www.elevation.org"
elementFormDefault="qualified">
<xsd:simpleType name= "EarthSurfaceElevation">
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="-1290"/>
<xsd:maxInclusive value="29035"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name= "BostonAreaSurfaceElevation">
<xsd:restriction base="elev:EarthSurfaceElevation">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="120"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
---------------------------------------------------------
/Roger
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Processing two documents,, Brandon Ibach | Thread | Re: [xsl] How to compare two QName , David Carlisle |
| Re: [xsl] Processing two documents,, David Carlisle | Date | Re: [xsl] How to compare two QName , David Carlisle |
| Month |