web-dev-qa-db-ja.com

XMLのみからJAXBクラスを生成する方法

スキーマを提供しないXMLからクラスを生成する必要があります。これはほとんど役に立たないことは理解していますが、実際にはXMLがあり、構造化されており、XMLからモデルを作成できるはずです。過去には手作業で行ってきましたが、現在作業しているxmlドキュメントは非常に大きいため、必要なことを行うものを作成するのに時間を費やす方が良いでしょう。しかし、私はそれがすでに行われていると推測している、と私はそれを見つけることができません。

ポインタはありますか?

57
DanInDC

ほとんどすべての文字列タイプを想定して、XMLからXSDを生成できる多くのツールがあります(簡単なGoogle検索で取得できます)。そのXSDを使用してJAXBを実行し、クラスを取得できる必要があります。

これが オンラインツール です。

そして、これがスクリーンキャップです。 enter image description here

65
Bala R

Xmlファイルから、XMLスキーマ定義(XSD)ファイルを作成できます。 XSDを取得したら、コードを生成できるようになります。Java、C#、C++、または上記すべてのコードが必要になります。

Visual Studioがある場合は、xsd.exeを使用してXSDファイルを生成できます。

参照:

  • www.xmlforasp.net/CodeBank/System_Xml_Schema/BuildSchema/BuildXMLSchema.aspx

  • msdn.Microsoft.com/en-us/library/x6c1kb0s(v=vs.71).aspx

  • コマンド構文:xsd file.xml [/ outputdir:directory]

  • so "C:\ Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64\xsd.exe" example.xmlは例を示します。 xmlファイルと同じディレクトリにあるxsdファイル。

XSDからJava:リファレンス:

XSDからC++へ:参照:

  • stackoverflow.com/questions/445905/xml-schema-to-c-classes
  • www.codesynthesis.com/products/xsd/

XSDからC#へ:参照:

  • quickstart.developerfusion.co.uk/quickstart/howto/doc/xmlserialization/XSDToCls.aspx
  • コマンド構文: "C:\ Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64\xsd.exe" -c -l:c#-n:SomeNameSpace example.xsd
12
James Oravec

XMLがJAXBによって作成された場合、簡単に変換してオブジェクトに戻すことができます。 Oracleには tutorial があり、これを行う1つの方法を示しています。 Springフレームワークは、非常に便利なJAXBを使用した同様の機能を提供します。

1
Johan Sjöberg