当minOccurs attribrute> 1时,使用默认属性的任何好处?

noc*_*ura 1 c# xml xsd xml-serialization

我遇到了一个传统的XSD,有很多像......

      <xs:element minOccurs="1"
                  maxOccurs="1"
                  default="true"
                  name="Ready" type="xs:boolean" />
Run Code Online (Sandbox Code Playgroud)

...其中minOccurs和maxOccurrs都等于1,并且有一个默认值.这里有默认属性是否有任何好处,因为XML doc需要以任何方式包含某些值?

zac*_*zac 5

规格:

模式处理器稍微区别对待默认元素.当使用默认值声明元素时,元素的值是在实例文档中显示为元素内容的任何值; 如果元素没有任何内容,则模式处理器为元素提供的值等于默认属性的值.但是,如果元素未出现在实例文档中,则架构处理器根本不提供该元素.总之,元素和属性默认值之间的差异可以表示为:默认属性值在缺少属性时应用, 默认元素值在元素为空时应用.

我认为这意味着<Ready />根据您的架构,空节点默认值为TRUE.