Question

J'ai créé un schéma XML (foo.xsd) et utilisé xjc pour créer mes classes de liaison pour JAXB. Disons que l'élément racine est collection et je suis en train d'écrire N objets de document, qui sont des types complexes.

Parce que je prévois d'écrire des fichiers XML volumineux, j'utilise Stax pour écrire l'élément racine collection et JAXB au maréchal documents en utilisant les sous-arbres Marshaller.marshal(JAXBElement, XMLEventWriter). Telle est l'approche recommandée par guide de l'utilisateur non-officiel de JAXB .

Ma question est, comment puis-je valider le XML alors qu'il est en cours de rangea? Si je lie un schéma à la placier JAXB (à l'aide de Marshaller.setSchema()), je reçois des erreurs de validation parce que je suis TRIAGE seulement un sous-arbre (il se plaint qu'il est de ne pas voir l'élément racine collection "). Je suppose que ce que je veux vraiment faire est de lier une schéma à la Stax XMLEventWriter ou quelque chose comme ça.

Les commentaires sur cette approche globale serait utile. Fondamentalement, je veux être en mesure d'utiliser JAXB au maréchal et de gros documents XML sans désorganiser manquer de mémoire, donc s'il y a une meilleure façon de faire me le faire savoir.

Était-ce utile?

La solution

Certaines implémentations Stax semblent être en mesure de valider la sortie. Voir la réponse suivante à une question similaire:

Utilisation Stax2 avec Woodstox

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top