回答:
マイクロソフトXSD推論ツールが良い、無料のソリューションです。XmlSpy(@Garth Gilmourが言及)やOxygenXMLエディターなどの多くのXML編集ツールにもその機能があります。しかし、それらはかなり高価です。BizTalk Serverには、XSD推論ツールもあります。
編集:私は.net XmlSchemaInferenceクラスを発見したので、.netを使用している場合はそれを検討する必要があります
xsd.exe
Windows 7でディレクトリが変更されたようです。多くのMicrosoft SDKs
ディレクトリにあります(そのため、必ずしもVisual Studioに依存しているようには見えませんか?)C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools
。「パス内の不正な文字」に関するエラーを防ぐために、xmlが含まれているディレクトリで実行する必要がありましたが、これは長いファイル名が原因である可能性があります。
オープンソースおよびクロスプラットフォームオプションを使用できます:ApacheのXMLBeansからのinst2xsd 。とても便利で簡単だと思います。
ダウンロードして解凍し、再生するだけです(Javaが必要です)。
ここではトランが最良の選択肢です。オープンソースとクロスプラットフォーム(ただしJavaが必要です)
トランのウェブサイトから:
TrangはXMLの異なるスキーマ言語間で変換します。次の言語をサポートしています
- RELAX NG(XML構文)
- RELAX NGコンパクト構文
- XML 1.0 DTD
- W3C XMLスキーマ
サポートされているスキーマ言語で記述されたスキーマは、サポートされている他のスキーマ言語に変換できます。ただし、W3C XMLスキーマは、入力ではなく出力のみでサポートされています。
Trangは、1つ以上のサンプルXMLドキュメントからスキーマを推測することもできます。
$ trang file.xml schema.xsd
ます。
ありXML schema learner
で提供されているのGithub。
複数のxmlファイルを取得し、それらすべてのファイルから共通のXSDを抽出できます。
sudo apt-get install php5-cli
と実行./learn --help
--- Java、Python、またはRubyで記述されたツールとの違いは本当にわかりません:)
locality
フィールドに関する小さなコメント:フィールド名がXMLの複数の場所で異なる要素を参照して使用されているlocality
場合、1 より大きい値が必要です。たとえばroot/item
、root/something/item
異なるタイプを参照する場合--locality 2
、最低でも必要です
.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のアイデアは、xsd生成やxsd生成からのサンプルxmlなどの広範なxmlサポートも備えています。プラグインを使用すると、xsltデバッガーを取得できます。-後でjaxbなどのツールを使用する場合に特に便利です。
これは古いスレッドですが、このリンクを投稿すると便利だと思いました。このツールを見つけたところです。 xsd-gen XMLからXMLスキーマを生成します
そしてそれはちょうど私が必要としたことをしました。