it-swarm-eu.dev

Gibt es Tools zum Generieren eines XSD-Schemas aus einem XML-Instanzdokument?

Ich suche ein Tool, das ein XML-Instanzdokument aufnimmt und ein entsprechendes XSD-Schema ausgibt.

Ich erkenne sicherlich, dass das generierte XSD-Schema im Vergleich zum manuellen Erstellen eines Schemas begrenzt ist (es behandelt möglicherweise keine optionalen oder sich wiederholenden Elemente oder Dateneinschränkungen), aber es könnte zumindest als schneller Ausgangspunkt dienen.

146
Matt Dillard

das Microsoft XSD Inferenz Tool ist eine gute, kostenlose Lösung. Viele XML-Bearbeitungstools wie XmlSpy (von @Garth Gilmour erwähnt) oder OxygenXML Editor verfügen ebenfalls über diese Funktion. Sie sind allerdings ziemlich teuer. BizTalk Server verfügt auch über ein XSD-Infering-Tool.

edit: Ich habe gerade die .net XmlSchemaInference -Klasse entdeckt. Wenn Sie .net verwenden, sollten Sie dies berücksichtigen

65
Danimal

Sie können eine Open Source- und plattformübergreifende Option verwenden: inst2xsd from Apaches XMLBeans . Ich finde es sehr nützlich und einfach.

Einfach herunterladen, entpacken und abspielen (benötigt Java).

54
Dario

Trang ist hier die beste Option. Open Source und plattformübergreifend (obwohl Java ist erforderlich)

Von der Trang Website:

Trang konvertiert zwischen verschiedenen Schemasprachen für XML. Es unterstützt die folgenden Sprachen

  • RELAX NG (XML-Syntax)
  • RELAX NG kompakte Syntax
  • XML 1.0-DTDs
  • W3C XML Schema

Ein Schema, das in einer der unterstützten Schemasprachen geschrieben wurde, kann in eine der anderen unterstützten Schemasprachen konvertiert werden, mit der Ausnahme, dass das W3C-XML-Schema nur für die Ausgabe und nicht für die Eingabe unterstützt wird.

Trang kann ein Schema auch aus einem oder mehreren XML-Beispieldokumenten ableiten.

Download Link

51
Derferman

Wenn Sie in VS2010 eine XML-Datei in den Editor laden, klicken Sie auf das Menü XML >> Schema erstellen.

16

Es gibt auch XML schema learner welches auf Github verfügbar ist.

Es können mehrere XML-Dateien verwendet werden und eine gemeinsame XSD aus all diesen Dateien extrahiert werden .

11
edorian

Wenn Sie .NET installiert haben, ist ein Tool zum Generieren von XSD-Schemas und -Klassen standardmäßig bereits enthalten.
Für mich ist das XSD-Tool unter der folgenden Struktur installiert. Dies kann je nach Installationsverzeichnis unterschiedlich sein.

C:\Program Files\Microsoft Visual Studio 8\VC>xsd
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 2.0.50727.42]
Copyright (C) Microsoft Corporation. All rights reserved.

xsd.exe -
   Utility to generate schema or class files from given source.

xsd.exe <schema>.xsd /classes|dataset [/e:] [/l:] [/n:] [/o:] [/s] [/uri:]
xsd.exe <Assembly>.dll|.exe [/outputdir:] [/type: [...]]
xsd.exe <instance>.xml [/outputdir:]
xsd.exe <schema>.xdr [/outputdir:]

Normalerweise funktionieren die von diesem Tool generierten Klassen und Schemata recht gut, insbesondere wenn Sie sie in einer .NET-Sprache verwenden

Ich nehme normalerweise das XML-Dokument, nach dem ich gesucht habe, schiebe es mit dem /o:<your path> - Flag durch das XSD-Tool, um ein Schema (xsd) zu generieren, und schiebe dann die xsd-Datei mit der Funktion /classes /L:VB (or CS) /o:<your path> Flags, um Klassen zu erhalten, die ich importieren und in meinen täglichen .Net-Projekten verwenden kann

10
Pat Hermens

Wenn Sie nur XSD möchten, bietet LiquidXML eine kostenlose Version, die XSDs unterstützt, und eine grafische Benutzeroberfläche, mit der Sie die XSD optimieren können, wenn Sie möchten. Jedenfalls schreibe ich heutzutage meine eigenen XSDs von Hand, aber es ist alles dank dieser App.

http://www.liquid-technologies.com/

6
Robert Gould

wenn Sie in der Java world - intelliJ idea arbeiten, bietet das Programm auch umfangreiche XML-Unterstützung, einschließlich xsd-Generierung und samle xml von xsd-Generierung. Mit Plugins können Sie xslt erhalten Debugger - besonders schön, wenn Sie danach Tools wie jaxb verwenden möchten.

4

Altova XmlSpy macht das gut - eine Übersicht finden Sie hier

3
Garth Gilmour

Dies ist ein alter Thread, aber ich dachte, es könnte nützlich sein, diesen Link zu veröffentlichen: Ich habe gerade dieses Tool gefunden: xsd-gen Generate XML Schema from XML

und es tat genau das, was ich brauchte.

3
v_e