Я сгенерировал несколько классов из нескольких файлов XML используя JAXB xjc tool.Сгенерированные классы JAXB, конфликтующие друг с другом
Эти XML-файлы имеют имена общие теги, что предполагает, что, когда я создал классы Java я имел несколько классов с тем же именем. Я поместил их в разные пакеты и впоследствии переименовал их.
Но я до сих пор есть эта ошибка:
The element name {}Document has more than one mapping. this problem is related to the following location: at public javax.xml.bind.JAXBElement com.xxx.generatedByJaxb.bal.ObjectFactory.createDocument(com.xxx.generatedByJaxb.bal.DocumentTypeBal) at com.xxx.generatedByJaxb.bal.ObjectFactory this problem is related to the following location: at public javax.xml.bind.JAXBElement com.xxx.generatedByJaxb.addr.ObjectFactory.createDocument(com.xxx.generatedByJaxb.addr.DocumentTypeAddr) at com.xxx.generatedByJaxb.addr.ObjectFactory
... повторялось много раз в консоли.
EDIT
Когда я первый столкнулся с проблемой конфликта я переименованный конфликтующие классы, так, например:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "DocumentType", propOrder = { "addressPage" })
public class DocumentType {
Если бы были изменены:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "DocumentTypeAddr", propOrder = { "addressPage" })
public class DocumentTypeAddr {
Я отредактировал классы, они известны без каких-либо изменений вручную. Вот ошибка, которую у меня есть:
Два класса имеют одно и то же имя типа XML «DocumentType». Используйте @ XmlType.name и @ XmlType.namespace, чтобы назначать им разные имена. эта проблема связана со следующим адресом: на com.xxx.generatedByJaxb.addr.DocumentType на общественном com.xxx.generatedByJaxb.addr.DocumentType com.xxx.generatedByJaxb.addr.ObjectFactory.createDocumentType() на ком. xxx.generatedByJaxb.addr.ObjectFactory Эта проблема связана со следующим адресом: at com.xxx.generatedByJaxb.bal.DocumentType at public com.xxx.generatedByJaxb.bal.DocumentType com.xxx.generatedByJaxb.bal.ObjectFactory. createDocumentType() at com.xxx.generatedByJaxb.bal.ObjectFactory Название элемента {} Документ имеет более одного отображения. Эта проблема связана со следующим адресом: at public javax.xml.bind.JAXBElement com.xxx.generatedByJaxb.bal.ObjectFactory.createDocument (com.xxx.generatedByJaxb.bal.DocumentType) at com.xxx.generatedByJaxb. bal.ObjectFactory Эта проблема связана со следующим адресом: at public javax.xml.bind.JAXBElement com.xxx.generatedByJaxb.addr.ObjectFactory.createDocument (com.xxx.generatedByJaxb.addr.DocumentType) at com.xxx .generatedByJaxb.addr.ObjectFactory
Вот пример XSD-файла (между 7 XSD файлов, которые я генерировать классы от):
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:element name="Document" type="DocumentType"/>
<xs:complexType name="DateType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="Type"/>
<xs:attribute type="xs:int" name="Date"/>
<xs:attribute type="xs:byte" name="HH"/>
<xs:attribute type="xs:byte" name="MM"/>
<xs:attribute type="xs:byte" name="SS"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ChargeType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:short" name="Id" use="optional"/>
<xs:attribute type="xs:float" name="Amount" use="optional"/>
<xs:attribute type="xs:string" name="CurrCode" use="optional"/>
<xs:attribute type="xs:byte" name="Type" use="optional"/>
<xs:attribute type="xs:string" name="PT" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="BalancePageType">
<xs:sequence>
<xs:element type="DateType" name="Date"/>
<xs:element type="ChargeType" name="Charge" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DocumentType">
<xs:sequence>
<xs:element type="BalancePageType" name="BalancePage"/>
</xs:sequence>
<xs:attribute type="xs:string" name="Sender"/>
<xs:attribute type="xs:string" name="Id"/>
<xs:attribute type="xs:string" name="BAId"/>
</xs:complexType>
</xs:schema>
Пожалуйста, разместите пример своих схем и конфликтующих классов. – lexicore
Существует много классов в конфликте – Siho
И файлы XML конфиденциальны извините – Siho