属性定义上的XML Schema验证器错误

时间:2014-11-17 23:54:47

标签: xml xsd xsd-validation

我在验证时遇到错误:

错误 - 第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'。我看了例子,我猜它没关系。

或者只是元素的枚举而不是属性?

1 个答案:

答案 0 :(得分:2)

具有简单类型的元素不具有属性。您需要一个简单内容的#34;复杂类型&#34;,它是使用xs:complexType元素和xs:simpleContent子元素定义的。