2010-11-22 15 views
4

私は解析する必要があるXML形式を持っています。サンプルファイルを以下に示す:ノード内の参照を別のノードに記述するにはどうすればよいですか?

<?xml version="1.0" encoding="UTF-8"> 
<root> 
    <parent name="example1"> 
    <childdef ref="1" type="a" /> 
    <childdef ref="3" type="c" /> 
    </parent> 

    <parent name="example2"> 
    <childdef ref="1" type="b" /> 
    <childdef ref="2" type="b" /> 
    </parent> 

    <child id="1" name="Child 1" /> 
    <child id="2" name="Child 2" /> 
    <child id="3" name="Child 3" /> 
    <child id="4" name="Child 4" /> 
</root> 

parent要素は子要素を指す少なくとも一つchilddef要素を含みます。 1人の子供が複数の親によって参照されるため、参照を使用する必要があります(子1を参照)。

XMLマッパー(JAXB実装など)を使用している場合は、Parent1からChild 1へのObject参照が必要です。これで、参照IDのみを属性として持つことができました。

このオブジェクト参照をXSDで定義することはできますか?

答えて

5

はい、可能です。 @XmlIDおよび@XmlIDREFを参照してください。これらは、XMLタイプxsd:idxsd:idrefに対応しています。しかし、文字列だけがIDになることができます。

+0

ありがとうございます!これは私を助けるだろう。参照されるオブジェクトの型を指定することは可能ですか?今、JAXBはオブジェクトを与えるだけです... – guerda

+0

私は分かりません。 '@XmlIDREF'は、' @XmlID'を持つ任意の型のフィールド上に置くことができます。 – musiKk

関連する問題