#java #xsd #jaxb
Вопрос:
Я пытаюсь создать классы JAXB из файла XSD, предоставленного внешним поставщиком: http://crd.gov.pl/wzor/2021/03/26/10548/schemat.xsd
К сожалению, файл содержит множество зависимостей, которые вызывают такие ошибки, как:
[ОШИБКА] Класс / интерфейс с тем же именем «[Имя образца]» уже используется. Используйте настройку класса для разрешения этого конфликта.
Я разобрался с ошибками узлов сложного типа, используя такие привязки, как:
<jxb:bindings schemaLocation="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2020/03/11/eD/DefinicjeTypy/StrukturyDanych_v6-0E.xsd">
<jxb:bindings node="//xsd:complexType[@name='SampleName']">
<jxb:class name="SampleNamev2"/>
</jxb:bindings>
</jxb:bindings>
но я не могу решить проблему с узлом простого типа (перечисление) TKodKraju:
<xsd:simpleType name="TKodKraju">
<xsd:restriction base="xsd:normalizedString">
<xsd:enumeration value="XX">
<xsd:annotation>
<xsd:documentation>XX_DESC</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="YY">
<xsd:annotation>
<xsd:documentation>YY_DESC</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
...
Наконец, у меня была одна ошибка, с которой нужно было справиться:
parsing a schema...
compiling a schema...
[ERROR] A class/interface with the same name "schema.CIT830v10E.TKodKraju" is already in use. Use a class customization to resolve this conflict.
line 6 of http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2020/03/11/eD/DefinicjeTypy/KodyKrajow_v6-0E.xsd
[ERROR] (Relevant to above error) another "TKodKraju" is generated from here.
line 6 of http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2020/07/06/eD/DefinicjeTypy/KodyKrajow_v7-0E.xsd
Failed to produce code.
Я искал и пробовал различные решения, например:
<jxb:bindings schemaLocation="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2020/03/11/eD/DefinicjeTypy/KodyKrajow_v6-0E.xsd">
<jxb:bindings node="//xsd:element[@name='TKodKraju']">
<jxb:factoryMethod name="TKodKrajuv6"/>
</jxb:bindings>
</jxb:bindings>
но ни один из них не прошел через процесс синтаксического анализа. Большинство из них заканчивались словами:
анализ схемы… [ОШИБКА] Оценка XPath «//xsd:элемент[@name=’TKodKraju’]» приводит к пустому целевому узлу … Не удалось проанализировать схему.
Я был бы признателен за любые предложения о том, как решить эту проблему.