Reputation: 5588
I'm trying to make an XSD to validate some XML I'm getting back from a web service. It looks something like this:
<values>
<value_1>asdf</value_1>
<value_2>asdf</value_2>
<value_3>asdf</value_3>
<value_4>asdf</value_4>
<value_5>asdf</value_5>
</values>
The number of inner value nodes is unbounded, but they always end with the _ + number
suffix. Is it possible to to write an XSD that validates the node names themselves?
Upvotes: 1
Views: 1845
Reputation: 111571
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="values">
<xs:complexType>
<xs:sequence>
<xs:any maxOccurs="unbounded"/>
</xs:sequence>
<xs:assert test="every $e in *
satisfies matches(local-name($e), 'value_[0-9]+')"/>
</xs:complexType>
</xs:element>
</xs:schema>
Upvotes: 4
Reputation: 11953
It is not possible with XSD 1.0. Elements must be always listed explicitly.
Upvotes: 0