和 有什么区别?和 ?
您知道 XML/XSD 上的这些标签之间是否有区别吗?
<a_element /> and <a_element xsi:nil="true"/>
例如:
<SpreadCurve>
<Index>3M</Index>
<IndexNumber>4587</IndexNumber>
<BusinessArea xsi:nil="true" />
</SpreadCurve>
and
<SpreadCurve>
<Index>3M</Index>
<IndexNumber>4587</IndexNumber>
<BusinessArea />
</SpreadCurve>
这些等价吗?
如果我有一个 XSD 元素:
<xsd:element name="BusinessArea" type="xsd:string"/>
这意味着它默认为 xsi:nil="false"。这意味着它不会接受该元素的空值。
我的疑问是,它会接受这个吗?
<BusinessArea />
这对 XSD 到底意味着什么?
此致
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您得到此信息是因为您的 XSD BusinessArea 应定义为 nillable="true"。类似于:
这意味着 BusinessArea 元素可以具有 null 值,即空。
如果 XML 中的元素不包含任何值,则它必须具有属性 xsi:nil="true":
这应该是无效的:
您展示的两个示例不应该是等效的。
查看此内容以了解 xsi:nil 和 nillable:
http://www.zvon。 org/xxl/XMLSchemaTutorial/Output/ser_over_st0.html
http://www .w3.org/TR/xmlschema-0/#Nils
You get this as your XSD BusinessArea should be defined as nillable="true". Something like:
What this mean is that BusinessArea element can have null value i.e. empty.
And if element in XML doesn't contain any value then it must have attribute xsi:nil="true":
This should be invalid :
Two examples you showed should not be equivalent.
Check this out for understanding xsi:nil and nillable:
http://www.zvon.org/xxl/XMLSchemaTutorial/Output/ser_over_st0.html
http://www.w3.org/TR/xmlschema-0/#Nils
来源:http://www.w3.org/TR/xmlschema-1/# xsi_nil
Source: http://www.w3.org/TR/xmlschema-1/#xsi_nil
相当于空字符串,并且对 xsd:string 有效,但对 xsd:date、xsd:datetime、xsd:decimal 等类型无效。
相当于
null< /code> 并将对架构定义中具有 nillable="true" 的所有元素呈现有效
is the equivalent of an
empty string
and will render valid against xsd:string, but not against types like xsd:date, xsd:datetime, xsd:decimal etc.is the equilalent of
null
and will render valid for all elements which have nillable="true" in the schema-definition我的理解是它们不一样。
至少如果您想根据模式验证 xml 的话。
如果在您的 schema 中您将元素定义为 nillable,那么
您需要在 xml 中显式将该元素设置为 null,如下所示:
如果在您的 xml 中该元素类似于
根据架构,它无效。My understanding is that they are not the same.
At least if you want to validate the xml against a schema.
If in your schema you define the element as nillable, let's say:
You need to explicitly in your xml set that element to null, like this:
If in your xml the element is like
<SomeName />
it will not be valid according to the schema.