Java JaxB:将xsi:type和xmlns:q1设置为请求对象
我希望我的xml如下所示:Java JaxB:将xsi:type和xmlns:q1设置为请求对象,java,xml,kotlin,jaxb,marshalling,Java,Xml,Kotlin,Jaxb,Marshalling,我希望我的xml如下所示: <data xsi:type="q1:UniversalLicenseRequest" xmlns:q1="http://integration.elicense.kz/CustomServices/Egov/EgovLicenseSearchService"> <q1:PageIndex>0</q1:PageIndex>
<data xsi:type="q1:UniversalLicenseRequest" xmlns:q1="http://integration.elicense.kz/CustomServices/Egov/EgovLicenseSearchService">
<q1:PageIndex>0</q1:PageIndex>
<q1:PageSize>10</q1:PageSize>
<q1:SystemInfo>
<q1:MessageId>a62ba0f1-5b3e-4c35-862d-032e9cdcfb68</q1:MessageId>
<q1:ChainId>162d9c25-8734-4fef-81d4-22dd5621e36e</q1:ChainId>
<q1:MessageDate>2019-01-18T10:00:49.7229311+06:00</q1:MessageDate>
<q1:MessageType>Request</q1:MessageType>
<q1:SignatureType>None</q1:SignatureType>
</q1:SystemInfo>
<q1:IinBin>921203350262</q1:IinBin>
<q1:IssueDate xsi:nil="true"/>
</data>
<data xmlns:ns2="http://integration.elicense.kz/CustomServices/Egov/EgovLicenseSearchService">
<SystemInfo>
<MessageId>dad59a9c-60ba-4d76-94f2-30918ee5fb4c</MessageId>
<MessageDate>2019-09-26T12:43:21.624+06:00</MessageDate>
<MessageType>Request</MessageType>
<SignatureType>None</SignatureType>
</SystemInfo>
<PageIndex>0</PageIndex>
<PageSize>10</PageSize>
<IinBin>971240002363</IinBin>
<IssueDate
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
</data>
@XmlSeeAlso({
UniversalLicenseRequest.class,
})
public class RequestData
implements Serializable {
protected Object data;
下面是SystemInfo
class:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "UniversalLicenseRequest", propOrder = {
"iinBin",
"rnn",
"numberNikadUinrd",
"issueDate",
"activityCodes"
})
public class UniversalLicenseRequest
extends RequestPageBase
{
@XmlElement(name = "IinBin")
protected String iinBin;
@XmlElement(name = "Rnn")
protected String rnn;
@XmlElement(name = "NumberNikadUinrd")
protected String numberNikadUinrd;
@XmlElement(name = "IssueDate", required = true, nillable = true)
@XmlSchemaType(name = "dateTime")
protected XMLGregorianCalendar issueDate;
@XmlElement(name = "ActivityCodes")
protected String activityCodes;
@XmlElement(name = "SystemInfo")
protected SystemInfo systemInfo;
... getters and setters
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "SystemInfo", propOrder = {
"messageId",
"chainId",
"messageDate",
"messageType",
"serviceId",
"responseCode",
"additionalInfo",
"senderId",
"digitalSignature",
"signatureType"
})
public class SystemInfo {
@XmlElement(name = "MessageId")
protected String messageId;
@XmlElement(name = "ChainId")
protected String chainId;
@XmlElement(name = "MessageDate", required = true)
@XmlSchemaType(name = "dateTime")
protected XMLGregorianCalendar messageDate;
.....
下面是创建和发送请求的方法(它是用Kotlin编写的,但我希望您能理解它):
而RequestData
类如下所示:
<data xsi:type="q1:UniversalLicenseRequest" xmlns:q1="http://integration.elicense.kz/CustomServices/Egov/EgovLicenseSearchService">
<q1:PageIndex>0</q1:PageIndex>
<q1:PageSize>10</q1:PageSize>
<q1:SystemInfo>
<q1:MessageId>a62ba0f1-5b3e-4c35-862d-032e9cdcfb68</q1:MessageId>
<q1:ChainId>162d9c25-8734-4fef-81d4-22dd5621e36e</q1:ChainId>
<q1:MessageDate>2019-01-18T10:00:49.7229311+06:00</q1:MessageDate>
<q1:MessageType>Request</q1:MessageType>
<q1:SignatureType>None</q1:SignatureType>
</q1:SystemInfo>
<q1:IinBin>921203350262</q1:IinBin>
<q1:IssueDate xsi:nil="true"/>
</data>
<data xmlns:ns2="http://integration.elicense.kz/CustomServices/Egov/EgovLicenseSearchService">
<SystemInfo>
<MessageId>dad59a9c-60ba-4d76-94f2-30918ee5fb4c</MessageId>
<MessageDate>2019-09-26T12:43:21.624+06:00</MessageDate>
<MessageType>Request</MessageType>
<SignatureType>None</SignatureType>
</SystemInfo>
<PageIndex>0</PageIndex>
<PageSize>10</PageSize>
<IinBin>971240002363</IinBin>
<IssueDate
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
</data>
@XmlSeeAlso({
UniversalLicenseRequest.class,
})
public class RequestData
implements Serializable {
protected Object data;
正如您所看到的,数据
字段只是一个对象。之后,我发送消息:
val response = webServiceTemplate.marshalSendAndReceive(serviceLocation, request)
既然您问我们关于
元素的问题,那么您应该向我们展示定义该元素的JAXB类,因为这就是神奇的地方。非常感谢。