[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: How to compare two QName values in an XML Schema?
<xsl:variable name="base-type-qname" select="resolve-QName(xs:schema/xs:simpleType[2]/xs:restriction/@base, xs:schema/xs:simpleType[2]/xs:restriction)" <xsl:variable name="base-type-local-name" select="local-name-from-QName($base-type-qname)"/> <xsl:variable name="base-type-namespace-uri" select="namespace-uri-from-QName($base-type-qname)"/> <xsl:variable name="type-local-name" select="xs:schema/xs:simpleType[1]/@name"/> <xsl:variable name="type-namespace-uri" select="xs:schema/@targetNamespace"/> <xsl:variable name="basetype-is-type" select="if ( $base-type-local-name = $type-local-name" and $base-type-namespace-uri = $type-namespace-uri) then true else false"/> Lisa --- On Fri, 4/8/11, Costello, Roger L. <costello@xxxxxxxxx> wrote: > From: Costello, Roger L. <costello@xxxxxxxxx> > Subject: How to compare two QName values in an XML Schema? > To: "xsl-list@xxxxxxxxxxxxxxxxxxxxxx" <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> > Received: Friday, April 8, 2011, 11:00 AM > 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 > > --~------------------------------------------------------------------ > 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@xxxxxxxxxxxxxxxxxxxxxx> > --~--
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|