JavaTM 2 Platform
Standard Ed. 6

javax.xml.soap
介面 SOAPEnvelope

所有父級介面:
Element, Node, SOAPElement

public interface SOAPEnvelope
extends SOAPElement

SOAPPart 物件的 SOAPHeader 和 SOAPBody 部分的容器。預設情況下,使用帶有 SOAPEnvelope 物件的 SOAPPart 物件創建 SOAPMessage 物件。SOAPEnvelope 物件預設帶有空 SOAPBody 物件和空 SOAPHeader 物件。SOAPBody 物件是必需的,SOAPHeader 物件雖然是可選的,但在大多數情況下都會用到。如果不需要 SOAPHeader 物件,則可以刪除該物件(稍後將顯示該操作)。

客戶端可以通過調用方法 SOAPEnvelope.getHeaderSOAPEnvelope.getBody 來存取 SOAPHeaderSOAPBody 物件。以下程式碼行首先使用 SOAPMessage 物件 message 獲取 SOAPPart 物件 sp,然後使用後者獲取 SOAPEnvelope 物件 se,最後調用上述的兩種方法。

SOAPPart sp = message.getSOAPPart();
SOAPEnvelope se = sp.getEnvelope();
SOAPHeader sh = se.getHeader();
SOAPBody sb = se.getBody();
 

檢索 SOAPEnvelope 物件當前的正文或頭,然後將其刪除並添加一個新正文或頭,這樣就能更改該物件的正文或頭。javax.xml.soap.Node 方法 deleteNode 刪除調用它的 XML 元素(節點)。例如,以下程式碼行刪除由方法 getBody 檢索的 SOAPBody 物件。

se.getBody().detachNode();
 
要創建用來替換被移除物件的 SOAPHeader 物件,客戶端應使用方法 SOAPEnvelope.addHeader,該方法創建一個新頭並將其添加到 SOAPEnvelope 物件。類似地,方法 addBody 創建一個新 SOAPBody 物件並將其添加到 SOAPEnvelope 物件。以下程式碼片段檢索當前的頭,然後將其刪除並添加一個新頭。接下來檢索當前的正文,然後將其刪除並添加一個新正文。
SOAPPart sp = message.getSOAPPart();
SOAPEnvelope se = sp.getEnvelope();
se.getHeader().detachNode();
SOAPHeader sh = se.addHeader();
se.getBody().detachNode();
SOAPBody sb = se.addBody();
 
在已經存在的情況下添加 SOAPBodySOAPHeader 是錯誤的。

SOAPEnvelope 介面提供了三種創建 Name 物件的方法。第一種方法使用本地名稱、名稱空間前綴以及名稱空間 URI 創建 Name 物件。第二種方法使用本地名稱和名稱空間前綴創建 Name 物件,第三種方法只使用本地名稱創建 Name 物件。以下程式碼行(其中 se 是一個 SOAPEnvelope 物件)創建帶有所有三個元素的新 Name 物件。

Name name = se.createName("GetLastTradePrice", "WOMBAT",
"http://www.wombat.org/trader");
 


欄位摘要
 
從介面 org.w3c.dom.Node 繼承的欄位
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
方法摘要
 SOAPBody addBody()
          創建一個 SOAPBody 物件,並將其設置為此 SOAPEnvelope 物件的 SOAPBody 物件。
 SOAPHeader addHeader()
          創建一個 SOAPHeader 物件,並將其設置為此 SOAPEnvelope 物件的 SOAPHeader 物件。
 Name createName(String localName)
          創建使用給定本地名稱初始化的新 Name 物件。
 Name createName(String localName, String prefix, String uri)
          創建使用給定本地名稱、名稱空間前綴和名稱空間 URL 初始化的新 Name 物件。
 SOAPBody getBody()
          返回與此 SOAPEnvelope 物件關聯的 SOAPBody 物件。
 SOAPHeader getHeader()
          返回此 SOAPEnvelope 物件的 SOAPHeader 物件。
 
