【问题标题】:How to make an element in XML schema optional?如何使 XML 模式中的元素可选?
【发布时间】:2012-03-03 20:47:25
【问题描述】:

所以我得到了这个 XML 模式:

<?xml version="1.0"?> <xs:schema version="1.0"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           elementFormDefault="qualified">
    <xs:element name="request">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="amenity">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="description" type="xs:string" />
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element> </xs:schema>

如何使描述元素成为可选元素?因此,带有描述元素和不带有描述元素的 XML 都将针对 XSD 进行验证。

【问题讨论】:

标签: xml xsd


【解决方案1】:

试试这个

<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1" />

如果你想要 0 或 1 个“描述”元素,或者

<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="unbounded" />

如果你想要 0 到无限个“描述”元素。

【讨论】:

  • 你打败了我,但这里有一个有用的链接:w3.org/TR/xmlschema-0/#OccurrenceConstraints
  • maxOccurs 默认为1,因此您的顶级示例不需要指定它。
  • 确实,测试过了,如果你想允许最多一个元素,你只需要指定 minOccurs="0" 使其成为可选。
  • maxOccurs 默认为 1 - 非常有用的信息,谢谢。
  • 谢谢!此link 包含其他信息
【解决方案2】:

在架构中将minOccurs 属性设置为0,如下所示:

<?xml version="1.0"?>
  <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:element name="request">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="amenity">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="description" type="xs:string" minOccurs="0" />
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element> </xs:schema>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多