私はいくつかの複雑なJavaコードを維持しています。Castor(v1.2)の非整列化は、かなりの数の "欠落した" Javaオブジェクトのために非常に遅いです。 XMLには必要以上のフィールドが含まれていますが、CastorはJavaオブジェクトをインスタンス化してClassNotFoundエラーを引き起こします。Castorに特定のXMLフィールドを無視させるにはどうすればよいですか?
キャスターのマッピングファイル:
<mapping>
<class name="com.example.imaging.product.Product">
<map-to xml="product"/>
<field name="productId" type="long">
<bind-xml name="id" node="attribute"/>
</field>
</class>
<class name="com.example.imaging.product.RegionConfiguration">
<map-to xml="mediaConfiguration"/>
<field name="name" type="string">
<bind-xml name="name" node="attribute"/>
</field>
<field name="design" type="int">
<bind-xml name="designId" node="attribute"/>
</field>
</class>
</mapping>
XMLソース:
<?xml version="1.0"?>
<product id="1234">
<productImage colorId="1"/>
<mediaConfiguration name="Front" designId="98765" />
<color id="1" name="Red" default="true"/>
</product>
私の問題はcolor
フィールドが同じJavaを持っていないと私はそれが非整列化したくないということです。私はcastor.propertiesファイルにorg.exolab.castor.xml.strictelements=false
を設定しようとしましたが、それはクラスロードパスを歩いてClassNotFoundエラーを投げ捨てることはありません。
キャスターが不要なXML要素をスキップする方法を教えてください。
あなたはタスクを実行するために春を使用していますか? –