Последовательность Jaxb с неупорядоченными типами - PullRequest
1 голос
/ 27 октября 2011

Используя схему и XML-файл, я пытаюсь создать элемент типа A, который может содержать вложенные элементы типов A, B и C. Все типы элементов A, B и C являются расширением типа XПоэтому я хотел создать внутри типа элемент, и подумал, что могу добавить любой из элементов A, B или C в любом порядке, который я хотел.Только A может иметь вложенные элементы.Мне нравится эта реализация, потому что порядок вложенных элементов важен для нашей модели данных, и эти элементы будут иметь различный порядок в системе.

<A>
    <B></B>
    <B></B>
    <A>
        <B></B>
        <B></B>
        <C></C>
        <C></C>
    </A>
    <C></C>
</A>

Я попытался сделать несколько вещей в файле XSD, чтобысделать это законным.

<xs:complexType name="A">
   <xs:complexContent>
      <xs:extension base="X" >
      <xs:sequence>
         <xs:element name="a" type="A" minOccurs="0" />
         <xs:element name="b" type="B" minOccurs="0" />
         <xs:element name="c" type="C" minOccurs="0" />
      </xs:sequence>
      </xs:extension>
      </xs:complexContent>
</xs:complexType>

И я попытался сделать последовательность, содержащую только элементы абстрактного типа X, думая, что могу использовать конкретные типы AB и C в файле XML, но это было помечено как ошибка.

1 Ответ

0 голосов
/ 28 октября 2011

Если я правильно понимаю ваш вариант использования, вы можете использовать аннотацию @XmlElementRef, чтобы использовать концепцию схемы XML для групп замещения.

Для получения дополнительной информации

...