パッケージ javax.xml.soap
javax.xml.soap
パッケージのAPIを使用すると、次の内容を実行できます。
- 指定の端点へのポイントツーポイント接続の作成
- SOAPメッセージの作成
- XMLフラグメントの作成
- SOAPメッセージのヘッダーにコンテンツを追加
- SOAPメッセージの本文にコンテンツを追加
- 添付部分の作成とその添付へのコンテンツの追加
- SOAPメッセージ部分のアクセス、追加、修正
- SOAPエラー情報の作成、追加、修正
- SOAPメッセージからのコンテンツ抽出
- SOAP要求応答メッセージの送信
さらに、javax.xml.soap
パッケージのAPIにより、org.w3c.dom
パッケージのそれらに対応する部分も拡張されます。 これは、SOAPMessage
のSOAPPart
もDOM Level 2 Document
であり、DOM (詳細はhttp://www.w3.org/DOM/を参照)を使用するアプリケーションやツール、ライブラリなどで操作できることを意味します。 DOM APIを使用して通常のDOMノードをSAAJツリーに追加できますが、SAAJ APIはツリーの検査時または操作時に、SAAJタイプを返す必要があります。 この処理を実行できるように、SAAJ API (特にSOAPElement.getChildElements()
)では、通知することなくSAAJ要件に関連する不正な型のオブジェクトを、要求されている型の同等のオブジェクトに置き換えることができます。 この置換処理により、ツリーの論理構造が変わることはありません。そのため、DOM APIから見ても、ツリーに変更はありません。 ただし、物理的なツリー構造は変更されるため、置き換えられたノードを参照する場合、すでにツリーの一部ではなくなったノードを参照することになります。 以降、必要がなければ、SAAJ APIはSAAJ APIへの将来の呼出しによって、置き換えられたオブジェクトを通知なく置き換えることはできません。
つまり、実質的に、DOM APIからの操作のあとツリー上のSAAJ APIを使用して開始するアプリケーションは、ツリーがすでにSAAJツリーに変換されており、DOM APIを使用して取得したツリー内のオブジェクトへの参照は無効であると見なします。 参照が無効になるだけでなく、どちらもSAAJ APIを排他的に使用できないため、SAAJ APIからDOM APIへの切替えは実行できません。 特定のSAAJツリーでDOM APIからSAAJ APIの使用に切り替えるだけで、参照が無効になる危険が伴います。
SAAJ実装の発見
SAAJ APIには、特定の実装を検出してロードするためのいくつかのファクトリが定義されています:
最初の3つは、共通のルックアップ手順を使用して実装クラスを決定するnewInstance()
メソッドを定義しています:
- ファクトリ・クラスと同じ名前のシステム・プロパティが(e.g.
javax.xml.soap.SOAPFactory
)に設定されているかどうかをチェックします。 このようなプロパティが存在する場合、その値は実装クラスの完全修飾名とみなされます。 ルックアップのこのフェーズでは、SAAJ実装のJVM単位のオーバーライドが可能になります。 - 構成ファイル"jaxm.properties"を使用します。 このファイルは標準の
Properties
形式であり、通常Javaインストールのconf
ディレクトリにあります。 これには、実装クラスの完全修飾名が格納されています。 -
ServiceLoader
クラスで定義されているサービス・プロバイダのロード機能を使用して、「デフォルトのロード・メカニズム」を使用してサービスの実装を見つけてロードしようとします。 - 最後に、上記のすべてのステップが失敗した場合は、
SAAJMetaFactory
インスタンスを使用して特定の実装を特定します。(MessageFactory
とSOAPFactory
の場合)またはプラットフォームのデフォルト実装は(SOAPConnectionFactory
)です。SAAJMetaFactory
が使用されるたびに、実際のインスタンスを取得するためのルックアップ手順が実行されます。
-
インタフェースのサマリー インタフェース 説明 Detail DetailEntry
オブジェクトのコンテナです。DetailEntry SOAPFault
オブジェクトの詳細を提供するDetail
オブジェクトのコンテンツです。Name XML名の表現です。Node XMLドキュメント内のノード(要素)の表現です。SOAPBody SOAPメッセージ内のSOAP本体要素のコンテンツを表すオブジェクトです。SOAPBodyElement SOAPBody
オブジェクトのコンテンツを表すSOAPBodyElement
オブジェクトです。SOAPConstants SOAPプロトコルに関連した定数の定義です。SOAPElement SOAPメッセージの要素を示すオブジェクトです。SOAPの仕様で許可されていますが、明確に規定されているわけではありません。SOAPEnvelope SOAPPart
オブジェクトのSOAPHeaderとSOAPBody部分のコンテナです。SOAPFault エラー情報またはステータス情報、あるいはその両方を格納するSOAPBody
オブジェクト内の要素です。SOAPFaultElement SOAPFault
オブジェクト内のコンテンツの表現です。SOAPHeader SOAPヘッダー要素の表現です。SOAPHeaderElement SOAPエンベロープのSOAPヘッダー部のコンテンツを表現するオブジェクトです。Text 値がテキストであるノードの表現です。 -
クラスのサマリー クラス 説明 AttachmentPart SOAPMessage
オブジェクトへの個々の添付です。MessageFactory SOAPMessage
オブジェクトを作成するためのファクトリです。MimeHeader MIMEヘッダー名とその値を保存するオブジェクトです。MimeHeaders MimeHeader
オブジェクトのコンテナで、メッセージのMIME部分にあるMIMEヘッダーを表します。SAAJMetaFactory SAAJ APIで定義されたファクトリの実装クラスのアクセス・ポイントです。SAAJResult SAAJツリー形式で、JAXP変換、またはJAXB整列化の結果のホルダーとして動作します。SOAPConnection クライアントがリモート側に直接メッセージを送信するのに使用するポイントツーポイント接続です(URLなどで表示)。SOAPConnectionFactory SOAPConnection
オブジェクトを作成するためのファクトリです。SOAPElementFactory 非推奨。 - SOAPElementの作成にはjavax.xml.soap.SOAPFactory
を使用してください。SOAPFactory SOAPFactory
は、SOAP XMLツリーに存在するさまざまなオブジェクトを作成するためのファクトリです。SOAPMessage すべてのSOAPメッセージのルート・クラスです。SOAPPart SOAPMessage
オブジェクトのSOAP固有の部分のコンテナです。 -
例外のサマリー 例外 説明 SOAPException SOAP例外が発生したことを通知する例外です。