java是否可以为相同的xs:simpleContent元素创建单个类映射?
我有一个外部提供的XSD,它有许多元素,所有元素都是相同的,并且表示一个带有可选货币属性的价格
<xs:complexType name="someType">
<xs:sequence>
<xs:element name="rrp" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="currency" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="whs" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="currency" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
我希望将其转换为一个公共类,而不是许多静态类,这是否可以通过XJB映射文档实现
# 1 楼答案
我不知道如何使用JAXB注释实现这一点,但这并不是说这是不可能的。也许有人会给你一个更好的答案
解决这个问题的理想方法显然是更改XSD,这样您就有了一个“PriceWithcurrency”xs:complexType定义,并且每个元素都声明为该类型。但你说你不能改变它
我要尝试的一件事是,创建一个XSD的变体来实现这一点,为它保留相同的名称空间定义并生成jaxb类。它应该使用使用原始XSD生成的XML文档实例