Subject: Re: [xsl] How to compare two QName values in an XML Schema? From: David Carlisle <davidc@xxxxxxxxx> Date: Fri, 08 Apr 2011 17:06:16 +0100 |
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
________________________________________________________________________ This e-mail has been scanned for all viruses by Star. ________________________________________________________________________
________________________________________________________________________ The Numerical Algorithms Group Ltd is a company registered in England and Wales with company number 1249803. The registered office is: Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] How to compare two QName valu, Costello, Roger L. | Thread | Re: [xsl] How to compare two QName , Martin Honnen |
[xsl] How to compare two QName valu, Costello, Roger L. | Date | Re: [xsl] How to compare two QName , Martin Honnen |
Month |