Problemas con JAXB - no puedo compilar un esquema de unión

anxkarius
29 de Agosto del 2005
Hola a todos.

Estoy intentando utilizar JAXB para un proyecto con XML. Tengo una DTD oficial bajada de internet y lo que quiero hacer es un programa en java que muestre la peresentación de cómo sería un documento en ese lenguaje.

Para ello he hecho un esquema mínimo de unión (.xjs) que sólo indica los elementos raíz, siguiendo el ejemplo de la documentación de JAXB de esta misma página, se lo he aplicado a la DTD que tengo (que en realidad tiene varios archivos .dtd, unos 20, se lo he aplicado a la principal), y he intentado compilar el esquema de unión, pero me ha dado varios errores:

1.- Poniendo simplemente "xjc archivo_principal.dtd archivo_principal.xjs" me dice que "The markup in the document preceding the root element must be well-formed", y me señala a la primera línea de la dtd que no es un comentario.

Mirando en internet encontré que había que bajarse la librería Dom4j y ponerla en el directorio lib de JAXB y probar a compilar con el parámetro "-dtd", para indicarle que el archivo origen es una DTD de XML.

2.- Así que compilando de la forma "xjc -dtd archivo_principal.dtd archivo_principal.xjs" me da los siguientes errores:
- Too many schema files for this schema language.
- Reference to undefined parameter entity "%{0};"
Apuntándome este último error a la primera línea de la DTD donde aparece el carácter "%", dicha línea es:
<!ATTLIST opus
%link-attributes; <<<<<<====== ésta
>

Y en eso estoy ahora, no sé qué hacer para que me compile el binding schema y me genere las clases. Creo que lo he hecho todo tal y como dicen en el manual de JAXB de ésta misma página. ¿puede tener algo que ver que la DTD esté dividida en varios archivos? ¿cómo puedo resolverlo?.

Muchas gracias por adelantado.