小编Mar*_*ova的帖子

如何覆盖从父复杂类型继承的元素类型?

我从XSD(使用JAXB)进行代码生成.我有一个超类和几个子类.其中一个超类'属性(比如说prop),有类型A.我也有类型B extends AC extends A(在XSD中定义).超类'模式定义了一个类型的元素A,它由子类继承.我想使用类型BC不是A子类.

<xsd:complexType name="Superclass">
    <xsd:sequence>
        <xsd:element name="prop" type="A" maxOccurs="unbounded"/>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="Subclass1">
    <xsd:complexContent>
        <xsd:extension base="Superclass"/>
        <xsd:attribute name="someAttribute" type="xsd:string"/>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="Subclass2">
    <xsd:complexContent>
        <xsd:extension base="Superclass"/>
        <xsd:attribute name="someOtherAttribute" type="xsd:int"/>
    </xsd:complexContent>
</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)

生成的Superclass.java将有List<A> prop.例如,我想prop同类型被覆盖List<B>Subclass1.javaList<C>Subclass2.java.主要目标是prop在超类中使用,但在子类中使用其他(兼容)类型.

java xml inheritance xsd jaxb

6
推荐指数
1
解决办法
212
查看次数

标签 统计

inheritance ×1

java ×1

jaxb ×1

xml ×1

xsd ×1