杞嚜IBM java dev
------------------
Web 鏈嶅姟鏄氳繃 WSDL 鏂囨。鏉ユ弿榪扮殑銆俉SDL 緇戝畾鎻忚堪浜嗗浣曟妸鏈嶅姟緇戝畾鍒版秷鎭紶閫掑崗璁紙鐗瑰埆鏄?SOAP 娑堟伅浼犻掑崗璁級銆俉SDL SOAP 緇戝畾鍙互鏄?RPC 鏍峰紡鐨勭粦瀹氾紝涔熷彲浠ユ槸鏂囨。鏍峰紡鐨勭粦瀹氥傚悓鏍鳳紝SOAP 緇戝畾鍙互鏈夌紪鐮佺殑鐢ㄦ硶錛屼篃鍙互鏈夋枃瀛楃殑鐢ㄦ硶銆傝繖緇欐垜浠彁渚涗簡鍥涚鏍峰紡/鐢ㄦ硶妯″瀷錛?/p>
- RPC/緙栫爜
- RPC/鏂囧瓧
- 鏂囨。/緙栫爜
- 鏂囨。/鏂囧瓧
闄や簡榪欎簺鏍峰紡涔嬪錛岃繕鏈変竴縐嶆牱寮忎篃寰堝父瑙侊紝瀹冪О涓烘枃妗?鏂囧瓧鍖呰鐨勬牱寮忥紝綆椾笂榪欎竴縐嶏紝鍦ㄥ垱寤?WSDL 鏂囦歡鏃舵偍灝辨湁浜嗕簲縐嶇粦瀹氭牱寮忓彲浠ヤ粠涓夋嫨銆傛偍搴旇閫夋嫨鍝竴縐嶅憿錛?/p>
瀵逛簬鏈枃鐨勮璁猴紝璁╂垜浠粠 娓呭崟1涓殑 Java 鏂規硶寮濮嬶紝騫朵笖瀵瑰叾搴旂敤 JAX-RPC Java-to-WSDL 瑙勫垯
娓呭崟 1. Java 鏂規硶
public void myMethod(int x);
|
RPC/緙栫爜
閲囩敤 娓呭崟1涓殑鏂規硶騫朵笖浣跨敤鎮ㄥ枩嬈㈢殑 Java-to-WSDL 宸ュ叿鏉ヨ繍琛屽畠錛屾寚瀹氭偍鎯寵瀹冪敓鎴?RPC/緙栫爜鐨?WSDL銆傛偍鏈鍚庡簲璇ュ緱鍒板 娓呭崟2鎵紺虹殑 WSDL 鐗囨柇銆?
娓呭崟 2. 鐢ㄤ簬 myMethod 鐨?RPC/緙栫爜鐨?WSDL
<message name="myMethodRequest">
<part name="x" type="xsd:int"/>
</message>
<message name="empty"/>
<portType name="PT">
<operation name="myMethod">
<input message="myMethodRequest"/>
<output message="empty"/>
</operation>
</portType>
<binding .../>
<!-- I won't bother with the details, just assume it's RPC/encoded. -->
|
鐜板湪鐢?#8220;5”浣滀負鍙傛暟 x
鐨勫兼潵璋冪敤姝ゆ柟娉曘傛垜浠皢鍙戦佷竴涓笌 娓呭崟3綾諱技鐨?SOAP 娑堟伅銆?
娓呭崟 3. 鐢ㄤ簬 myMethod 鐨?RPC/緙栫爜鐨?SOAP 娑堟伅
<soap:envelope>
<soap:body>
<myMethod>
<x xsi:type="xsd:int">5</x>
</myMethod>
</soap:body>
</soap:envelope>
|
瀵逛簬榪欎釜 RPC/緙栫爜鐨勭ず渚嬩腑鐨?WSDL 鍜?SOAP 娑堟伅錛屾湁璁稿闇瑕佹敞鎰忕殑浜嬮」錛?/p>
浼樼偣
- WSDL 鍩烘湰杈懼埌浜嗗敖鍙兘鍦扮畝鍗曟槗鎳傜殑瑕佹眰銆?/li>
- 鎿嶄綔鍚嶅嚭鐜板湪娑堟伅涓紝榪欐牱鎺ユ敹鑰呭氨鍙互寰堣交鏉懼湴鎶婃秷鎭彂閫佸埌鏂規硶鐨勫疄鐜般?/li>
緙虹偣
- 綾誨瀷緙栫爜淇℃伅錛堟瘮濡?
xsi:type="xsd:int"
錛夐氬父灝辨槸闄嶄綆鍚炲悙閲忔ц兘鐨勫紑閿銆? - 鎮ㄤ笉鑳界畝鍗曞湴媯楠屾娑堟伅鐨勬湁鏁堟э紝鍥犱負鍙湁
<x xsi:type="xsd:int">5</x>
琛屽寘鍚湪 Schema 涓畾涔夌殑鍐呭錛涘叾浣欑殑 soap:body
鍐呭閮芥潵鑷?WSDL 瀹氫箟銆?
鏈夋病鏈変竴縐嶆柟娉曡兘澶熶繚鐣欒繖浜涗紭鐐硅屾秷闄ゅ叾涓殑緙虹偣鍛紵鎴栬鏈夈傝鎴戜滑鏉ョ湅涓鐪?RPC/鏂囧瓧鐨勬牱寮忋?/p>
鍥為〉棣?/a>
RPC/鏂囧瓧
鐢ㄤ簬鎴戜滑鐨勬柟娉曠殑 RPC/鏂囧瓧鐨?WSDL 鐪嬭搗鏉ヤ笌 RPC/緙栫爜鐨?WSDL 鍑犱箮涓鏍鳳紙璇峰弬瑙?娓呭崟4錛夈傚彧鏄粦瀹氱殑鐢ㄦ硶鐢?緙栫爜鏀逛負 鏂囧瓧銆備粎姝よ屽凡銆?
娓呭崟
4. 鐢ㄤ簬 myMethod 鐨?RPC/鏂囧瓧鐨?WSDL
<message name="myMethodRequest">
<part name="x" type="xsd:int"/>
</message>
<message name="empty"/>
<portType name="PT">
<operation name="myMethod">
<input message="myMethodRequest"/>
<output message="empty"/>
</operation>
</portType>
<binding .../>
<!-- I won't bother with the details, just assume it's RPC/
literal. -->
|
RPC/鏂囧瓧鐨?SOAP 娑堟伅鍙堟槸鎬庢牱鐨勫憿錛堣鍙傝 娓呭崟 5錛夛紵榪欓噷鐨勬洿鏀硅澶氫竴鐐廣傚幓鎺変簡綾誨瀷緙栫爜銆?
娓呭崟 5. 鐢ㄤ簬 myMethod 鐨?/strong>
RPC/鏂囧瓧鐨?SOAP 娑堟伅
<soap:envelope>
<soap:body>
<myMethod>
<x>5</x>
</myMethod>
</soap:body>
</soap:envelope>
|
涓嬮潰鏄繖縐嶆柟娉曠殑浼樼偣鍜岀己鐐癸細
浼樼偣
- WSDL 榪樻槸鍩烘湰杈懼埌浜嗗敖鍙兘鍦扮畝鍗曟槗鎳傜殑瑕佹眰銆?/li>
- 鎿嶄綔鍚嶄粛鐒跺嚭鐜板湪娑堟伅涓?/li>
- 鍘繪帀浜嗙被鍨嬬紪鐮併?/li>
緙虹偣
- 鎮ㄤ粛鐒朵笉鑳界畝鍗曞湴媯楠屾娑堟伅鐨勬湁鏁堟э紝鍥犱負鍙湁
<x xsi:type="xsd:int">5</x>
琛屽寘鍚湪 Schema 涓畾涔夌殑鍐呭錛涘叾浣欑殑 soap:body
鍐呭閮芥潵鑷?WSDL 瀹氫箟銆?
鏂囨。鏍峰紡濡備綍鍛紵瀹冧滑鑳藉甯姪鍏嬫湇榪欎簺鍥伴毦鍚楋紵
鍥為〉棣?/a>
鏂囨。
鎴戜笉鐭ラ亾鏈夎皝鎳傚緱榪欑鏂規硶鐨勭湡姝e惈涔夈傛垜涔熶笉鐭ラ亾榪欑鏂規硶鐨勪換浣曞疄鐜般傚畠灝嗗彲鑳戒粠 WSDL 鐨勫悗緇増鏈腑娑堝け銆傛墍浠ユ垜浠繕鏄璁哄埆鐨勫惂銆?/p>
鍥為〉棣?/a>
鏂囨。
鏂囨。/鏂囧瓧鐨?WSDL 瀵?RPC/鏂囧瓧鐨?WSDL 浣滀簡涓浜涙洿鏀廣傚畠浠箣闂寸殑涓嶅悓涔嬪鏄劇ず鍦?娓呭崟6涓?
娓呭崟6. 鐢ㄤ簬 myMethod 鐨勬枃妗?鏂囧瓧鐨?WSDL
<types>
<schema>
<element name="xElement" type="xsd:int"/>
</schema>
</types>
<message name="myMethodRequest">
<part name="x"
element="xElement"/>
</message>
<message name="empty"/>
<portType name="PT">
<operation name="myMethod">
<input message="myMethodRequest"/>
<output message="empty"/>
</operation>
</portType>
<binding .../>
<!-- I won't bother with the details, just assume it's
document/literal. -->
|
鑰岀幇鍦ㄧ殑 SOAP 搴旇濡?娓呭崟 7鎵紺猴細
娓呭崟7. 鐢ㄤ簬 myMethod 鐨勬枃妗?鏂囧瓧鐨?SOAP 娑堟伅
<soap:envelope>
<soap:body>
<xElement>5</xElement>
</soap:body>
</soap:envelope>
|
涓嬮潰鏄繖縐嶆柟娉曠殑浼樼偣鍜岀己鐐癸細
浼樼偣
- 娌℃湁緙栫爜淇℃伅
- 鎮ㄥ彲浠ュ湪鏈鍚庣敤浠諱綍 XML 媯楠屽櫒媯楠屾娑堟伅鐨勬湁鏁堟с?
soap:body
錛?<xElement>5</xElement>
錛変腑姣忛」鍐呭閮藉畾涔夊湪 Schema 涓?
緙虹偣
- WSDL 鍙樺緱鏈変簺澶嶆潅銆備笉榪囷紝榪欐槸涓涓潪甯稿皬鐨勭己鐐癸紝鍥犱負 WSDL 騫舵病鏈夋墦綆楃敱浜烘潵璇誨彇銆?/li>
- SOAP 娑堟伅涓己灝戞搷浣滃悕銆傝屽鏋滄病鏈夋搷浣滃悕錛屽彂閫佸氨鍙兘姣旇緝鍥伴毦錛屽茍涓旀湁鏃跺彉寰椾笉鍙兘銆?/li>
鏂囨。/鏂囧瓧鐨勬牱寮忕湅璧鋒潵浼間箮鍙槸閲嶆柊瀹夋帓浜?RPC/鏂囧瓧鐨勬ā鍨嬬殑浼樼偣鍜岀己鐐廣傛偍鍙互媯楠屾秷鎭殑鏈夋晥鎬э紝浣嗘槸鎮ㄥけ鍘諱簡鎿嶄綔鍚嶃傛湁娌℃湁涓縐嶆柟娉曞彲浠ユ敼榪涜繖涓鐐瑰憿錛熸湁鐨勩傚畠灝辨槸鏂囨。/鏂囧瓧鍖呰鐨勬牱寮忋?/p>
鍥為〉棣?/a>
鏂囨。
鍦ㄦ垜璇存槑鏂囨。/鏂囧瓧鍖呰鐨勬牱寮忕殑鍚箟涔嬪墠錛岃鎴戠粰鎮ㄥ睍紺?娓呭崟 8鍜?娓呭崟9涓殑 WSDL 鍜?SOAP 娑堟伅銆?
娓呭崟8. 鐢ㄤ簬 myMethod 鐨勬枃妗?鏂囧瓧鍖呰鐨?WSDL
<types>
<schema>
<element name="myMethod"/>
<complexType>
<sequence>
<element name="x" type="xsd:int"/>
</sequence>
</complexType>
</element>
</schema>
</types>
<message name="myMethodRequest">
<part name="
parameters" element="
myMethod"/>
</message>
<message name="empty"/>
<portType name="PT">
<operation name="myMethod">
<input message="myMethodRequest"/>
<output message="empty"/>
</operation>
</portType>
<binding .../>
<!-- I won't bother with the details, just assume it's document/literal. -->
|
WSDL Schema 鐜板湪鎶婂弬鏁版斁鍦ㄥ寘瑁呬腑錛堣鍙傝 娓呭崟9錛夈?
娓呭崟:9. 鐢ㄤ簬 myMethod 鐨勬枃妗?鏂囧瓧鍖呰鐨?SOAP 娑堟伅
<soap:envelope>
<soap:body>
<myMethod>
<x>5</x>
</myMethod>
</soap:body>
</soap:envelope> |
娉ㄦ剰鍒版 SOAP 娑堟伅鐪嬭搗鏉ラ潪甯哥被浼間簬 RPC/鏂囧瓧鐨?SOAP 娑堟伅銆傛偍鍙兘浼氳錛屽畠鐪嬭搗鏉ヤ笌 RPC/鏂囧瓧鐨?SOAP 娑堟伅鏄畬鍏ㄤ竴鏍風殑錛屼笉榪囷紝榪欎袱縐嶆秷鎭箣闂村瓨鍦ㄧ潃寰鐨勫尯鍒傚湪 RPC/鏂囧瓧鐨?SOAP 娑堟伅涓紝 <soap:body>
鐨?<myMethod>
瀛愬彞鏄搷浣滅殑鍚嶇О銆傚湪鏂囨。/鏂囧瓧鍖呰鐨?SOAP 娑堟伅涓紝 <myMethod>
瀛愬彞鏄崟涓緭鍏ユ秷鎭殑緇勬垚閮ㄥ垎寮曠敤鐨勫厓绱犵殑鍚嶇О銆傚洜姝わ紝鍖呰鐨勬牱寮忓叿鏈夎繖鏍風殑涓涓壒寰侊紝杈撳叆鍏冪礌鐨勫悕縐頒笌鎿嶄綔鐨勫悕縐版槸鐩稿悓鐨勩傛鏍峰紡鏄妸鎿嶄綔鍚嶆斁鍏?SOAP 娑堟伅鐨勪竴縐嶅閥濡欐柟寮忋?
鏂囨。/鏂囧瓧鍖呰鐨勬牱寮忕殑鐗瑰緛鏈夛細
- 杈撳叆娑堟伅鍙湁涓涓粍鎴愰儴鍒嗐?/li>
- 璇ラ儴鍒嗗氨鏄竴涓厓绱犮?/li>
- 璇ュ厓绱犳湁涓庢搷浣滅浉鍚岀殑鍚嶇О銆?/li>
- 璇ュ厓绱犵殑澶嶆潅綾誨瀷娌℃湁灞炴с?/li>
涓嬮潰鏄繖縐嶆柟娉曠殑浼樼偣鍜岀己鐐癸細
浼樼偣
- 娌℃湁緙栫爜淇℃伅銆?/li>
- 鍑虹幇鍦?soap:body 涓殑姣忛」鍐呭閮芥槸鐢?Schema 瀹氫箟鐨勶紝鎵浠ユ偍鐜板湪鍙互寰堝鏄撳湴媯楠屾娑堟伅鐨勬湁鏁堟с?/li>
- 鏂規硶鍚嶅張鍑虹幇鍦?SOAP 娑堟伅涓?/li>
緙虹偣
- WSDL 鐢氳嚦鏇村鏉傦紝浣嗘槸榪欎粛鐒舵槸涓涓潪甯稿皬鐨勭己鐐廣?/li>
濡傛偍鎵瑙侊紝鏂囨。/鏂囧瓧鍖呰鐨勬牱寮忚繕鏄湁涓浜涚己鐐癸紝涓嶈繃涓庝紭鐐規瘮璧鋒潵錛屽畠浠兘鏄懼緱鏃犺凍杞婚噸銆?/p>
鏂囨。/鏂囧瓧鐨勬牱寮忓湪鍝噷瀹氫箟
榪欑鍖呰鐨勬牱寮忔潵婧愪簬 Microsoft銆傛病鏈夊畾涔夎繖縐嶆牱寮忕殑瑙勮寖錛涙墍浠ヨ櫧鐒惰繖縐嶆牱寮忔槸涓涓ソ鐨勪笢瑗匡紝浣嗕笉騫哥殑鏄紝涓轟簡涓?Microsoft 鍜屽叾浠栧叕鍙哥殑瀹炵幇榪涜浜掓搷浣滐紝鐜板湪鎯熶竴鐨勯夋嫨灝辨槸鏍規嵁 Microsoft WSDL 鐨勮緭鍑烘潵鐚滄祴瀹冩槸濡備綍宸ヤ綔鐨勩傛枃妗?鏂囧瓧鍖呰鐨勬牱寮忎篃瀹炵幇鍦?IBM WebSphere SDK for Web Services 涓紙璇峰弬瑙?鍙傝冭祫鏂?/a>錛夈傚湪榪欎釜紺轟緥涓紝鏍峰紡鏄浉褰撴槑鏄劇殑錛涗絾鏄篃瀛樺湪涓埆鎯呭喌錛屽湪榪欎簺鎯呭喌涓紝鐢變簬緙哄皯瀹氫箟鑰屽鑷撮渶瑕佹搷浣滅殑閫傚綋浜嬮」涓嶅鐗瑰埆娓呮櫚銆傛垜浠笇鏈涚湅鍒扮殑鏈鐞嗘兂鐨勬儏鍐靛氨鏄皢鏉ヨ兘鏈夊儚 Web 鏈嶅姟浜掓搷浣滅粍緇囷紙Web Services Interoperability Organization錛夎繖鏍風殑鐙珛鍥綋鏉ュ府鍔╁姝よ繘琛岀ǔ瀹氬寲鍜屾爣鍑嗗寲銆?
鍥為〉棣?/a>
涓轟粈涔堜笉濮嬬粓閲囩敤鏂囨。/鏂囧瓧鍖呰鐨勬牱寮?/span>
鑷蟲錛屾湰鏂囧凡緇忕粰浜嗘偍榪欐牱鐨勪竴涓嵃璞★紝鏂囨。/鏂囧瓧鍖呰鐨勬牱寮忔槸鏈濂界殑鏂規硶銆傝屽疄闄呯殑鎯呭喌寰寰紜疄濡傛銆備笉榪囷紝浠嶇劧瀛樺湪鐫涓浜涙儏鍐碉紝鍦ㄨ繖浜涙儏鍐典笅錛屾偍鏈濂芥槸鎹竴縐嶅埆鐨勬牱寮忋?/p>
閲囩敤鏂囨。/鏂囧瓧闈炲寘瑁呯殑鏍峰紡鐨勭悊鐢?/span>
濡傛灉鎮ㄥ凡緇忛噸杞戒簡鎿嶄綔錛屽氨涓嶈兘閲囩敤鏂囨。/鏂囧瓧鍖呰鐨勬牱寮忋?
鎯寵薄涓涓嬶紝闄や簡鎴戜滑涓鐩村湪浣跨敤鐨勬柟娉曚箣澶栵紝榪樻湁鍙︿竴縐嶆柟娉曪紝璇峰弬瑙?娓呭崟10銆?
娓呭崟10. 鐢ㄤ簬鏂囨。/鏂囧瓧鍖呰鐨勯棶棰樻柟娉?/strong>
public void myMethod(int x);
public void myMethod(int x, String y);
|
WSDL 鍏佽閲嶈澆鐨勬搷浣溿備絾鏄綋鎮ㄦ坊鍔犲寘瑁呯殑鏍峰紡鍒?WSDL 鏃訛紝闇瑕佸厓绱犳湁涓庢搷浣滅浉鍚岀殑鍚嶇О錛屽茍涓斿湪 XML 涓笉鑳芥湁涓や釜鍚嶇О鐩稿悓鐨勫厓绱犮傛墍浠ユ偍蹇呴』閲囩敤鏂囨。/鏂囧瓧闈炲寘瑁呯殑鏍峰紡鎴栨煇縐?RPC 鏍峰紡銆?/p>
閲囩敤 RPC/鏂囧瓧鐨勬牱寮忕殑鐞嗙敱
鐢變簬鏂囨。/鏂囧瓧闈炲寘瑁呯殑鏍峰紡娌℃湁鎻愪緵鎿嶄綔鍚嶏紝鎵浠ュ湪鏈変簺鎯呭喌涓嬶紝鎮ㄥ皢闇瑕侀噰鐢ㄦ煇縐?RPC 鏍峰紡銆傛瘮濡傝 娓呭崟11涓殑涓緇勬柟娉曘?
娓呭崟11. 鐢ㄤ簬鏂囨。/鏂囧瓧闈炲寘瑁呯殑鏍峰紡鐨勯棶棰樻柟娉?/strong>
public void myMethod(int x);
public void myMethod(int x, String y);
public void someOtherMethod(int x);
|
鐜板湪鍋囧畾鎮ㄧ殑鏈嶅姟鍣ㄦ帴鏀跺埌鏂囨。/鏂囧瓧鐨?SOAP 娑堟伅錛堟偍鍙互鍥炶繃澶村湪 娓呭崟 7涓湅涓鐪嬪畠錛夈傛湇鍔″櫒搴旇鍙戦佸摢涓縐嶆柟娉曞憿錛熸墍鏈夋偍鑳界‘鍒囩煡閬撶殑灝辨槸錛屽畠涓瀹氫笉鏄?myMethod(int x, String x)
錛屽洜涓烘秷鎭彧鏈変竴涓弬鏁幫紝鑰岃繖縐嶆柟娉曢渶瑕佷袱涓弬鏁般傚畠鍙兘鏄叾浠栦袱縐嶆柟娉曚腑鐨勪竴縐嶃傞噰鐢ㄦ枃妗?鏂囧瓧鐨勬牱寮忥紝鎮ㄦ病鏈夊姙娉曠煡閬撴槸鍝竴縐嶆柟娉曘?
鍋囧畾鏈嶅姟鍣ㄦ帴鏀跺埌涓涓?RPC/鏂囧瓧鐨勬秷鎭紙姣斿 娓呭崟5涓殑錛夛紝鑰屼笉鏄枃妗?鏂囧瓧鐨勬秷鎭傚浜庤繖縐嶆秷鎭紝鏈嶅姟鍣ㄥ緢瀹規槗鍐沖畾鎶婂畠鍙戦佸埌鍝竴縐嶆柟娉曘傛偍鐭ラ亾鎿嶄綔鍚嶆槸 myMethod錛屽茍涓斾篃鐭ラ亾鍙湁涓涓弬鏁幫紝鎵浠ュ畠蹇呭畾鏄?myMethod(int x)
銆?
閲囩敤
閲囩敤 RPC/緙栫爜鐨勭悊鐢辨湁寰堝銆傚叾涓袱涓富瑕佺殑鍘熷洜鏄細
鏁版嵁鍥懼艦
璁炬兂鎮ㄦ湁涓涓簩榪涘埗鏍戯紝鍏朵腑鐨勮妭鐐瑰畾涔夊湪 娓呭崟12涓?
娓呭崟12. 浜岃繘鍒舵爲鑺傜偣 Schema
<complexType name="Node">
<sequence>
<element name="name" type="xsd:string"/>
<element name="left" type="Node" xsd:nillable="true"/>
<element name="right" type="Node" xsd:nillable="true"/>
</sequence>
</complexType>
|
鏍規嵁榪欑鑺傜偣瀹氫箟錛屾垜浠彲浠ユ瀯閫犱竴涓爲褰㈢粨鏋勶紝瀹冪殑鏍硅妭鐐?A 閫氳繃瀹冨乏杈瑰拰鍙寵竟鐨勭殑閾炬帴鍙互鎸囧悜鑺傜偣 B錛堣鍙傝 鍥?錛夈?
鍙戦佹暟鎹浘褰㈢殑鏍囧噯鏂瑰紡鏄嬌鐢?href 鏍囪錛屽畠鏄?RPC/緙栫爜鐨勬牱寮忥紙 娓呭崟13錛夌殑涓閮ㄥ垎銆?
娓呭崟:13. RPC/緙栫爜鐨勪簩榪涘埗鏍?/strong>
<A>
<name>A</name>
<left href="12345"/>
<right href="12345"/>
</A>
<B id="12345">
<name>B</name>
<left xsi:nil="true"/>
<right xsi:nil="true"/>
</B>
|
鍦ㄤ換浣曟枃瀛楃殑鏍峰紡涓紝href 灞炴ч兘鏄笉鍙敤鐨勶紝榪欐牱鍥懼艦閾炬帴灝變笉鍐嶈搗浣滅敤浜嗭紙 娓呭崟14鍜?鍥?錛夈傛偍浠嶇劧鏈変竴涓牴鑺傜偣 A錛屽畠浠庡乏杈規寚鍚戜竴涓妭鐐?B錛屼粠鍙寵竟鎸囧悜鍙︿竴涓妭鐐?B銆傝繖涓や釜 B 鑺傜偣鏄瓑鍚岀殑錛屼絾瀹冧滑涓嶆槸鐩稿悓鐨勮妭鐐廣傛槸澶嶅埗浜嗘暟鎹屼笉鏄紩鐢ㄤ簡涓ゆ鏁版嵁銆?
14. 鏂囧瓧浜岃繘鍒舵爲
<A>
<name>A</name>
<left>
<name>B</name>
<left xsi:nil="true"/>
<right xsi:nil="true"/>
</left>
<right>
<name>B</name>
<left xsi:nil="true"/>
<right xsi:nil="true"/>
</right>
</A> |
鍦ㄦ枃瀛楁牱寮忎腑錛屾偍鍙互閫氳繃鍚勭鏂規硶鏋勯犲浘褰紝浣嗘槸鍗存病鏈夋爣鍑嗙殑鏂規硶錛涙墍浠ユ偍鍋氱殑浠諱綍浜嬫儏寰堝彲鑳戒笉鑳戒笌緗戠粶涓叾浠栫鐐逛笂鐨勬湇鍔¤繘琛屼簰鎿嶄綔銆?/p>澶氭佹?/strong>
鐪嬩竴鐪?娓呭崟15涓嬌鐢ㄥ鎬佹?Schema 鐨?WSDL銆?
娓呭崟
15. 涓涓鎬佹?WSDL 鐨勭ず渚?/strong>
<types>
<schema>
<complexType name="animal">
<sequence>
<element name="name" type="xsd:string"/>
</sequence>
</complexType>
<complexType name="dog">
<complexContent mixed="false">
<extension base="animal">
<sequence>
<element name="breed" type="xsd:string"/>
</sequence>
</extension>
</complexContent>
</complexType>
</schema>
</types>
<message name="in">
<part name="trainee" type="animal"/>
</message>
<message name="empty"/>
<portType name="AnimalTrainer">
<operation name="train">
<input message="in"/>
<output message="empty"/>
</operation>
</portType>
|
褰撴偍鎶婁竴涓?dog 鐨勫疄渚嬩紶閫佺粰 train 鎿嶄綔鏃訛紝鎵鐢熸垚鐨?SOAP 娑堟伅蹇呴』鍖呭惈綾誨瀷緙栫爜淇℃伅錛岃繖鏍鋒帴鏀剁粓绔墠鑳界煡閬撳畠鎵鎺ユ敹鐨勬槸 animal 鐨勫摢涓涓墿灞曪紙璇峰弬瑙?娓呭崟16錛夈傝繖縐嶇被鍨嬬紪鐮佷俊鎭彲鐢ㄥ湪 RPC/緙栫爜鐨勬牱寮忎腑銆?
娓呭崟
16. 涓涓鎬佹?SOAP 娑堟伅
<soap:envelope>
<soap:body>
<train>
<trainee xsi:type="Dog">
<name>Bob</name>
<breed>Bloodhound</breed>
</trainee>
</train>
</soap:body>
</soap:envelope> |
鎬葷粨
鏈夊洓縐嶇粦瀹氭牱寮忥紙鍏跺疄鐪熸鏈変簲縐嶏紝涓嶈繃鏂囨。/緙栫爜鐨勬牱寮忔病鏈変粈涔堟剰涔夛級銆傝櫧鐒舵瘡縐嶆牱寮忛兘鏈夎嚜宸辯殑鐢ㄦ涔嬪湴錛屼絾鏄湪澶у鏁版儏鍐典笅錛屾渶濂界殑鏍峰紡鏄枃妗?鏂囧瓧鍖呰鐨勬牱寮忋?/p>
]]>