web-dev-qa-db-ja.com

XMLインスタンスドキュメントからXSDスキーマを生成するツールはありますか?

XMLインスタンスドキュメントを取得し、対応するXSDスキーマを出力するツールを探しています。

手作業でスキーマを作成する場合と比較して、生成されたXSDスキーマは制限されることは確かに認識しています(おそらく、オプションまたは繰り返しの要素、またはデータ制約を処理しません)が、少なくとも手始めとして役立ちます。

146
Matt Dillard

Microsoft XSD推論ツール は、無料の優れたソリューションです。 XmlSpy(@Garth Gilmourによる言及)やOxygenXML Editorなどの多くのXML編集ツールにもこの機能があります。しかし、それらはかなり高価です。 BizTalk Serverには、XSD推論ツールもあります。

編集:.net XmlSchemaInference クラスを発見したばかりなので、.netを使用している場合は、

65
Danimal

オープンソースおよびクロスプラットフォームオプションを使用できます: ApacheのXMLBeans からのinst2xsd。とても便利で簡単だと思います。

ダウンロード、解凍、再生するだけです(Javaが必要です)。

54
Dario

Trang が最適なオプションです。オープンソースとクロスプラットフォーム(Javaが必要ですが)

トランのウェブサイトから:

TrangはXMLの異なるスキーマ言語間で変換します。以下の言語をサポートしています

  • RELAX NG(XML構文)
  • RELAX NGコンパクト構文
  • XML 1.0 DTD
  • W3C XMLスキーマ

サポートされているスキーマ言語のいずれかで記述されたスキーマは、サポートされている他のスキーマ言語のいずれかに変換できます。ただし、W3C XMLスキーマは入力のみではなく出力のみをサポートしています。

トランは、1つ以上のサンプルXML文書からスキーマを推測することもできます。

リンクのダウンロード

51
Derferman

VS2010でXMLファイルをエディターにロードする場合、XMLメニュー>>スキーマの作成をクリックします。

16

XML schema learner もあり、これは Github で利用可能です。

複数のxmlファイルそれらのファイルすべてから共通のXSDを抽出することができます

11
edorian

.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プロジェクトでインポートして使用できるクラスを取得するためのフラグ

10
Pat Hermens

XSDのみが必要な場合、LiquidXMLにはXSDを実行する無料バージョンがあり、GUIが用意されているので、必要に応じてXSDを微調整できます。とにかく最近は自分でXSDを手書きで書いていますが、このアプリのおかげです。

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

6
Robert Gould

Javaの世界で作業している場合-intelliJ ideaは、xsd生成およびxsd生成からのsamle xmlを含む広範なxmlサポートも備えており、プラグインを使用してxsltデバッガーを取得できます。 -後でjaxbなどのツールを使用する場合は特に便利です。

4

Altova XmlSpyはこれをうまく行います-概要を見つけることができます こちら

3
Garth Gilmour

これは古いスレッドですが、このリンクを投稿すると便利だと思いました:このツールが見つかりました: xsd-gen XMLからXMLスキーマを生成

そしてそれは私が必要なことをしただけです。

3
v_e