xml - 使用 xsd 限制属性值

标签 xml xsd

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

相关文章:

php - 使用来自 xml 的 php 显示数据

java - XSD 到 JAVA 到 XML

xml - 如何使用 apache camel 验证 xsd?

Java SAX 解析器验证

xml - 您如何在 Oracle PL/SQL 中解析一个简单的 XML 片段并将其加载到全局临时表中?

python - 如何改进 XML 导入到 mongodb 中?

SQL Server 在指定默认值时创建 XML 命名空间

java - 如何避免使用 Document.createTextNode 对 <、>、& 进行编码

xml - 必须有偶数个 URI。 - XSD 架构 - XML 文档

@Pattern.List 的 Java bean 验证与 XSD 验证