[Home] [By Thread] [By Date] [Recent Entries]
> 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] |

Cart



