Xsd 属性声明上的XML架构验证程序错误

Xsd 属性声明上的XML架构验证程序错误,xsd,xsd-validation,Xsd,Xsd Validation,我在验证时遇到一个错误: 错误-第14行,第36行:org.xml.sax.SAXParseException;行号:14;栏目号:36;s4s elt必须匹配。1:“simpleType”的内容必须匹配annotation?,restriction | list | union。发现从:属性开始的问题 如何解决 我的XML片段 <CHANEL_NAME lang="RUS/MD">N4</CHANEL_NAME> 和XSD: <xs:element name="

我在验证时遇到一个错误:

错误-第14行,第36行:org.xml.sax.SAXParseException;行号:14;栏目号:36;s4s elt必须匹配。1:“simpleType”的内容必须匹配annotation?,restriction | list | union。发现从:属性开始的问题

如何解决

我的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”这样的值。我读过一些例子,我想没关系

或者枚举只针对元素而不针对属性?

问题在于第一个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:语言作为语言类型。

аачача