我想从我为另一个 xml 制作的 xsd 检查另一个 xml 中是否存在属性。
例如,我有这个 xsd
<xs:schema version="1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="models">
<xs:complexType>
<xs:sequence>
<xs:element name="model" maxOccurs="unbounded" minOccurs="1">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:unique name="uniqueModelName">
<xs:selector xpath="./model"/>
<xs:field xpath="@name"/>
</xs:unique>
</xs:element>
我还有另一个xsd
<xs:element name="language">
<xs:complexType>
<xs:sequence>
<xs:element name="word" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="value" maxOccurs="unbounded" minOccurs="1">
<xs:complexType>
<xs:attribute name="lange" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="key" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
并且我想确保在第一个 xsd 中命名name
的元素的命名model
属性存在于第二个 xsd中key
元素的命名属性中
,换句话说,如果第一个 xsd 中命名的属性值不存在于第二个xsd,一定会出错。
xml 示例:
第一个 xsd 的 xml:value
name
<model name="A"/>
<model name="B"/>
第二个xsd的xml:
<word key="A">
<value lange="english">Add</value>
<value lange="frensh">ajouter</value>
</word>
它必须告诉存在错误,因为word
第二个 xml 中没有具有属性的标记,B
这会在 xsd 中发生吗:)?
虽然这是一个正确的
<word key="A">
<value lange="english">Add</value>
<value lange="frensh">ajouter</value>
</word>
<word key="B">
<value lange="english">Add</value>
<value lange="frensh">ajouter</value>
</word>