我有关注xsd
...
<xs:group name="space">
<xs:sequence>
<xs:element name="objects" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Object definitions
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="object" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Object definition
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:group ref="spaceentry" />
<xs:element name="object" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Object definition
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="createobject" />
<xs:attributeGroup ref="createobject" />
<xs:attribute name="state" type="componentstatelookup">
<xs:annotation>
<xs:documentation>
Object initial state
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="comment" type="comment" />
</xs:complexType>
</xs:element>
</xs:sequence>
...
正如你所看到的,我有两个 <xs:element name="object" ... /> 在那里不会在 java 中很好地翻译有两个具有相同名称的类。我正在尝试使用 xjb 来翻译它们
<bindings xmlns="http://java.sun.com/xml/ns/jaxb"
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
version="1.0">
<bindings schemaLocation="../xsd/libraries.xsd" version="1.0">
<!-- Customise the package name -->
<schemaBindings>
<package name="be.celludriel.universegenerator.model.xml"/>
</schemaBindings>
<!-- rename the value element -->
<bindings node="//xs:element[@name='race']">
<property name="raceValue"/>
</bindings>
<bindings node="//xs:element[@name='job']/xs:complexType/xs:sequence/xs:choice/xs:element[@name='location']/xs:complexType/xs:sequence/xs:element[@name='policefaction']">
<property name="policeFactionValue"/>
</bindings>
<bindings node="//xs:group[@name='space']/xs:sequence/xs:element/xs:complexType/xs:sequence/xs:element[@name='object']">
<class name="SpaceObject"/>
</bindings>
<bindings node="//xs:group[@name='space']/xs:sequence/xs:element/xs:complexType/xs:sequence/xs:element[@name='object']/xs:complexType/xs:sequence/xs:element['object']">
<class name="SpaceEntryObject"/>
</bindings>
</bindings>
</bindings>
但是我最终得到
Failed to execute goal org.codehaus.mojo:jaxb2-maven-plugin:2.5.0:xjc (xjc) on project universe-generator: Illegal class inheritance loop. Outer class SpaceObject may not subclass from inner class: SpaceObject
我想知道我在这里做错了什么,有人可以帮我解决吗?如何重命名 XJB 文件中的内部类?