У меня есть огромное pojo, сгенерированное из xsd с использованием jaxb. Я разделил его на «дочерние объекты», чтобы инициализировать и маршалировать их параллельно. Как я могу проверить дочерние pojos по существующим xsd?
Вот мой пример xsd:
<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio - FREE Community Edition 7.0.2.746 (http://www.liquid-technologies.com)-->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Company">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="Address">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="City" type="xs:string" />
<xs:element minOccurs="0" name="PostalCode" type="xs:string" />
<xs:element minOccurs="0" name="Country" type="xs:string" />
<xs:element minOccurs="0" name="AddressType" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="Contact">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="ContactPerson">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="FirstName" type="xs:string" />
<xs:element minOccurs="0" name="LastName" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="Telephone" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="TaxRegistration">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="TaxRegistrationNumber" type="xs:string" />
<xs:element minOccurs="0" name="TaxType" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="BankAccount">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="IBANNumber" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Вот пример моих ожиданий:
List<Object> innerPojos = getInnerPojos(new Comany());
for (Object object : innerPojos) {
init(object);
validate(object); // <-- Validates inner object which representing part of xml
marshall(object, destinationFilePath);
}