Я пытаюсь понять, что мне нужно учитывать, если я хочу сгенерировать java классов из набора xsd-schemas
с использованием jaxb
. Нерешенная проблема, с которой я столкнулся во время моих нынешних попыток, была вызвана конфликтом имен:
„[ОШИБКА]« попытки_данных »уже определена», элемент «данные попытки» может быть найден в двух xsd- files
Из-за этого я создал внешний файл настройки привязки - в соответствии с документацией, предложенной oracle («Настройка привязок JAXB»). думал, что это способ разрешить такое столкновение имен и что это должно решить его Но теперь я не уверен, что это правильно. Указанная ошибка все еще появлялась при следующих попытках синтаксического анализа.
xsd 1
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:annotation>
<xs:documentation>This is just an attempt (1).</xs:documentation>
</xs:annotation>
<xs:element name="attempt_data">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
xsd 2
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:annotation>
<xs:documentation>This is just an attempt (2).</xs:documentation>
</xs:annotation>
<xs:element name="attempt_data">
<xs:complexType>
<xs:sequence>
<xs:element name="text" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
jaxb_ebf.xjb
<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings version="1.0" xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<jxb:bindings schemaLocation="file_01.xsd" node="/xs:schema">
<jxb:bindings node=".//xs:element[@name='attemptdata']">
<jxb:class name="attemptdatap"/>
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>
командная строка
xjc file directory –b Binding-File
Я ценю любые советы - заранее спасибо