nillable="true"要求元素必须存在但值可为空(需xsi:nil="true"),minOccurs="0"允许元素完全省略;二者可共用,支持存在非空、存在为空、不存在三种状态。

nillable="true" 和 minOccurs="0" 都用于处理“空”或“缺失”的情况,但它们作用的对象和语义完全不同:前者管的是值是否可为空,后者管的是元素是否可省略。
nillable="true":元素必须出现,但值可以为空
当设置 nillable="true" 时,XML 中该元素必须存在,只是它的内容可以显式标记为 null。要表示空值,必须带上 xsi:nil="true" 属性,并且不能有子内容或文本值。
- 合法写法:
或 - 非法写法:
<price></price>(这是空标签,不等于 nil)或<price></price>(空内容 ≠ nil) - 典型用途:保持 XML 结构完整,比如在数组、表格行、SOAP 消息中需要占位但值未知的字段
minOccurs="0":元素本身可以完全不出现
当设置 minOccurs="0" 时,该元素在 XML 文档中可以彻底省略,不会出现在序列里。它不关心值是否为空,只控制元素是否存在。
- 合法写法:整个
<price>...</price>标签都不出现 - 如果它出现了,就必须有合法值(除非同时设了
nillable="true") - 典型用途:定义可选字段,兼容旧版本接口,或表达“这个信息当前不提供”
两者可以同时使用
常见组合是 minOccurs="0" nillable="true",这意味着:该元素可有可无;如果出现,还可以是 nil。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~