そのようなxmlファイルがあります
<doc>
<field name="simple_meta">book</field>
<field name="complex_meta">journal</field>
<field name="text_date">some text</field>
</doc>
属性「name」の値に基づいて、要素テキストをパターンで検証したいと思います。つまり、属性の値が「simple_meta」の場合は「simpleRestriction」の検証を行い、「complex_meta」の場合は「complexRestriction」の検証を行います。問題は、同じノードの下に同じ名前の要素を定義できないことです。この問題を解決するのを手伝ってくれる人はいますか?
<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>