|
[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: Seek a simple XPath 2.0 expression to return union
Costello, Roger L. costello@xxxxxxxxx wrote:
Hi Folks,
I seek an XPath 2.0 expression that returns all XML Schema simpleTypes containing a union with memberTypes containing the XML Schema string type. (Phew! Did you catch all that?)
So, the XPath should return the union simpleType in this schema:
----------------------------------------------------------------------------------
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="test">
<xs:union memberTypes="xs:int xs:string" />
</xs:simpleType>
</xs:schema>
----------------------------------------------------------------------------------
The XPath should not return the union simpleType in this schema:
----------------------------------------------------------------------------------
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="test">
<xs:union memberTypes="xs:int string"/>
</xs:simpleType>
<xs:simpleType name="string">
<xs:restriction base="xs:string" />
</xs:simpleType>
</xs:schema>
----------------------------------------------------------------------------------
I created a horrendously complex XPath 2.0 expression. I think it works (it's so complex, I'm not sure). Is there a simpler XPath 2.0 expression to solve this problem?
Here's the ugly XPath 2.0 expression that I created:
//xs:simpleType[xs:union[@memberTypes]
[exists(index-of(for $here in ., $i in tokenize(@memberTypes, '\s+') return
namespace-uri-from-QName(resolve-QName($i, $here)) eq
'http://www.w3.org/2001/XMLSchema' and
local-name-from-QName(resolve-QName($i, $here)) eq 'string', true()))]]
I think there is an equality comparison for QNames
//xs:simpleType[xs:union[@memberTypes][some $type in
tokenize(@memberTypes, '\s+') satisfies resolve-QName($type, .) eq
QName('http://www.w3.org/2001/XMLSchema', 'string')]]

|
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
| RSS 2.0 |
|
| Atom 0.3 |
|
|