2012-07-11 9 views
5

Gibt es eine Möglichkeit (nicht aus Klassen/JAXB), XSD-Schemas in Java zu erstellen? Ich kann es mit Hilfe einiger Bibliotheken analysieren, zB XSOM, Jdom usw. Aber ich konnte nichts finden, was ich erstellen könnte.XSD-Dateien in Java generieren

+3

Können Sie vielleicht näher erläutern, warum JAXB keine Option ist? –

Antwort

2

Ich weiß nichts über eine einfach zu bedienende Art und Weise. Ich überlegte, dom4j zu verwenden (weil ich es für andere Zwecke verwende, aber jede andere generische xml manipulation Bibliothek äquivalent ist) und erstelle es manuell (1).

Aber dann erkannte ich, dass ich JAXB verwenden kann, um das Objektmodell des XML-Schemas zu generieren, es mit dem zu füllen, was ich wollte (es stellte sich heraus, dass es viel weniger komfortabel war als ich gehofft hatte) und marshall es (2). Es ist über JAXB, aber ohne Erstellen von Klassen für Ihr Schema, so kann es vielleicht nützlich für Sie sein.

über 2 ist schwer (aber nicht unmöglich), um ein ungültiges Schema zu erstellen, aber es ist manchmal schwer zu finden, wie ein Schema, das ich wollte, zu erstellen. Also beendete ich die Erstellung im Editor, entmarsalisierte es und erforschte seine Objektdarstellung. Am Ende wäre es weniger mühsam, es über 1) zu erstellen und dann zu validieren (was ich sowieso tun musste).

+0

Das OP sagt, er möchte 'JAXB' nicht in seiner 'XSD'-Dateigenerierung verwenden. – GingerHead

+1

Es sieht so aus, als ob er MAYBE keine Klassen für sein Dokument erstellen und von ihnen ein Schema erzeugen möchte. Aber vielleicht will er JAXB überhaupt nicht benutzen, nur er weiß es. – Alpedar

0

XSD zu erstellen ist java Klassen verwenden/Codierung (unvermeidlich):

Gerade JavaDOM verwenden und eine document dann die Haupt node erstellen und erstellen Sie andere nodes es und voila zu befestigen!

1

Sie könnten nutzen die Eclipse-XSD project, ein Teil der Eclipse-Modell Entwicklungstools zu behandeln. Es bietet ein Datenmodell und eine API zum programmatischen Erstellen von Schemas.

Verwandte Themen