JAX-WS和XML名称空间前缀

时间:2013-11-26 00:46:05

标签: java xml soap wsdl jax-ws

我有一个定义名称空间的WSDL,如:

<wsdl:definitions
...
xmlns:mytype="urn:/some/types"
...
>

然后将目标命名为:

<xs:schema elementFormDefault="qualified" targetNamespace="urn:/some/types"
>
<xs:element name="MyFunction">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="element" minOccurs="1" maxOccurs="1"
        type="xs:NMTOKEN"
      />
      <xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:NMTOKEN" />
    </xs:sequence>
  </xs:complexType>
</xs:element>
然后,JAXWS使用自动生成的前缀生成以下XML:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body><ns2:MyFunction xmlns:ns2="urn:/some/types" ... >
  <ns2:element>form</ns2:element>
  <ns2:name>simple</ns2:name>
</ns2:MyFunction></S:Body>
</S:Envelope>

我正在使用需要XML的服务器来使用wsdl中包含的确切前缀,如:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body><mytype:MyFunction xmlns:mytype="urn:/some/types" ... >
  <mytype:element>form</mytype:element>
  <mytype:name>simple</mytype:name>
</mytype:MyFunction></S:Body>
</S:Envelope>

有没有什么方法可以通过编辑WSDL来生成这个预期的XML?我知道我可以注释package-info.java,但如果可能的话,我需要通过WSDL来完成。

0 个答案:

没有答案