Уточнение внешних привязок XML для xjc - PullRequest
0 голосов
/ 30 апреля 2018

Привет! Я пытаюсь создать XML для внешних привязок для xjc, но получаю 2 ошибки:

[ERROR] A class/interface with the same name "x.x.DaysOfWeek" is already in use. Use a class customization to resolve this conflict. [ERROR] (Relevant to above error) another "DaysOfWeek" is generated from here.

Я что-то упустил? Мне нужна вторая пара глаз. Спасибо

<!-- data.xsd -->
<xs:complexType name="DaysOfWeek">
  <xs:sequence>
    <xs:element ref="DaysOfWeek"/>
  </xs:sequence>
</xs:complexType>

<xs:element name="DaysOfWeek">
  <xs:complexType mixed="true">
    <xs:attribute name="Type" use="required" type="xs:NCName"/>
  </xs:complexType>
</xs:element>

и сейчас у меня bindings.xml

<jaxb:bindings version="1.0" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
           jaxb:extensionBindingPrefixes="xjc">

<jaxb:bindings schemaLocation="data.xsd">
    <jaxb:schemaBindings>
        <jaxb:package name="net.opengis.kml.v_2_2_0"/>
    </jaxb:schemaBindings>

    <jaxb:bindings node="xs:complexType[@name='DaysOfWeek']//xs:element[@ref='DaysOfWeek']">
      <jaxb:property name="ComplexDaysOfWeek"/>
    </jaxb:bindings>
    <jaxb:bindings node="xs:element[@name='DaysOfWeek']">
      <jaxb:factoryMethod name="ComplexDaysOfWeek"/>
    </jaxb:bindings>
</jaxb:bindings>

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Проблема была решена с помощью

<jaxb:bindings schemaLocation="data.xsd" node="/xs:schema">
    <jaxb:bindings node="xs:element[@name='DaysOfWeek']">
      <jaxb:class name="ComplexDaysOfWeek"/>
    </jaxb:bindings>

    <jaxb:bindings node="xs:complexType[@name='DaysOfWeek']//xs:element[@ref='DaysOfWeek']">
      <jaxb:property name="ComplexDaysOfWeek"/>
    </jaxb:bindings>
</jaxb:bindings>
0 голосов
/ 01 мая 2018

У вас есть столкновение на сгенерированных классах. Попробуйте добавить:

<jaxb:bindings node="xs:element[@name='DaysOfWeek']//xs:complexType">
  <jaxb:class name="ComplexDaysOfWeekType"/>
</jaxb:bindings>

(может быть, без //xs:complexType, не совсем уверен.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...