从 XSD 生成 XML 中的自定义属性
Posted
技术标签:
【中文标题】从 XSD 生成 XML 中的自定义属性【英文标题】:Generate custom attribute in XML from XSD 【发布时间】:2016-01-27 17:52:17 【问题描述】:我正在尝试使用 JAXB 编组为 xml。
我的要求
如果任何元素的值为 null,则 xml 应该将该元素的属性设置为 nullable="true"。
我尝试将 minoccurs="1", nillable="true" 放在 XSD 中,但它在我的 xml 中给了我 nil="true",但我想显示为 nullable ="true" 完全在我的 xml 中。
<xs:sequence>
<xs:element name="itemName" type="xs:string" />
<xs:element name="purchasedOn" type="xs:date" minOccurs="1" nillable="true"/>
<xs:element name="amount" type="xs:decimal" />
</xs:sequence>
在我的 XML 中:
<purchasedOn xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
如果我错了,请纠正我。
【问题讨论】:
你想让属性说元素 可以是 null 还是 is null ? 可为空意味着该元素可以为空。听起来您需要为此目的定义自己的定制属性。请问,空元素标签有什么问题? 如果你有一个 null 属性,如果它不能为空,它所属的元素里面会是什么? 让我们continue this discussion in chat。 【参考方案1】:<xs:complexType name="CustomDate">
<xs:simpleContent>
<xs:extension base="xs:date">
<xs:attribute name="nullable" type="xs:string">
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
【讨论】:
以上是关于从 XSD 生成 XML 中的自定义属性的主要内容,如果未能解决你的问题,请参考以下文章