提问人:Richard Knop 提问时间:2/12/2012 更新时间:6/8/2017 访问量:175937
如何使XML模式中的元素可选?
How to make an element in XML schema optional?
问:
所以我得到了这个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>
如何使 description 元素成为可选元素?因此,带有 description 元素和不带 description 元素的 XML 都将针对 XSD 进行验证。
答:
226赞
Dmitry Kudryavtsev
2/12/2012
#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 到无限数量的“描述”元素。
评论
6赞
kdgregory
2/12/2012
你打败了我的答案,但这里有一个有用的链接:w3.org/TR/xmlschema-0/#OccurrenceConstraints
8赞
Duncan Jones
8/11/2016
maxOccurs
默认值为 ,因此您的顶级示例不需要指定它。1
1赞
Wouter Schut
1/10/2017
事实上,测试了它,如果你想允许最多一个元素,你只需要指定 minOccurs=“0” 使其成为可选的。
0赞
thonnor
1/21/2017
maxOccurs 默认为 1 - 非常有用的信息,谢谢。
0赞
cavalsilva
1/19/2019
谢谢!此链接包含其他信息
24赞
david.s
2/12/2012
#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>
上一个:如何仅在表格内应用边框?
下一个:选择不带表的硬编码值
评论