XMLインスタンスドキュメントを取得し、対応するXSDスキーマを出力するツールを探しています。
手作業でスキーマを作成する場合と比較して、生成されたXSDスキーマは制限されることは確かに認識しています(おそらく、オプションまたは繰り返しの要素、またはデータ制約を処理しません)が、少なくとも手始めとして役立ちます。
Microsoft XSD推論ツール は、無料の優れたソリューションです。 XmlSpy(@Garth Gilmourによる言及)やOxygenXML Editorなどの多くのXML編集ツールにもこの機能があります。しかし、それらはかなり高価です。 BizTalk Serverには、XSD推論ツールもあります。
編集:.net XmlSchemaInference クラスを発見したばかりなので、.netを使用している場合は、
オープンソースおよびクロスプラットフォームオプションを使用できます: ApacheのXMLBeans からのinst2xsd。とても便利で簡単だと思います。
ダウンロード、解凍、再生するだけです(Javaが必要です)。
Trang が最適なオプションです。オープンソースとクロスプラットフォーム(Javaが必要ですが)
トランのウェブサイトから:
TrangはXMLの異なるスキーマ言語間で変換します。以下の言語をサポートしています
- RELAX NG(XML構文)
- RELAX NGコンパクト構文
- XML 1.0 DTD
- W3C XMLスキーマ
サポートされているスキーマ言語のいずれかで記述されたスキーマは、サポートされている他のスキーマ言語のいずれかに変換できます。ただし、W3C XMLスキーマは入力のみではなく出力のみをサポートしています。
トランは、1つ以上のサンプルXML文書からスキーマを推測することもできます。
VS2010でXMLファイルをエディターにロードする場合、XMLメニュー>>スキーマの作成をクリックします。
XML schema learner
もあり、これは Github で利用可能です。
複数のxmlファイルとそれらのファイルすべてから共通のXSDを抽出することができます。
.Netがインストールされている場合、XSDスキーマとクラスを生成するツールはデフォルトですでに含まれています。
私にとって、XSDツールは次の構造でインストールされます。これは、インストールディレクトリによって異なる場合があります。
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:]
通常、このツールが生成するクラスとスキーマは、特に.Net言語でそれらを使用する場合、かなりうまく機能します。
通常、後のXMLドキュメントを取得し、/o:<your path>
フラグを使用してXSDツールにプッシュしてスキーマ(xsd)を生成し、/classes /L:VB (or CS) /o:<your path>
を使用してxsdファイルをツールにプッシュします。日々の.Netプロジェクトでインポートして使用できるクラスを取得するためのフラグ
XSDのみが必要な場合、LiquidXMLにはXSDを実行する無料バージョンがあり、GUIが用意されているので、必要に応じてXSDを微調整できます。とにかく最近は自分でXSDを手書きで書いていますが、このアプリのおかげです。
Javaの世界で作業している場合-intelliJ ideaは、xsd生成およびxsd生成からのsamle xmlを含む広範なxmlサポートも備えており、プラグインを使用してxsltデバッガーを取得できます。 -後でjaxbなどのツールを使用する場合は特に便利です。
Altova XmlSpyはこれをうまく行います-概要を見つけることができます こちら
これは古いスレッドですが、このリンクを投稿すると便利だと思いました:このツールが見つかりました: xsd-gen XMLからXMLスキーマを生成
そしてそれは私が必要なことをしただけです。