Я пытаюсь сделать что-то вроде обхода в глубину dom, созданного JDOM, на основе следующего XSD. Проблема в том, что дерево, построенное JDOM, не учитывает ссылки ref. Другими словами, элемент с name='xs:element' и ref='BaseData' имеет 0 дочерних элементов в соответствии с деревом JDOM, потому что, рассматривая его как еще один файл XML, он действительно не имеет дочерних элементов.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="XDEX">
<xs:annotation>
<xs:documentation>Version 20 of 2013-08-21</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="BaseData"/> <-- getChildren returns 0 Elements!!
<xs:element ref="Shipment"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="BaseData">
<xs:complexType>
<xs:sequence>
<xs:element ref="Mandator"/>
<xs:element ref="MandatorVATNumber"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Mandator" type="Char3">
<xs:annotation>
<xs:documentation>number identifying the current mandator</xs:documentation>
</xs:annotation>
</xs:element>
... and so on
Мне действительно нужно пройти по схеме таким образом, чтобы следовать ссылкам, чтобы, например, с помощью рекурсивного алгоритма (для глубины сначала) "Доверитель" посещался непосредственно после "Базовых данных", а не "Отгрузка" , как сейчас. Кто-нибудь знает, как это можно сделать с помощью JDOM или, возможно, другой библиотеки?
Спасибо заранее.