Я поддерживаю некоторый сложный код Java, и демонтирование Castor (v1.2) происходит очень медленно из-за большого количества «отсутствующих» объектов Java. Видите, XML содержит больше полей, чем мне нужно, но Кастор неоднократно пытается создать экземпляры объектов Java, вызывая множество ошибок ClassNotFound.
Файл отображения Castor:
<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-эквивалента, и я не хочу, чтобы оно было разобрано. Я попытался установить org.exolab.castor.xml.strictelements=false
в файле castor.properties, но это не мешает ему идти по пути загрузки классов и выдавать ошибки ClassNotFound.
Как заставить Кастор пропускать ненужные элементы XML?