gpt4 book ai didi

java - 从 xml 模式创建 java 类

转载 作者:数据小太阳 更新时间:2023-10-29 02:40:30 25 4
gpt4 key购买 nike

重点是制作一个简单的白页 Web 服务,使用 SOAP 将一个人添加到电话簿(称为 addPerson() )。如果电话中已经有同名同姓的人书,应返回错误信息。

我做了如下的wsdl文件

 <?xml version="1.0" encoding="UTF-8"?>
<definitions name="whitepages" targetNamespace="http://whitepages.ws"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://whitepages.ws" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<types>
<xsd:schema targetNamespace="http://whitepages.ws" xmlns:tns="http://whitepages.ws">
<xsd:complexType name="personType">
<xsd:sequence>
<xsd:element name="address" type="tns:addressType"></xsd:element>
</xsd:sequence>
<xsd:attribute name="firstName" type="xsd:string"/>
<xsd:attribute name="lastName" type="xsd:string"/>
<xsd:attribute name="phone" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="addressType">
<xsd:sequence>
<xsd:element name="street">
<xsd:complexType>
<xsd:sequence/>
</xsd:complexType>
</xsd:element>
<xsd:element name="postcode">
<xsd:complexType>
<xsd:sequence/>
</xsd:complexType>
</xsd:element>
<xsd:element name="city">
<xsd:complexType>
<xsd:sequence/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="person" type="tns:personType"></xsd:element>
<xsd:element name="response" type="xsd:string"></xsd:element>
<xsd:complexType name="faultType">
<xsd:sequence>
<xsd:element name="errorMessage" type="xsd:string"></xsd:element>
<xsd:element name="person" type="tns:personType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="fault" type="tns:faultType"></xsd:element>
</xsd:schema>
</types>
<message name="whitepagesOperationRequest">
<part name="person" element="tns:person"/>
</message>
<message name="whitepagesOperationResponse">
<part name="response" element="tns:response"/>
</message>
<message name="WPFault">
<part name="errorMessage" type="xsd:string"/>
<part name="person" element="tns:person"/>
</message>
<portType name="whitepages">
<operation name="addPerson">
<input name="input1" message="tns:whitepagesOperationRequest"/>
<output name="output1" message="tns:whitepagesOperationResponse"/>
<fault name="fault1" message="tns:WPFault"/>
</operation>
</portType>
<binding name="whitepagesBinding" type="tns:whitepages">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="addPerson">
<soap:operation style="document"/>
<input name="input1">
<soap:body use="literal"/>
</input>
<output name="output1">
<soap:body use="literal"/>
</output>
<fault name="fault1">
<soap:fault name="fault1" use="literal"/>
</fault>
</operation>
</binding>
<service name="whitepagesService">
<port name="whitepagesBindingPort" binding="tns:whitepagesBinding">
<soap:address location="http://localhost:${HttpDefaultPort}/service"/>
</port>
</service>
</definitions>

我验证了 xml,现在我需要为该模式创建 java 类(为两者),但我不知道如何继续...任何建议或提示将不胜感激..

提前致谢

最佳答案

我正在使用的 eclipse 发行版有一个从模式创建 JAXB 类的向导:

  • 文件 -> 新建 -> 其他 -> 从模式创建 JaxB 类。
  • 您必须为生成的输出提供目标包
  • 如果您需要任何定制,您可能需要提供绑定(bind)文件
  • 这是有关 eclipse 发行版的详细信息:

Eclipse Java EE IDE for Web Developers.

Version: Juno Service Release 1 Build id: 20120920-0800>

(c) Copyright Eclipse contributors and others 2005, 2012. All rights reserved. Visit http://www.eclipse.org/webtools

另一种选择是使用 XJC编译器从模式生成类。它包含在标准 JDK 中。

在任何情况下,您都必须将架构定义提取到 XSD 文件并从您的 WSDL 中引用它:

    <schema xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://whitepages.ws" schemaLocation="NAME_OF_Your_XSD_FILE.xsd" />
</schema>

关于java - 从 xml 模式创建 java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26065326/

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