2009-05-20 20 views
2

Ich bin auf der Suche nach einem Tool oder Java-Code oder Klassenbibliothek/API, die XSD aus XML-Dateien generieren kann. (Etwas wie das Dienstprogramm xsd.exe in der .NET Framework sdk)Konvertieren xml zu xsd mit Java

Antwort

3

Überprüfen Sie Castor, ich denke, es hat die Funktionalität, die Sie suchen. Sie stellen Ihnen auch eine ant task zur Verfügung, die XSD-Schemas aus XML-Dateien erstellt.

PS Ich schlage vor, Sie spezifischere Tags in Zukunft hinzuzufügen: Zum Beispiel mit xml, xsd und java wird die Möglichkeit bekommen Antworten erhöhen.

4

Diese Tools können einen guten Ausgangspunkt bieten, aber sie sind kein Ersatz dafür, zu überlegen, was die tatsächlichen Schemaeinschränkungen sein sollten. Sie erhalten die Möglichkeit für zwei Arten von Fehlern: (1) Zulassen von XML, das nicht erlaubt sein sollte, und (2) Zulassen von XML, das in Ordnung sein sollte.

Als Beispiel, täuschen Sie vor, dass Sie eine XSD aus ein paar tausend Patientenakten, die ein "Gender" -Tag enthalten (ich arbeitete an medizinischen Aufzeichnungen Software) ableiten wollen. Das Werkzeug würde wahrscheinlich auf "M" und "F" als Werte stoßen und daraus schließen, dass das Element eine Aufzählung ist. Andere gültige (obwohl selten verwendete) Werte sind B (beide), U (unbekannt) oder N (keine). Diese sind natürlich selten. Wenn Sie also Ihr abgeleitetes Schema als Eingabevalidierer verwenden, würde es gut funktionieren, bis ein Patient mit mehreren Geschlechtsorganen ins Krankenhaus eingeliefert wird. Um diesen Fehler zu vermeiden, fügt ein XSD-Generator möglicherweise keine Aufzählungstypbeschränkungen hinzu (ich kann mich nicht erinnern, wie diese in Schemas genannt werden), und Ihre Anwendung würde gut funktionieren, bis ein fehlerhafter Datensatz mit gender = X gefunden wird .

Also, Vorsicht. Es ist am besten, diese Tools nur als Ausgangspunkt zu verwenden. Außerdem neigen sie dazu, ausführliche und redundante Schemata zu erstellen, weil sie sowohl Muster als auch Menschen nicht verstehen können.

0

Sie können die Datei xsd-gen-0.2.0-jar-with-dependencies.jar verwenden, um xml nach xsd zu konvertieren. Und Befehl dafür ist "java -jar xsd-gen-VERSION-jar-mit-Abhängigkeiten.jar /path/to/xml.xml> /path/to/my.xsd"