【问题标题】:Generate custom attribute in XML from XSD从 XSD 生成 XML 中的自定义属性
【发布时间】: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 属性,如果它不能为空,它所属的元素里面会是什么?

标签: xml xsd jaxb schema marshalling


【解决方案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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    相关资源
    最近更新 更多