我想通過使用xsd從soap xml生成類。我已經成功至今,但現在,我有這個SOAP消息:將wsdl文件導入到xsd文件
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
xmlns:tds="http://www.onvif.org/ver10/device/wsdl">
<SOAP-ENV:Body>
<tds:GetSystemDateAndTime/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
XSD會產生這樣的:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Envelope" targetNamespace="http://www.w3.org/2003/05/soap-envelope"
xmlns:mstns="http://www.w3.org/2003/05/soap-envelope"
xmlns="http://www.w3.org/2003/05/soap-envelope"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified"
xmlns:app1="http://www.onvif.org/ver10/device/wsdl">
<xs:import namespace="http://www.onvif.org/ver10/device/wsdl" schemaLocation="GetSystemDateAndTime_app1.xsd" />
<xs:element name="Envelope" msdata:IsDataSet="true" msdata:Locale="en-US" msdata:Prefix="SOAP-ENV">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Body" msdata:Prefix="SOAP-ENV">
<xs:complexType>
<xs:sequence>
<xs:element ref="app1:GetSystemDateAndTime" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
此的xmlns:TDS =「HTTP://www.onvif .org/ver10/device/wsdl「鏈接this document。
正如我所說的,到目前爲止,我只是下載了一個位於schemaLocation屬性中的文件,將它放到了像xsd文件一樣的文件夾並更改了路徑。然後我使用「xsd myXsdFile.xsd otherXsdFiles.xsd/c」。但對於wsdl文件,這是不可能的。 SchemaLocation屬性不包含wsdl文件,當然當我使用xsd commnand時,我會收到GetSystemDateAndTime不存在的消息。我知道wsdl文件與xsd非常不同,但我無法採取正確的方式,如何將這個文件與我的xsd文件結合。有什麼建議嗎? Thx
Thx,用於回覆。這是我的錯誤。我不得不寫這個:「xsd GetSystemDateAndTime.xsd GetSystemDateAndTime_app1.xsd/c」。我不知道,我發現我必須將schemaLocation屬性更改爲生成類。我愚蠢的錯誤。 – Hyen 2012-03-09 13:01:31