Я хочу создать документацию для схем XML.
Моя цель - проанализировать файл xsd и отобразить его в виде древовидной структуры (с разрешением всех сложных / анонимных типов). Кроме того, мне нужно аннотировать все элементы в этом дереве с их количеством элементов (как определено схемой).
Следующий небольшой пример может помочь прояснить мою проблему.
а) файл xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="client" type="clientType" />
<xs:complexType name="clientType">
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="first_name"/>
<xs:element name="last_name"/>
<xs:element name="address" type="addressType"
minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="addressType">
<xs:sequence>
<xs:element name="street"/>
<xs:element name="number" minOccurs="0" maxOccurs="1"/>
<xs:element name="city"/>
<xs:element name="zipcode"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
б) Вывод, который я хотел бы увидеть:
client [1]
first_name [1]
last_name [1]
address [1..n]
street [1]
number [0..1]
city [1]
zipcode [1]
Кто-нибудь знает решение этой проблемы на основе Java? Желательно на основе Eclipse Schema Infoset , но я также рад использовать и другие библиотеки.