[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
RE: [xml-dev] enforce at least one element and at most N from a set of N elements- XSD how?
- From: "Michael Kay" <mike@saxonica.com>
- To: "'Pete Cordell'" <petexmldev@tech-know-ware.com>,"'dave'" <ceek63@yahoo.com>,<xml-dev@lists.xml.org>
- Date: Mon, 5 Nov 2007 10:56:58 -0000
> But that's not particularly pretty and doesn't scale very
> well. In that case it's often best to define a looser
> schema, and then impose the constraint at the application
> level. An example schema for that might be:
>
> <xs:complexType name='..'>
> <xs:sequence>
> <xs:element name='element1' minOccurs='0'../>
> <xs:element name='element2' minOccurs='0'.../>
> <xs:element name='element3' minOccurs='0'../>
> <xs:element name='element4' minOccurs='0'../>
> </xs:sequence>
> <xs:complexType>
Or with XML Schema 1.1 you can use assertions (available in Saxon 9.0, just
released). For example the above type definition could become:
<xs:complexType name='..'>
<xs:sequence>
<xs:element name='element1' minOccurs='0'../>
<xs:element name='element2' minOccurs='0'.../>
<xs:element name='element3' minOccurs='0'../>
<xs:element name='element4' minOccurs='0'../>
</xs:sequence>
<xs:assert test="count(*) = 1 to 4"/>
<xs:complexType>
Michael Kay
http://www.saxonica.com/
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]