Java 是否可以为相同的xs:simpleContent元素创建单个类映射?
我有一个外部提供的XSD,它有许多元素,所有元素都是相同的,并且表示一个带有可选货币属性的价格Java 是否可以为相同的xs:simpleContent元素创建单个类映射?,java,jaxb2,xjc,xjb,Java,Jaxb2,Xjc,Xjb,我有一个外部提供的XSD,它有许多元素,所有元素都是相同的,并且表示一个带有可选货币属性的价格 <xs:complexType name="someType"> <xs:sequence> <xs:element name="rrp" minOccurs="0"> <xs:complexType> <xs:simpleContent> <xs:extension base
<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映射文档中可能吗?我不知道如何使用JAXB注释实现这一点,但这并不是说这是不可能的。也许有人会给你一个更好的答案 解决这个问题的理想方法显然是更改XSD,这样您就有了一个“PriceWithcurrency”xs:complexType定义,并且每个元素都声明为该类型。但你说你不能改变它
我要尝试的一件事是,创建一个XSD的变体来实现这一点,为它保留相同的名称空间定义并生成jaxb类。它应该可以与使用原始XSD生成的XML文档实例一起使用。谢谢Patrice,我确实一直在修改供应商提供的XSD,尽管我不希望依赖它,因为XSD发生了变化,如果不再次更新,它将被破坏;这涉及到记录我为我的团队所做的更改等。这些XSD被注释为是使用工具创建的,您可能认为该工具首先会警告不要使用匿名类型。如果我没有很快听到一个转变的方式,我会接受你的回答,谢谢。