我正在使用Spring WebServiceTemplate进行webservice调用,该调用使用JAXB生成请求XML.我的要求需要所有元素(包括root)在SOAP请求中具有名称空间前缀(只有一个名称空间).
例如:
<ns1:Login xmlns:ns1="www.example.com/a">
<ns1:username>abc</ns1:username>
<ns1:password>abc</ns1:password>
</ns1:Login>
Run Code Online (Sandbox Code Playgroud)
但我得到了
<Login xmlns="www.example.com/a">
<username>abc<username>
<password>abc<password>
</Login>
Run Code Online (Sandbox Code Playgroud)
xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="www.example.com/a" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ilreq="www.example.com/a" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:complexType name="Login">
<xs:sequence>
<xs:element name="username" type="xs:string"/>
<xs:element name="password" type="xs:string"/>
</xs:sequence>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)
从XSD生成的Java类
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Login", propOrder = {
"username",
"password"
})
@XmlRootElement
public class Login {
@XmlElement(required = true)
protected String username;
@XmlElement(required = true)
protected String password;
......
}
Run Code Online (Sandbox Code Playgroud)
package-info.java
@javax.xml.bind.annotation.XmlSchema(
namespace = "www.example.com/a",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package authenticator.beans.login;
Run Code Online (Sandbox Code Playgroud)
想知道如何使用Namespace前缀生成包含root的所有元素的请求XML.
有没有办法禁用javac 1.6.0_22的限制,阻止我使用JRE内部类sun.awt.event.*?
我不是在寻找:
我只想知道它是否可能,如果是,那么如何.