Deseo generar documentación para esquemas XML.Convertir XSD en estructura de árbol con Java
Mi objetivo es analizar el archivo xsd y mostrarlo como una estructura de árbol (con todos los tipos complejos/anónimos resueltos). Además, debo anotar todos los elementos en ese árbol con su cardinalidad (como se define en el esquema).
El siguiente pequeño ejemplo podría ayudar a aclarar mi problema.
a) el archivo 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>
b) de salida que me gustaría ver:
client [1]
first_name [1]
last_name [1]
address [1..n]
street [1]
number [0..1]
city [1]
zipcode [1]
¿Alguien sabe una solución basada en Java para este problema? Preferiblemente basado en Eclipse Schema Infoset, pero me complace usar otras bibliotecas también.
¿Cómo puedo resolver los contenidos de los tipos anónimos/complejos usando XSLT? ¿Tienes algún ejemplo para esto? –