Frage

Ich habe ein XML-Schema (foo.xsd) und gebrauchten xjc erstellt meine Bindungsklassen für JAXB zu erstellen. Nehmen wir an, das Wurzelelement ist collection und ich schreibe N document Objekte, die komplexe Typen sind.

Da ich plane große XML-Dateien zu schreiben, ich bin mit dem Stax collection Wurzelelement zu schreiben, und JAXB zum Marschall Dokument Teilbäume Marshaller.marshal(JAXBElement, XMLEventWriter) verwenden. Dies ist der Ansatz empfohlen von jaxb inoffizielle Führer des Benutzers.

Meine Frage ist, wie kann ich die XML-Validierung während es vermarshallten wird? Wenn ich bind ein Schema zum JAXB Einweiser (mit Marshaller.setSchema()), I Validierungsfehler, weil ich nur einen Teilbaum Rangier (es beschwert sich, dass es nicht das collection Wurzelelement "ist zu sehen). Ich nehme an, was wirklich tun möchte, ist ich bind ein Schema der Stax XMLEventWriter oder so ähnlich.

Jede Kommentare zu dieser Gesamtansatz wäre hilfreich. Grundsätzlich mag ich in der Lage sein JAXB zu Marschall zu verwenden und Abstellungs großen XML-Dokumenten ohne Speicher zur Neige, so dass, wenn es ein besserer Weg, dies zu tun, lassen Sie mich wissen.

War es hilfreich?

Lösung

scheinen Einige Stax Implementierungen der Lage zu sein, zu validieren Ausgang. Siehe folgende Antwort auf eine ähnliche Frage:

mit Stax2 mit Woodstox

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top