繁体   English   中英

使用扩展现有类文件的intellij(JAXB插件)从XSD生成java类

[英]Generate java classes from XSD using intellij (JAXB plugin) that extends existing class file

我有这个XSD文件:

<?xml version="1.0" encoding="UTF-8"?>
    <xs:schema targetNamespace="http://www.example.com/dnavigator"
       xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
       xmlns:dn="http://www.example.com/dnavigator"
       attributeFormDefault="unqualified"
       elementFormDefault="qualified"
       jaxb:version="2.0">

<xs:annotation>
    <xs:appinfo>
        <jaxb:globalBindings enableJavaNamingConventions="true"/>
    </xs:appinfo>
</xs:annotation>

<xs:element name="DynamicNavigators">

    <xs:complexType>

        <xs:sequence>

            <xs:element name="DynamicNavigator"
                        type="dn:DynamicNavigator"
                        minOccurs="1"
                        maxOccurs="unbounded">

                <xs:annotation>

                    <xs:documentation>

                    </xs:documentation>

                    <xs:appinfo>
                        <jaxb:property name="DynamicNavigators"/>
                    </xs:appinfo>

                </xs:annotation>

            </xs:element>

        </xs:sequence>

    </xs:complexType>

</xs:element>

<xs:complexType name="DynamicNavigator">

    <xs:sequence minOccurs="0"
                 maxOccurs="unbounded">

            <xs:element name="example"
                        type="xs:string"
                        minOccurs="1"
                        maxOccurs="1"/>

    </xs:sequence>

</xs:complexType>

</xs:schema>

我希望生成的类DynamicNavigator扩展类com.example.MyClass

我该怎么做?

谢谢。

JAXB只为complexTypes创建对象,因此不要将complexTypes包装在'xs:element'标记中。 尝试在complexType中使用'xs:element ref',而不是在complexType中创建新元素。 例如:

<xs:complexType name="DynamicNavigatorsType">
  <xs:sequence>
    <xs:element ref="dn:DynamicNavigator" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>

<xs:complexType name="DynamicNavigatorType">
  <xs:sequence>
    <xs:element ref="dn:example"/>
  </xs:sequence>
</xs:complexType>

<xs:element name="DynamicNavigator" type="dn:DynamicNavigatorType"/>
<xs:element name="example" type="xs:string"/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM