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