如何为XSD中的可选元素设置默认值?附XML示例
给XML的XSD添加可选且带默认值的元素
嘿,这事儿好办!我来帮你把NumberOfSiblings这个可选且带默认值的元素加到你的XSD里,完全符合你要的「缺失时自动填充0」的需求。
完善后的XSD片段
<xs:element name="Person"> <xs:complexType> <xs:sequence> <xs:element name="Name" type="xs:string"/> <xs:element name="Age" type="xs:int"/> <!-- 新增的目标元素 --> <xs:element name="NumberOfSiblings" type="xs:int" default="0" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element>
几个关键细节得跟你说清楚:
default="0":这就是核心!当你的XML里没写NumberOfSiblings的时候,验证工具会自动把这个元素的值补成0minOccurs="0":必须加这个,不然XSD会要求XML里必须出现这个元素,就不是可选的了- 类型选
xs:int是因为默认值0是整数,得和元素类型匹配,不然会触发验证错误
实际验证效果
- 要是你的XML是原来的样子:
验证之后,这个<Person> <Name>James</Name> <Age>18</Age> </Person>Person会被当成已经包含NumberOfSiblings="0"来处理 - 要是你XML里主动写了这个元素,比如
<NumberOfSiblings>2</NumberOfSiblings>,那肯定就用你写的2,不会被默认值覆盖
内容的提问来源于stack exchange,提问作者jimbo
相关产品推荐
相关产品推荐

