1

Castorを使用して、マッピングファイルを使用して次のxmlをPOJOに解析するのは、かなり簡単です。

<human name="bob"/>
<dog owner="alice"/>

要素の名前を使用してクラスにマップします。しかし、マッピングを行うために属性を使用する必要がある場合はどうなりますか?例えば:

<animal type="human" name="bob"/>
<animal type="dog" owner="alice"/>

この不自然な例は、私が消費しなければならないXMLに基づいています(私はそれを作成しませんでした!)。Castorマッピングファイルを使用してこれにアプローチする方法についてのアイデアはありますか?

4

1 に答える 1

0

これにアプローチする方法は2つあります。Javaクラス構造を変更して、人間と犬に動物を拡張させてから、Animalのマッピングファイルを作成します。

または、XSLTを使用してデータを変換します。このようなものが機能する可能性があります:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="animal">
  <xsl:text disable-output-escaping="yes"><![CDATA[<]]></xsl:text>
       <xsl:value-of select="@type" /><xsl:text disable-output-escaping="yes"> </xsl:text>name="<xsl:value-of select="@name" />"
  <xsl:text disable-output-escaping="yes"><![CDATA[/>]]></xsl:text>
</xsl:template>
</xsl:stylesheet>
于 2010-03-05T22:13:11.953 に答える