gpt4 book ai didi

java - 如何在Java中知道JAXB中的下一个元素

转载 作者:太空宇宙 更新时间:2023-11-04 14:41:03 25 4
gpt4 key购买 nike

我有一个类似这样的架构

<xs:schema xmlns="http://www.ncpdp.org/schema/SCRIPT" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ncpdp.org/schema/SCRIPT" elementFormDefault="qualified">
<!-- Message -->
<xs:element name="Message" type="MessageType"/>
<xs:complexType name="MessageType">
<xs:sequence>
<xs:element name="Header" type="HeaderType"/>
<xs:element name="Body" type="BodyType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="HeaderType">
<xs:sequence>
<xs:element name="To" type="QualifiedMailAddressType">
</xs:element>
<xs:element name="From" type="QualifiedMailAddressType">
</xs:element>
</xs:complexType>
<!-- Body -->
<xs:complexType name="BodyType">
<xs:choice>
<xs:annotation>
<xs:documentation>UIH-010-4</xs:documentation>
</xs:annotation>
<xs:element ref="TEST1"/>
<xs:element ref="TEST2"/>

</xs:choice>
</xs:complexType>
<xs:element name="TEST1">
<xs:complexType>
<xs:sequence>
<xs:element ref="Gender" minOccurs="0"/>
<xs:element name="DateOfBirth" type="DateType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TEST2">
<xs:complexType>
<xs:sequence>
<xs:element ref="salary" minOccurs="0"/>
<xs:element name="DateOfDeath" type="DateType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

我已经为此 XML 生成了 JAXB 对象。

我的请求消息将在 body 元素内包含 TEST1 或 TEST2。我想知道的是如何知道是TEST1还是TEST2。

我知道我们可以通过 xPATH 读取此内容,但我有点好奇我们是否可以通过 JAXB 生成的类来确定

例如,如果我解码消息

MessageType messageType = helper.unmarshal(message);
BodyType bodyType = messageType.getBody();

在 bodyType 中,它将是 TEST1 或 TEST2。我们如何确定这一点?

最佳答案

bodyType.getTest1() != null // true if TEST1

bodyType.getTest2() != null // true if TEST2

关于java - 如何在Java中知道JAXB中的下一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24922936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com