6

我有一个看起来像这样的 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>

而且我只是不知道如何为元素的属性创建一个xs:enumeration,以便该Name属性Schema只能使用几个指定的值。我不擅长 xsd,将不胜感激:)

4

1 回答 1

7

如果您想为所有Name属性重用受限类型,请simpleType在根级别添加 a:

<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" />
于 2012-05-11T10:06:09.510 回答