는 그같은 요소 이름,하지만 서로 다른 유효성 검사 논리
<doc>
<field name="simple_meta">book</field>
<field name="complex_meta">journal</field>
<field name="text_date">some text</field>
</doc>
내가 속성 "이름"의 값을 기준으로 패턴 요소 텍스트를 확인하려는 것 같다 XML 파일이 있습니다. 즉, 속성의 값이 "simple_meta"인 경우 "complexRestriction"유효성 검사를 수행하기 위해 "complex_meta"의 경우 "simpleRestriction"유효성 검사를 수행하려고합니다. 문제는 동일한 노드 아래에 같은 이름의 요소를 정의 할 수 없다는 것입니다. 누군가이 문제를 해결할 수 있도록 도와 줄 수 있습니까?
<xs:schema ......>
<xs:simpleType name="simpleRestriction">
<xs:restriction base="xs:string">
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="complexRestriction">
<xs:restriction base="xs:string">
<xs:maxLength value="10"/>
<xs:pattern value="([\w])*"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="str">
<xs:complexType>
<xs:simpleContent>
<xs:extention base="simpleRestriction">
<xs:attribute name="name">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="simple_meta"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extention>
</xs:simpleContent>
</xs:ComplexType>
</xs:element>
<xs:element name="str">
<xs:complexType>
<xs:simpleContent>
<xs:extention base="complexRestriction">
<xs:attribute name="name">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="complex_meta"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extention>
</xs:simpleContent>
</xs:ComplexType>
</xs:element>
</xs:schema>
XSD 1.0에서는이 작업을 수행 할 수 없습니다. 다른 시스템 (Schematron 또는 RelaxNG 또는 XSD 1.1 일 수도 있지만 익숙하지 않음) – MiMo