Я попытался объединить две схемы (которые используют одно и то же имя элемента), как вы предложили ранее.
(примечание: мне пришлось использовать публикацию «Ответь на свой вопрос», чтобы включить примеры, поскольку комментарий допускает только ограниченное пространство)
Одна из проблем, с которыми я сталкиваюсь, заключается в том, что некоторые из подэлементов в реальной схеме (я не могу опубликовать фактическую схему) используют те же имена (я должен был воссоздать ниже, чтобы проиллюстрировать этот случай ... - заметьте, что «Группы» schema1 и schema2 содержат элементы с одинаковыми именами) ...
Вот схема.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:group name="schema1">
<xs:sequence>
<xs:element name="AA">
<xs:complexType>
<xs:sequence>
<xs:element name="CC1" type="xs:string"/>
<xs:element name="CC2" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="BB">
<xs:complexType>
<xs:sequence>
<xs:element name="DD1" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:group>
<xs:group name="schema2">
<xs:sequence>
<xs:element name="AA">
<xs:complexType>
<xs:sequence>
<xs:element name="CC1" type="xs:string"/>
<xs:element name="CC2" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="BB">
<xs:complexType>
<xs:sequence>
<xs:element name="DD1">
<xs:complexType>
<xs:sequence>
<xs:element name="EE1" type="xs:string"/>
<xs:element name="EE2" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:group>
<xs:element name="A">
<xs:complexType>
<xs:choice>
<xs:group ref="schema1" />
<xs:group ref="schema2" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Я пытался запустить
xjc schemacombo.xsd -b binding.xjb
... где binding.xjb содержит
<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
jaxb:version="2.0">
<jxb:bindings schemaLocation = "schemacombo.xsd" node="/xs:schema">>
<jxb:schemaBindings>
<jxb:bindings node="xs:group[@name='schema2']">
<jxb:nameXmlTransform>
<jxb:modelGroupName suffix="2"/>
</jxb:nameXmlTransform>
</jxb:bindings>
</jxb:schemaBindings>
</jxb:bindings>
</jxb:bindings>
...- слабая попытка, я знаю, и она не работает ... то есть, выполнение этого приводит к:
parsing a schema...
[ERROR] cos-element-consistent: Error for type '#AnonType_A'. Multiple elements with name 'AA', with different types, appear in the model group.
line 49 of file:/C:/AAAAA_delegate/schemacombo.xsd
[ERROR] cos-nonambig: AA and AA (or elements from their substitution group) violate "Unique Particle Attribution". During validation against this schema, ambiguity would be created for those two particles.
line 49 of file:/C:/AAAAA_delegate/schemacombo.xsd
Failed to parse a schema.
Есть ли у вас какие-либо предложения для заявлений о привязках или аннотаций, которые бы это исправили. - Обратите внимание, я до сих пор не видел работу с настроенными привязками, пока.