Анализ следующей XML-схемы приводит к этой ошибке:
атрибут элемента: ошибка синтаксического анализатора схем: атрибут decl. «текущее состояние», атрибут «тип»: значение QName «закрытое состояние» не разрешается в (n) определение простого типа.
Схема WXS memory.xsd не смогла скомпилировать
вот ответственный код:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.com">
<xsd:simpleType name="covered-state">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<xsd:enumeration value="0"/>
<xsd:enumeration value="1"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="COVERED"/>
<xsd:enumeration value="UNCOVERED"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
<xsd:complexType name="MemoryCard">
<xsd:attribute name="current-state" type="covered-state" use="required"/> <!-- here i get the error -->
</xsd:complexType>
</xsd:schema>
То, что это должно сделать, это объединить перечисление строк и целых чисел так, чтобы xml-файл принимал «0», «1», «COVERED» или «UNCOVERED» для атрибута текущего состояния.
Может ли кто-нибудь указать мне правильное направление? Спасибо!