gpt4 book ai didi

java - 如何检索从 Web 服务发送的值

转载 作者:行者123 更新时间:2023-12-01 15:05:51 26 4
gpt4 key购买 nike

我有一个关于检索从 Web 服务发送的数据值的问题。我有一个网络服务,它从客户端接收数据,然后用它来做一些事情。一切都很顺利。

但现在我想向 xsd 添加一个额外的元素来处理 Web 服务接收的消息。我已经向另一个复杂类型添加了测试,该复杂类型也存在其他元素。元素测试不是必需的,但用户可以在其 XML 文件中添加一项或多项测试。

 <xs:element name="tests">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="999">
<xs:element name="test">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="code" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="value" type="xs:string" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>

整个 XSD:http://pastebin.com/TuvYiQzE

我正在使用 JAXB 来处理从客户端发送的 Web 服务消息。 JAXB 自动为我生成了一些代码:

public Message.Algemeen.TestCode.Tests getTests(){
return tests;
}

还有

  public List<Message.Algemeen.TestCode.Tests.test> getTest() {
if (test== null) {
test= new ArrayList<Message.Algemeen.TestCode.Tests.test>();
}
return this.test;
}

现在我想返回每个元素的代码和值test,问题是 Test 和测试是作为对象返回的,目前我不知道如何读取它们的值。方法 toString() 仅返回 cp.jaxb.classes.Message$Algemeen$Testcode$Tests$test@dcd76a

我做错了什么?如果您需要更多代码来理解我的问题,请告诉我。

谢谢

杰夫

PS。英语不是我的母语,我尽力解释我的问题。

最佳答案

这一行<xs:sequence minOccurs="1" maxOccurs="unbounded"> Test 的定义中意味着测试中可以有多个 code:value 对。这是你想要的吗?

我不是 jaxb 专家,但在设计模式时有人告诉我,在这种情况下使用名称类型更容易。

这里有一个测试中的“未命名”对象(代码:值对)的列表。我想这使得检索变得困难。

如果更改为 maxOccurs="1"会发生什么?如果您为代码:值对定义了一个新类型并创建了该元素的列表,会发生什么?

你能尝试这样修改它吗:

<xs:element name="tests">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="999">
<xs:element name="test">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="singleTest">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="code" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="value" type="xs:string" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>

那么你应该能够拥有类似的东西列表 testList = test.getSingleTest()并迭代以获取每个代码和值。

关于java - 如何检索从 Web 服务发送的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12972205/

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