代码之家  ›  专栏  ›  技术社区  ›  bguiz

Java对象的XML模式定义(XSD)中的继承

  •  0
  • bguiz  · 技术社区  · 15 年前

    我需要创建一个描述Java对象的xmlschema定义(XSD)。

    public abstract class Rule<T> { ... }
    
    public abstract class TimeRule extends Rule<XTime> { ... }
    
    public abstract class LocationRule extends Rule<Location> { ... }
    
    public abstract class IntRule extends Rule<Integer> { ... }
    
    ....
    

    (其中 XTime Location 是在别处定义的自定义类)

    我该如何构建一个XSD,这样我就可以拥有表示每个XSD子类的XML节点 Rule<T>

    谢谢您!

    1 回复  |  直到 15 年前
        1
  •  5
  •   lexicore    15 年前

    康尼斯德 JAXB 对于XML架构->Java编译。

    <xs:complexType name="baseType">
        <xs:sequence>
            <xs:element name="a" type="xs:string"/>
            <xs:element name="b" type="xs:long"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="extendedType">
        <xs:complexContent>
            <xs:extension base="baseType">
                <xs:sequence>
                    <xs:element name="c" type="xs:dateTime"/>
                    <xs:element name="d" type="xs:base64Binary"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    

    但是,我认为您不能完全实现所发布的Java代码。不过,你还是可以接近 inheritance plugin .