通常有兩種方式處理二進制附件,一種是將二進制流經過Base64編碼后嵌入到XML文檔中,一種是在XML文檔中引用該數據,一個較為常見的例子是XHMTL文件中使用img標記引用圖片。前一種方式會通常會增加XML文檔的尺寸。
SOAP with Attachments 規范規定二進制數據可以作為多部分 MIME 文檔的的一部分發送,由 XML 數據組成第一部分,而二進制數據作為附加部分添加到其中。但是這種方式的問題在于,盡管您的程序可能知道數據存在,但文檔并不知道這一點。同時,還不允許對文檔進行選擇性優化或對包含二進制數據的現有文檔進行回溯處理。
最近W3C制定了XOP(XML-binary Optimized Packages,XOP)協議來解決二進制問題,XOP 提供一個機制,可選擇性地提取要優化的信息,將其添加到多部分 MIME 消息中(其中也包括您的 SOAP 消息)并顯式地對其進行引用。
使用 XOP 的過程稱為 MTOM(SOAP 消息傳輸優化機制——Message Transmission Optimization Mechanism)。