Можно ли обрабатывать прямые ссылки на элементы XML IDREF
в JAXB XmlAdapter
в процессе демаршалирования? Например, у меня есть следующий XML complexType
:
<xs:complexType name="person">
<xs:complexContent>
<xs:sequence>
<xs:element name="dateOfBirth" type="xs:dateTime" minOccurs="0"/>
<xs:element name="firstName" type="xs:string" minOccurs="0"/>
<xs:element name="gender" type="xs:string" minOccurs="0"/>
<xs:element name="guardian" type="xs:IDREF" minOccurs="0"/>
<xs:element name="homePhone" type="xs:string" minOccurs="0"/>
<xs:element name="lastName" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexContent>
</xs:complexType>
, где поле guardian
может ссылаться на другой элемент Person
-типа в другом месте документа. В настоящее время я использую XmlAdapter при маршалинге, чтобы при первом маршалировании объекта он маршалировался путем локализации, а любые последующие вхождения этого объекта маршалировались по ссылке. Смотрите предыдущий вопрос о mine . Однако из-за того, как создаются мои экземпляры XML-документов, первое вхождение элемента Person
может произойти после того, как к нему IDREF
произойдет.
Возможно ли это? Или мне нужно подходить к этому по-другому? Спасибо!