從介面 javax.xml.soap.SOAPElement 繼承的方法
addAttribute, addAttribute, addChildElement, addChildElement, addChildElement, addChildElement, addChildElement, addChildElement, addNamespaceDeclaration, addTextNode, createQName, getAllAttributes, getAllAttributesAsQNames, getAttributeValue, getAttributeValue, getChildElements, getChildElements, getChildElements, getElementName, getElementQName, getEncodingStyle, getNamespacePrefixes, getNamespaceURI, getVisibleNamespacePrefixes, removeAttribute, removeAttribute, removeContents, removeNamespaceDeclaration, setElementQName, setEncodingStyle
 
從介面 javax.xml.soap.Node 繼承的方法
detachNode, getParentElement, getValue, recycleNode, setParentElement, setValue
 
從介面 org.w3c.dom.Element 繼承的方法
getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getElementsByTagName, getElementsByTagNameNS, getSchemaTypeInfo, getTagName, hasAttribute, hasAttributeNS, removeAttribute, removeAttributeNode, removeAttributeNS, setAttribute, setAttributeNode, setAttributeNodeNS, setAttributeNS, setIdAttribute, setIdAttributeNode, setIdAttributeNS
 
從介面 org.w3c.dom.Node 繼承的方法
appendChild, cloneNode, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData
 

方法詳細資訊

createName

Name createName(String localName,
                String prefix,
                String uri)
                throws SOAPException
創建使用給定本地名稱、名稱空間前綴和名稱空間 URL 初始化的新 Name 物件。

此處理器方法創建在 SOAP/XML 文檔中使用的 Name 物件。

參數:
localName - 給出本地名稱的 String
prefix - 給出名稱空間前綴的 String
uri - 給出名稱空間 URI 的 String
返回:
使用給定本地名稱、名稱空間前綴和名稱空間 URL 初始化的 Name 物件
拋出:
SOAPException - 如果存在 SOAP 錯誤

createName

Name createName(String localName)
                throws SOAPException
創建使用給定本地名稱初始化的新 Name 物件。

此處理器方法創建在 SOAP/XML 文檔中使用的 Name 物件。

參數:
localName - 給出本地名稱的 String
返回:
使用給定本地名稱初始化的 Name 物件
拋出:
SOAPException - 如果存在 SOAP 錯誤

getHeader

SOAPHeader getHeader()
                     throws SOAPException
返回此 SOAPEnvelope 物件的 SOAPHeader 物件。

預設情況下,使用包含空 SOAPHeader 物件的 SOAPEnvelope 物件創建新 SOAPMessage 物件。因此,只要沒有移除了頭且尚未添加新頭,方法 getHeader 將總是返回 SOAPHeader 物件。

返回:
SOAPHeader 物件,如果沒有該物件,則返回 null
拋出:
SOAPException - 如果在獲取 SOAPHeader 物件時出現問題

getBody

SOAPBody getBody()
                 throws SOAPException
返回與此 SOAPEnvelope 物件關聯的 SOAPBody 物件。

預設情況下,使用包含空 SOAPBody 物件的 SOAPEnvelope 物件創建 SOAPMessage 物件。因此,只要沒有移除了正文且尚未添加新正文,方法 getBody 將總是返回 SOAPBody 物件。

返回:
SOAPEnvelope 物件的 SOAPBody 的物件,如果沒有該物件,則返回 null
拋出:
SOAPException - 如果在獲取 SOAPBody 物件時出現問題

addHeader

SOAPHeader addHeader()
                     throws SOAPException
創建一個 SOAPHeader 物件,並將其設置為此 SOAPEnvelope 物件的 SOAPHeader 物件。

當信封已包含頭時,添加頭是非法的。因此,此方法應該在移除了現有的頭之後調用。

返回:
新的 SOAPHeader 物件
拋出:
SOAPException - 如果此 SOAPEnvelope 物件已包含一個有效的 SOAPHeader 物件

addBody

SOAPBody addBody()
                 throws SOAPException
創建一個 SOAPBody 物件,並將其設置為此 SOAPEnvelope 物件的 SOAPBody 物件。

當信封已包含正文時,添加正文是非法的。因此,此方法應該在移除了現有的正文之後調用。

返回:
新的 SOAPBody 物件
拋出:
SOAPException - 如果此 SOAPEnvelope 物件已包含一個有效的 SOAPBody 物件

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only