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


146

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

生成されたXSDスキーマは、手動でスキーマを作成する場合と比べて制限されることは確かです(おそらく、オプション要素や繰り返し要素、またはデータ制約を処理しないでしょう)が、少なくとも素早い出発点としては機能します。

回答:


65

マイクロソフトXSD推論ツールが良い、無料のソリューションです。XmlSpy(@Garth Gilmourが言及)やOxygenXMLエディターなどの多くのXML編集ツールにもその機能があります。しかし、それらはかなり高価です。BizTalk Serverには、XSD推論ツールもあります。

編集:私は.net XmlSchemaInferenceクラスを発見したので、.netを使用している場合はそれを検討する必要があります


1
うわー、数か月後、あなたは私にXDRからXSDへの迅速な変換を行うための素晴らしいソリューションを指摘しました!ありがとう!
bethlakshmi 2009

6
このツール(xsd.exe)のダウンロードを見つけるのは困難でしたが、既にC:\ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Binのシステムにありました。それが誰かを助ける場合に備えて私が共有すると思いました。
oob

2
Visual Studioがインストールされていない場合は、xsdをダウンロードするための代替リンクを次に示し
MD

5
xsd.exeWindows 7でディレクトリが変更されたようです。多くのMicrosoft SDKsディレクトリにあります(そのため、必ずしもVisual Studioに依存しているようには見えませんか?)C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools。「パス内の不正な文字」に関するエラーを防ぐために、xmlが含まれているディレクトリで実行する必要がありましたが、これは長いファイル名が原因である可能性があります。
Yahoo Serious、

MS XSD推論ツールの使用に問題があり、8 GBを超える空きRAMがある200 MBのXMLファイルでOutOfMemoryExceptionが発生する人はいますか?
フェリペサビノ2013

54

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

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


すばらしいヒントです。本当に役に立ちました。
IAdapter 2009年

2
OMGこれは、Powershellのでたらめよりもはるかに優れています。特にXSDファイルを持っていなかったので!
クロエ

3
チャームのように動作しました:: cd <xml_bean_bin_directory>; ./inst2xsd -design ss -simple-content-types smart -enumerations 4 <input_file.xml> -outDir <output_Directory>
diaryfolio


3
XMLBeansは、廃止されたApacheプロジェクトのホームであるattic.apache.orgに移動されていることに注意してください。つまり、2012
。– Magnilex

51

ここではトランが最良の選択肢です。オープンソースとクロスプラットフォーム(ただしJavaが必要です)

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

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

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

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

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

リンクをダウンロード


Trangは、1つ以上のXMlドキュメントからXSD推論を行うためにOxygenXMLに統合されたツールでもあります。ここでの最初の試みはうまくいくようです。
redcalx

4
必要なのがxmlファイルからxsdを生成することだけである場合、trangが最高で、最も速く、最も簡単なIMHOです。
kriver

2
trangのドキュメントは少し薄いです。スキーマを生成するには、を実行し$ trang file.xml schema.xsdます。
Joe Mornin、

Windowsでの実行:java -jar trang.jar file.xml schema.xsd
Alexey Obukhov

Trangは、XMLサンプルのさまざまな場所で同じ形式で表示される部分構造を持っていたので、繰り返しを検出し、最小限のXSDを生成するのに完璧な仕事をしてくれました。非常に素晴らしい!
Tomislav Nakic-Alfirevic 2016年


12

ありXML schema learnerで提供されているのGithub

複数のxmlファイルを取得し、それらすべてのファイルから共通のXSD抽出できます


1
このツールはphpで記述されているため、セットアップは簡単ではありません。
79E09796 2012年

5
@ 79E09796 CLI PHPのインストールsudo apt-get install php5-cliと実行./learn --help--- Java、Python、またはRubyで記述されたツールとの違いは本当にわかりません:)
エドリアン

1
Windowsで試したところ、インストールせずにphp 5.4で問題なく動作しました。phpとXMLスキーマの両方の学習者が解凍され、フルパスを使用して実行されました;)
vak

localityフィールドに関する小さなコメント:フィールド名がXMLの複数の場所で異なる要素を参照して使用されているlocality場合、1 より大きい値が必要です。たとえばroot/itemroot/something/item異なるタイプを参照する場合--locality 2、最低でも必要です
shadi

10

.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プロジェクト


6

必要なのがXSDだけである場合、LiquidXMLにはXSDを実行する無料バージョンがあり、それにGUIが付いているので、必要に応じてXSDを微調整できます。とにかく、今日私は自分のXSDを手動で記述していますが、すべてこのアプリのおかげです。

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


4

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


2
また、これはIdeaの無料コミュニティエディションでも利用できます。
lbalazscs


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.