1

Java オブジェクトの一般的な構造と内容を記述した、利用可能な標準 XML スキーマはありますか? 私はこれを無駄に検索しました。

私は一般的な XML と、特にさまざまな Java ベースの XML テクノロジ (主に JaxB) の両方に比較的慣れていないため、見落としがあればご容赦ください。

4

4 に答える 4

3

簡単な答えは、そのような標準スキーマは存在しないということです。

JAXB のようなものを使用してシリアル化すると、バインドするクラスまたはクラスのネットワークごとに異なる XML スキーマが効果的に作成されます。


さらにいくつかの観察:

  • あらゆる種類の Java オブジェクトを表すことができる XML スキーマを作成することは可能です。クラス名と呼ばれる属性、「フィールド」と呼ばれる子要素などを持つ「オブジェクト」の要素が必要になります。しかし、結果として得られる XML 表現はかなり多くのスペースを必要とし、読み取りや使用が困難になります。

  • JAXB などでは、クラスのネットワークと XML 構造の間には (明らかに) 体系的な関係がありますが、それを XML スキーマとして表現することはできません。むしろ、概念的な意味で、クラスからスキーマを「生成」するマッピングです。(実際、メタモデルが XML スキーマにマップされる XMI で起こっていることに似ています。)

  • 参照整合性は、XML スキーマで表現できるものを超えていますが、それが共通スキーマがない理由ではありません。参照整合性を無視して問題を「ツリー型」に縮小したとしても、JAXB、XMI、および同様のマッピングが生成する種類の XML に対して有用な共通スキーマを生成することはできません。

于 2012-09-06T13:25:50.887 に答える
1

これは公式の Oracle/Sun 標準ではありませんが、サードパーティ ツールである JSX は Java オブジェクトを xml にシリアライズし、その形式の XML スキーマ仕様を持っています。

XMLの例は、フィールド タイプや継承されたクラスなど、オブジェクトの内部詳細を記録する方法を示しています。

このスキーマを自分で使用しない場合でも、オブジェクトの状態を完全に表現するために、形式によって問題に対処するための出発点が得られます。

于 2012-09-10T08:31:50.997 に答える
0

XMLSchemaファイルは、このXMLSchemaファイル内に格納されている要素の定義に準拠したXMLドキュメントで可能なことと不可能なことを記述します。

XMLSchema自体はJavaとは関係ありません。XMLSchemaファイルは、XMLSchemaファイルに準拠するXMLファイルの有効性をチェックするためだけにここにあります。

Javaの人々は、XMLSchemaファイルを使用して、XMLSchema(xjcツール)に準拠したXMLファイルからデータを受信できるJavaソースコードを生成します。

JavaソースファイルのセットからXMLSchemaファイルを生成することもできます(そのためにschemagenツールを使用します)。

次の要素がある場合、JAXBを使用してJavaオブジェクトをXMLファイルとの間でマーシャリング/アンマーシャルすることができます。

  • XMLSchemaファイル
  • Javaソースファイル
  • XMLファイル

Javaとの間でxmlデータをマーシャル/アンマーシャルする方法は他にもあります。

于 2012-09-06T13:46:03.293 に答える