9
マーシャリングから要素を除外するためにどのように私は私のモデルがあります:MOXY JAXB:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class CustomerTest {
private Long id;
@XmlPath("contact-info/billing-address")
private AddressTest billingAddress;
@XmlPath("contact-info/shipping-address")
private AddressTest shippingAddress;
@XmlPath("FileHeader/SchemaVersion/text()")
private String schemaVersion;
}
をそして私は、このようなオブジェクトに記入:
<customerTest xmlns:fe="http://www.facturae.es/Facturae/2009/v3.2/Facturae" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<id>10</id>
<contact-info>
<billing-address>
<street>1 Billing Street</street>
</billing-address>
<shipping-address>
<street>2 Shipping Road</street>
</shipping-address>
</contact-info>
<FileHeader>
<SchemaVersion>3.2</SchemaVersion>
</FileHeader>
</customerTest>
:
private void marshallCustomerTest() {
try {
JAXBContext jc = JAXBContext.newInstance(CustomerTest.class);
CustomerTest customer = new CustomerTest();
customer.setId(new Long(10));
customer.setSchemaVersion("3.2");
AddressTest billingAddress = new AddressTest();
billingAddress.setStreet("1 Billing Street");
customer.setBillingAddress(billingAddress);
AddressTest shippingAddress = new AddressTest();
shippingAddress.setStreet("2 Shipping Road");
customer.setShippingAddress(shippingAddress);
Marshaller m = jc.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
m.marshal(customer, System.out);
} catch (JAXBException jex) {
jex.printStackTrace();
log.error(jex);
}
}
は、この次のXMLを生成します
「id」プロパティには@XmlPathアノテーションはありませんが、これは最終的なXMLにも存在します。私はこの動作を避けることができることを知っている 'id'プロパティをnullに設定するが、別の方法があるかどうかを知りたい。ポイントは、私の実際のモデルはこれよりずっと大きく、多くのプロパティをnullに設定しなければならないということです。
助けが必要ですか?
ありがとうございます。
ありがとうございます!あなたはいつもとても役に立ちます。 – rocotocloc