目前web服務的相關標準是wsdl【web服務描述語言】,一種標準的類似xml
schema的語言,用它來詳細說明web服務和soap【簡單物件訪問協議】,web服務使用的實際的溝通協議就是soap。wsdl 繫結樣式由兩個屬性組合而成:style、use;style可以是rpc/document,use可以是encoded/literal;下面解釋下這4個名詞的意思:
rpc樣式
rpc樣式指定
document樣式
元素之下。沒有任何soap格式化規則規定元素下能包含什麼;它包含的是乙個傳送者和接收者都達成一致的xml文件。
encoded 編碼
如果use的值是」
encoded
」,則每個訊息片段將使用型別屬性來引用抽象型別。通過應用由encodingstyle屬性所指定的編碼樣式,可使用這些抽象型別生成具體的訊息。最常用到的soap編碼樣式是在soap1.1中定義的一組序列化規則,它說明了物件、結構、陣列和圖形物件應該如何序列化。通常,在應用程式中使用soap編碼著重於遠端程序呼叫和以後適合使用rpc訊息樣式。
literal 文字?
如果use
的值是」
literal
」, 則每個片段使用element屬性(對於簡單片段)或type屬性(對於復合片段)來引用具體架構,例如,資料根據指定的架構來序列化,這架構通常使用w3c xml架構來表述。
根據不同的組合,形成了四種繫結模型;另外,還有一種用document模擬rpc樣式的包裝組合也很常見;
rpc/encoded
rpc/literal
document/encoded
document/literal
對於以上5種組合方式,由於document/encoded不被現有平台所支援,在實際中應用很少,所以這裡就暫時不討論該種組合;對於剩下的4種組合,我們結合乙個**和例項來對比下各自的優劣情況;
binding type
advantage/disadvantage
rpc/
encoded
優點:
wsdl檔案的定義遵循直觀和眾所周知的遠端程序呼叫的溝通模式。
操作名顯示在訊息中,因此接收者很容易就把訊息分派給它的實現。
如果你正在你的服務中使用資料圖形或者多型,這是惟一能使用的樣式。
缺點:soap訊息包含的型別編碼資訊就如xsi:type="xsd:int",這些就是一種開銷。
通常驗證soap訊息是很困難的,因為在wsdl shcema中沒有描述。
rpc樣式引起了一種在服務提供者和客戶之間的緊密耦合,任何對介面的更改都會導致服務和客戶間聯絡的中斷。
不被wsi一致性標準所支援。
rpc/
literal
優點:wsdl定義仍然像rpc/encoded樣式一樣簡單直接。
操作名仍然出現在soap訊息中。
把型別編碼從訊息中排除了,因此提公升了吞吐效能。
缺點:服務和客戶之間仍然有緊密耦合。
仍然難以用soap訊息來驗證傳輸的資料。
它也不被wsi一致性標準所支援。
document/
litaral
優點:在soap訊息中沒有型別編碼資訊。
你總能用任何xml驗證器來驗證訊息,在soap體中任何東西都在schema中有定義。
使用document樣式,規則不是那麼嚴格,還有對xml schema進行增強和更改時不會破壞介面。
如果使用某特殊序列進行多程序呼叫,document 樣式可以保持應用程式的狀態。
document樣式更加適合非同步處理。
許多document-messaging服務能夠選擇文件的dom和sax 兩種處理方式的其中一種,結果就是能最小化在記憶體中的處理。
缺點:wsdl定義變得更加複雜。
在soap訊息中的操作名沒有了,沒有了名稱,把訊息分派給它的實現方法就變得困難或不可能了。
document/
literal
優點:包含了所有document/literal樣式的優點。
操作名出現在soap訊息中。
缺點:即使wsdl定義變得更加複雜,但仍然有不少缺點。
如果你在web服務中過載了操作,你就不能使用該樣式。
假設我們需要呼叫的ws的method為:public void mymethod(int x); 各種繫結樣式生成的wsdl/soap片段如下:
binding type
wsdl
soap
rpc/ encoded
5
rpc/ literal
5
document/ litaral
5
5
Vue 屬性繫結 樣式繫結
一 vue如何動態處理屬性?1.v bind指令用法 跳轉2.縮寫形式 跳轉二 v model的底層實現原理分析 三個都是一樣的 一 class樣式處理 1.物件語法 active是class類名,isactive控制樣式動態處理,顯示隱藏,如果還需加類的話,只要在isactive後加,例如 即可....
vue 樣式繫結
vue 樣式的繫結 可以通過 class 或者 style 屬性的繫結來設定。繫結值可以是物件,也可以是陣列 class 的物件繫結 通過繫結class 屬性即 class 然後使用js物件賦給該屬性乙個資料。class 繫結的資料叫 activated,它的值為isactivated.當isact...
vue 樣式繫結
對於樣式大家是不是很熟悉呢?沒有錯就是css 在vue中class也是可以繫結的,是不是很神奇 一 class樣式繫結 1 class物件繫結 class hello world 解析 就是 class 物件 這樣就是物件繫結 2 class陣列繫結 class activated hello wo...