我有一个看起来像这样的 xsd 文件:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Configurations">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Schema">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Table">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Key">
<xs:complexType>
<xs:sequence>
<xs:element name="Column" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="Name" type="xs:string" use="required" />
<xs:attribute name="Value" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Name" type="xs:string" use="required" />
<xs:attribute name="Value" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Name" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Name" type="xs:string" use="required" />
<xs:attribute name="ConnectionString" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
而且我不知道如何为 Schema
元素的 Name
属性创建一个 xs:enumeration
,这样只有几个指定的值可以用于该属性。我不擅长 xsd,如果能提供一点帮助,我们将不胜感激:)
最佳答案
如果您想为所有Name
属性重用受限类型,请在根级别添加一个simpleType
:
<xs:simpleType name="Name_type">
<xs:restriction base="xs:string">
<xs:enumeration value="Foo" />
<xs:enumeration value="Bar" />
<xs:enumeration value="Baz" />
</xs:restriction>
</xs:simpleType>
然后将其作为您的 Name
属性的类型进行引用:
<xs:attribute name="Name" type="Name_type" use="required" />
关于xml - 使用 xsd 限制属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10548948/