<?xml version="1.0" encoding="ISO-8859-1"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://FOO" targetNamespace="http://FOO"> <xs:element name="foo"> <xs:complexType> <xs:complexContent> <xs:restriction base="typeA"> <xs:attribute name="barA_1" type="xs:string" use="optional"/> <!-- OK --> <xs:attribute name="barA_2" type="xs:string" use="required"/> <!-- OK --> <xs:attribute name="barA_3" type="xs:string" use="prohibited"/> <!-- OK --> <xs:attribute name="barB_1" type="xs:string" use="optional"/> <!-- 2.1.1 inconsistent ( OR 3 ) --> <xs:attribute name="barB_2" type="xs:string" use="required"/> <!-- OK --> <xs:attribute name="barB_3" type="xs:string" use="prohibited"/> <!-- 3 --> <xs:attribute name="barC_1" type="xs:string" use="optional"/> <!-- 2.2 no match in base --> <xs:attribute name="barC_2" type="xs:string" use="required"/> <!-- 2.2 no match in base --> <xs:attribute name="barC_3" type="xs:string" use="prohibited"/> <!-- OK --> <xs:attribute name="barD_1" type="xs:string" use="optional"/> <!-- 2.2 no match in base --> <xs:attribute name="barD_2" type="xs:string" use="required"/> <!-- 2.2 no match in base --> <xs:attribute name="barD_3" type="xs:string" use="prohibited"/> <!-- OK --> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:element> <xs:complexType name="typeA"> <xs:attribute name="barA_1" type="xs:string" use="optional"/> <xs:attribute name="barA_2" type="xs:string" use="optional"/> <xs:attribute name="barA_3" type="xs:string" use="optional"/> <xs:attribute name="barB_1" type="xs:string" use="required"/> <xs:attribute name="barB_2" type="xs:string" use="required"/> <xs:attribute name="barB_3" type="xs:string" use="required"/> <xs:attribute name="barC_1" type="xs:string" use="prohibited"/> <xs:attribute name="barC_2" type="xs:string" use="prohibited"/> <xs:attribute name="barC_3" type="xs:string" use="prohibited"/> </xs:complexType> </xs:schema>