我在验证时遇到错误:
错误 - 第14行,第36行:org.xml.sax.SAXParseException; lineNumber:14; columnNumber:36; s4s-elt-must-match.1:'simpleType'的内容必须匹配(注释?,(限制|列表|联合))。从:attribute。
开始发现问题如何解决?
我的XML片段
<CHANEL_NAME lang="RUS/MD">N4</CHANEL_NAME>
和XSD:
<xs:element name="CHANEL_NAME">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="40"/>
</xs:restriction>
<xs:attribute name="lang">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="MD"/>
<xs:enumeration value="RUS"/>
<xs:enumeration value="RUS/MD"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:simpleType>
</xs:element>
所以我在属性'lang'中只需要确定的值,如'MD','RUS'或'RUS / MD'。我看了例子,我猜它没关系。
或者只是元素的枚举而不是属性?
答案 0 :(得分:0)
问题是第一个simpleType
。简单类型不能具有属性。
您可能需要一个内容简单的复杂类型。类似的东西:
<xs:element name="CHANEL_NAME">
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="xs:string">
<xs:length value="40"/>
<xs:attribute name="lang">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="MD"/>
<xs:enumeration value="RUS"/>
<xs:enumeration value="RUS/MD"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
(未经测试。)
还要考虑命名您的匿名类型。
PS。另请考虑使用/限制xs:language
作为语言类型。
Всегонаилучшего。