Java JaxB:将xsi:type和xmlns:q1设置为请求对象

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>

我希望我的xml如下所示:

                <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类,因为这就是神奇的地方。非常感谢。