ZVON > Tutorials > XML Schema and Relax NG Tutorial |
Intro / Search / ZVON |
Index | >> Example 6 / 8 << | Prev | Next | |
The values of block and blockDefault attributes were combined and thus we can use the elements "C" or "E" only. (The type of "D" is derived by an extension from the type "AAA" and the type of "F" is derived by a restriction from the type "AAA" - both cases are in conflict with the "block" or "blockDefault" attributes).
Valid document <root xsi:noNamespaceSchemaLocation="correct_0.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <C>5</C> </root> Invalid document <root xsi:noNamespaceSchemaLocation="correct_0.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <D>7</D> </root> Valid document <root xsi:noNamespaceSchemaLocation="correct_0.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <E>7</E> </root> Invalid document <root xsi:noNamespaceSchemaLocation="correct_0.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <F>7</F> </root> |
Correct XML Schema (correct_0.xsd) <xsd:schema blockDefault="restriction" xmlns:xsd="http://www.w3.org/2001/XMLSchema" > <xsd:element name="root"> <xsd:complexType> <xsd:sequence minOccurs="1"> <xsd:element ref="C"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:complexType name="AAA"> <xsd:simpleContent> <xsd:extension base="xsd:integer"/> </xsd:simpleContent> </xsd:complexType> <xsd:element name="C" type="AAA" block="extension"/> <xsd:element name="D" substitutionGroup="C"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="AAA"> <xsd:attribute name="bbb" type="xsd:string"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="E" type="AAA" substitutionGroup="C"/> <xsd:element name="F" substitutionGroup="C"> <xsd:complexType> <xsd:simpleContent> <xsd:restriction base="AAA"> <xsd:minInclusive value="0"/> </xsd:restriction> </xsd:simpleContent> </xsd:complexType> </xsd:element> </xsd:schema> |