XSD的nillable=”true”和minOccurs=”0″有什么区别

2次阅读

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

XSD的nillable=”true”和minOccurs=”0″有什么区别 XSD的nillable=”true”和minOccurs=”0″有什么区别

Magick

无代码AI工具,可以构建世界级的AI应用程序。

XSD的nillable=”true”和minOccurs=”0″有什么区别 225

查看详情 XSD的nillable=”true”和minOccurs=”0″有什么区别

  • 允许三种状态:<price>123</price>、或干脆没有 <price></price> 标签
  • 适合灵活的数据契约,比如 WebService 接口新增一个非必填且允许显式空值的字段

java 注解里的对应关系

在 JAX-WS 的 @xmlElement 中:

  • required = false 对应 XSD 的 minOccurs="0"
  • nillable = true 直接对应 XSD 的 nillable="true"
  • 注意:required=false 并不意味着值能为 NULL,只是元素可省略;真正支持 null 值需配合 nillable=true

基本上就这些。区别不在技术难度,而在设计意图——你是想“跳过这个字段”,还是“保留字段但声明它为空”。

text=ZqhQzanResources