Я генерирую свой класс pojo с помощью wsdl, используя "wsimport" успешно Но в схеме wsdl есть «любые» поля. Поля генерируются как «Объект» в моем классе Java.
Схема wsdl:
<s:complexType name="Model1">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Model2">
<s:complexType>
<s:sequence>
<s:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax"/>
<s:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element minOccurs="0" maxOccurs="1" name="Response" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Response_Str" type="s:string"/>
</s:sequence>
</s:complexType>
...
...
Сгенерированный класс с использованием wsimport:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Model1", propOrder = {
"model2",
"response",
"responseStr"
})
public class Model1 {
@XmlElement(name = "Model2")
protected Object model2;
@XmlElement(name = "Response")
protected String response;
@XmlElement(name = "Response_Str")
protected String responseStr;
Схема Model2 приходит в ответ следующим образом:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<Response xmlns="...">
<Result>
<Model2>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="Temp" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Temp">
<xs:complexType>
<xs:sequence>
<xs:element name="field1" type="xs:int" minOccurs="0"/>
<xs:element name="field2" msdata:DataType="System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" type="xs:string" minOccurs="0"/>
...
...
...
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<NewDataSet xmlns="">
<Temp diffgr:id="Temp1" msdata:rowOrder="0">
<ID>20018243</ID>
Wsdl не существует схемы Model2, но схема находится в ответе.
Как я могу обработать схему в Java?
Как я могу разыграть ответ на "Object model2"?