SophiaFramework UNIVERSE 5.3 |
#include <SFXSOAPParser.hpp>
class SFXSOAPParser : public SFXXMLDOMParser;
SFMTYPEDEFCLASS(SFXSOAPParser)
SFXSOAPParser クラスは、 SFXXMLDOMParser クラスを継承し、 DOM 方式で SOAP メッセージ(SOAP Envelope)を解析します。
SOAP メッセージ(SOAP Envelope)について | |
---|---|
SOAP によるオブジェクト間通信でやり取りされるデータ(SOAP メッセージ)は、 プロトコルバインディングヘッダーと SOAP Envelope から構成されます。
プロトコルバインディングヘッダーには、実装するプロトコル毎に定められているヘッダー情報が記述されます。 SOAP Envelope は、 Envelope 要素(<SOAP-ENV:Envelope>)をルート要素(最上位要素)とする XML 文書のことで、 SOAP Header と SOAP Body から構成されます。 SOAP Header と SOAP Body の最上位要素はそれぞれ <SOAP-ENV:Header> と <SOAP-ENV:Body> になります。 つまり、Envelope 要素は、Header 要素(SOAP Header)と Body 要素(SOAP Body)を子要素に持ちます。 SOAP Header には、SOAP メッセージの受信者が SOAP Body に記述された情報をどのサーバーに渡し、 どのように処理するかといった情報が記述されます。SOAP Header は、SOAP Envelope に無くても構いません。 SOAP Body には、実際のメッセージが記され、SOAP Envelope には必須です。 例えば、SOAP-RPC の場合、この部分には Web サービスのメソッド名やそのパラメータの情報が記述されます。 |
Simple Object Access Protocol ( SOAP ) の仕様 | |
---|---|
W3C SOAP 最新情報 : SOAP Version 1.2 Part 0: Primer (Second Edition) ( SOAP 1.1 と SOAP 1.2 をサポートしています。) ※ SOAP Attachment は実装されていません。また、SOAP Fault は SOAP 1.1 だけをサポートします。 |
例 845. 解析対象の SOAP メッセージ ( "soapmessage.xml" )
<?xml version="1.0" encoding="UTF-8"?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" > <env:Header> <SubscriptionInfo xmlns="http://schemas.xmlsoap.org"> <LicenseStatusCode>0</LicenseStatusCode> <LicenseStatus>Valid license key</LicenseStatus> <LicenseActionCode>0</LicenseActionCode> <LicenseAction>Decremented hit count</LicenseAction> <RemainingHits>18</RemainingHits> <Amount>0</Amount> </SubscriptionInfo> </env:Header> <env:Body> <m:GetLastTradePriceResponse env:encodingStyle="http://www.w3.org/2003/05/soap-envelope" xmlns:m="http://example.org/2001/06/quotes"> <Price>34.5</Price> </m:GetLastTradePriceResponse> <m:GetLastTradePriceResponse env:encodingStyle="http://www.w3.org/2003/05/soap-envelope" xmlns:m="http://example.org/2006/06/quotes"> <Price>56.5</Price> </m:GetLastTradePriceResponse> </env:Body> </env:Envelope>
例 846. SOAP メッセージの解析
SFXSOAPParser soapparser; // SOAP パーサー // "soapmessage.xml" ファイルから SOAP メッセージを読み込み、解析する if (soapparser.Parse("soapmessage.xml") != SFERR_NO_ERROR) { // エラー値を表示する TRACE("error id = 0x%x", soapparser.static_catch()); // エラーメッセージを表示する TRACE(soapparser.GetErrorInfo()); } else { // SOAP メッセージ解析完了後の処理 // SOAP メッセージのバージョンを表示する TRACE("soap version : %d", soapparser.GetSoapVersion()); // "soap version : 1" が表示される(SFXSOAPParser::SOAP_VERSION_1_2 なので) // Envelope 要素を取得する SFXXMLElementPtr envelope = soapparser.GetEnvelope(); // Envelope 要素の名前空間を表示する TRACE("envelope version : %s", envelope->GetNamespaceURI()); // "envelope version: http://www.w3.org/2003/05/soap-envelope" が表示される // Header 要素を取得する SFXXMLElementPtr header = soapparser.GetHeader(); // Header 要素の名前空間を表示する TRACE("header version : %s", header->GetNamespaceURI()); // "header version: http://www.w3.org/2003/05/soap-envelope" が表示される // Header 要素のすべての子要素を取得する SFXXMLNode::DOMNodeListPtr list = soapparser.GetHeaderEntries(); // 要素数を表示する TRACE("entry number : %d", list->GetSize()); // "entry number : 1" が表示される(SFXSOAPParser::SOAP_VERSION_1_2) // Header 要素に含まれる "SubscriptionInfo" 要素を取得する SFXXMLElementPtr entry = soapparser.GetHeaderEntry("SubscriptionInfo", "http://schemas.xmlsoap.org"); // "SubscriptionInfo" 要素のすべての子要素を取得する list = entry->GetChildNodes(); // 列挙子を取得する SFXXMLNode::DOMNodeList::Enumerator childEtor = list->GetFirstEnumerator(); while (childEtor.HasNext()) { SFXXMLElementPtr current = static_cast<SFXXMLElementPtr>(childEtor.GetNext()); // 各要素の名前を表示する TRACE("current element name : %s", current->GetName()); // "current element name : LicenseStatusCode" などが表示される // 各要素のテキストを表示する TRACE("current element content : %s", current->GetText().GetCString()); // "current element content : 0" などが表示される } // Body 要素を取得する SFXXMLElementPtr body = soapparser.GetBody(); // Body 要素の名前空間を表示する TRACE("body version : %s", body->GetNamespaceURI()); // "body version : http://www.w3.org/2003/05/soap-envelope" が表示される // Body 要素のすべての子要素を取得する list = soapparser.GetBodyEntries(); // 要素数を表示する TRACE("entry number: %d", list->GetSize()); // "2" が表示される // 列挙子を取得する childEtor = list->GetFirstEnumerator(); while (childEtor.HasNext()) { SFXXMLElementPtr current = static_cast<SFXXMLElementPtr>(childEtor.GetNext()); // 各要素内容を表示する TRACE("current element name : %s", current->GetLocalName()); // "current element name : GetLastTradePriceResponse" などが表示される // 各要素の名前空間を表示する TRACE("current element namespace : %s", current->GetNamespaceURI()); // "current element namespace : http://example.org/2001/06/quotes" などが表示される // 各要素のテキスト(価格)を表示する TRACE("price : %s", current->GetText().GetCString()); // "price : 34.5" などが表示される } }
コンストラクタ/デストラクタ |
---|
SFXSOAPParser( Void ) SFXSOAPParser クラスのコンストラクタです。
|
~SFXSOAPParser( Void ) SFXSOAPParser クラスのデストラクタです。
|
パブリック関数 | |
---|---|
SFXXMLElementPtr |
GetBody( Void ) SOAP メッセージの Body 要素(SOAP Body)を取得します。
|
SFXXMLNode::DOMNodeListPtr |
GetBodyEntries( Void ) SOAP メッセージの Body 要素(SOAP Body)のすべての子要素を取得します。
|
SFXXMLElementPtr |
GetBodyEntry(
SFXAnsiStringConstRef local
, SFXAnsiStringConstRef uri = SFXAnsiString::EmptyInstance()
) SOAP メッセージの Body 要素(SOAP Body)の指定された子要素を取得します。
|
SFXXMLElementPtr |
GetEnvelope( Void ) SOAP メッセージの Envelope 要素(SOAP Envelope)を取得します。
|
SFXXMLElementPtr |
GetFault( Void ) SOAP メッセージの Fault 要素(SOAP Fault)を取得します。
|
SFXXMLElementPtr |
GetFaultActor( Void ) SOAP メッセージの Fault 要素(SOAP Fault)の faultactor 要素を取得します。
|
SFXXMLElementPtr |
GetFaultCode( Void ) SOAP メッセージの Fault 要素(SOAP Fault)の faultcode 要素を取得します。
|
SFXXMLElementPtr |
GetFaultDetail( Void ) SOAP メッセージの Fault 要素(SOAP Fault)の detail 要素を取得します。
|
SFXXMLElementPtr |
GetFaultString( Void ) SOAP メッセージの Fault 要素(SOAP Fault)の faultstring 要素を取得します。
|
SFXXMLElementPtr |
GetHeader( Void ) SOAP メッセージの Header 要素(SOAP Header)を取得します。
|
SFXXMLNode::DOMNodeListPtr |
GetHeaderEntries( Void ) SOAP メッセージの Header 要素(SOAP Header)のすべての子要素を取得します。
|
SFXXMLElementPtr |
GetHeaderEntry(
SFXAnsiStringConstRef local
, SFXAnsiStringConstRef uri = SFXAnsiString::EmptyInstance()
) SOAP メッセージの Header 要素(SOAP Header)の指定された子要素を取得します。
|
SFXXMLElementPtr |
GetRPCParameter(
SFXAnsiStringConstRef local
, SFXAnsiStringConstRef uri = SFXAnsiString::EmptyInstance()
) SOAP メッセージの Body 要素(SOAP Body)の各子要素の第 1 子要素の中から指定されたパラメータと一致する最初の要素を取得します。
|
SFXXMLElementPtr |
GetRPCResult( Void ) SOAP メッセージの Body 要素(SOAP Body)の第 1 子要素の第 1 子要素を取得します。
|
SFXXMLElementPtr |
GetRPCStruct( Void ) SOAP メッセージの Body 要素(SOAP Body)の第 1 子要素を取得します。
|
SOAP_VERSION |
GetSoapVersion( Void ) SOAP メッセージのバージョンを取得します。
|
SFCError |
Parse(
SFBFileSmpConstRef source
) SOAP メッセージを読み込み、DOM パーサーを使用して解析します。
|
SFCError |
Parse(
SFXAnsiStringConstRef source
) SOAP メッセージを読み込み、DOM パーサーを使用して解析します。
|
SFCError |
Parse(
SFXPathConstRef source
) SOAP メッセージを読み込み、DOM パーサーを使用して解析します。
|
SFCError |
Parse(
SFXStreamReaderConstRef source
) SOAP メッセージを読み込み、DOM パーサーを使用して解析します。
|
Void |
Reset( Void ) すべての内部変数をリセットします。
|
Bool |
GetCreateCommentNodes( Void )
(SFXXMLDOMParser から継承)
Comment ノードを生成するかどうかのフラグ値(Comment ノード生成フラグ値)を取得します。
|
Bool |
GetDoIndent( Void )
(SFXXMLDOMParser から継承)
インデント処理するかどうかのフラグ値(インデント処理フラグ値)を取得します。
|
Bool |
GetDoNamespaces( Void )
(SFXXMLDOMParser から継承)
名前空間を処理するかどうかのフラグ値(名前空間処理フラグ値)を取得します。
|
Bool |
GetDoSchema( Void )
(SFXXMLDOMParser から継承)
XML 文書のスキーマを処理するかどうかのフラグ値(スキーマ処理フラグ値)を取得します。
|
SFXXMLDocumentPtr |
GetDocument( Void )
(SFXXMLDOMParser から継承)
Document ノードを取得します。
|
ACharConstPtr |
GetErrorInfo( Void )
(SFXXMLDOMParser から継承)
XML 文書解析中に発生したエラーメッセージを取得します。
|
static SFXXMLElementPtr |
GetFirstChildElement(
SFXXMLNodeConstPtr parent
)
(SFXXMLDOMParser から継承)
指定されたノードの最初の子 Element ノードを取得します。
|
static SFXXMLElementPtr |
GetFirstChildElementNS(
SFXXMLNodeConstPtr parent
, SFXAnsiStringHandleConst elemNames
, SFXAnsiStringConstRef uri
, SInt32 length
)
(SFXXMLDOMParser から継承)
指定されたノードの最初の子 Element ノードを取得します。その Element ノードは、指定された名前空間 URI および要素のローカル名(複数指定可能)と一致する必要があります。
|
Bool |
GetIgnoreAnnotations( Void )
(SFXXMLDOMParser から継承)
【無効】XML スキーマの Annotation 要素の検証を無効にするかどうかのフラグ値(Annotation 要素検証無効フラグ値)を取得します。
|
Bool |
GetLoadExternalDTD( Void )
(SFXXMLDOMParser から継承)
外部 DTD ファイルをロードするかどうかのフラグ値(外部 DTD 読み込みフラグ値)を取得します。
|
static SFXXMLElementPtr |
GetNextSiblingElement(
SFXXMLNodeConstPtr node
)
(SFXXMLDOMParser から継承)
指定されたノードの次の兄弟 Element ノードを取得します。
|
static SFXXMLElementPtr |
GetNextSiblingElementNS(
SFXXMLNodeConstPtr node
, SFXAnsiStringHandleConst elemNames
, SFXAnsiStringConstRef uri
, SInt32 length
)
(SFXXMLDOMParser から継承)
指定されたノードの次の兄弟 Element ノードを取得します。その Element ノードは、指定された名前空間 URI および要素のローカル名(複数指定可能)と一致する必要があります。
|
Bool |
GetStandalone( Void )
(SFXXMLDOMParser から継承)
XML 文書の Standalone 宣言の内容を取得します。
|
Bool |
GetValidationDTD( Void )
(SFXXMLDOMParser から継承)
XML 文書を DTD で検証するかどうかのフラグ値(DTD 検証フラグ値)を取得します。
|
Bool |
GetValidationSchema( Void )
(SFXXMLDOMParser から継承)
XML 文書をスキーマで検証するかどうかのフラグ値(スキーマ検証フラグ値)を取得します。
|
Void |
SetCreateCommentNodes(
BoolConst create
)
(SFXXMLDOMParser から継承)
Comment ノードを生成するかどうかのフラグ値(Comment ノード生成フラグ値)を設定します。
|
Void |
SetDoIndent(
BoolConst state
)
(SFXXMLDOMParser から継承)
インデント処理するかどうかのフラグ値(インデント処理フラグ値)を設定します。
|
Void |
SetDoNamespaces(
BoolConst state
)
(SFXXMLDOMParser から継承)
名前空間を処理するかどうかのフラグ値(名前空間処理フラグ値)を設定します。
|
Void |
SetDoSchema(
BoolConst state
)
(SFXXMLDOMParser から継承)
XML 文書のスキーマを処理するかどうかのフラグ値(スキーマ処理フラグ値)を設定します。
|
Void |
SetGrammar(
SFXXMLGrammar::GrammarType grammar
)
(SFXXMLDOMParser から継承)
XML 文書の記述内容を規定する文法(言語)を設定します。
|
Void |
SetIgnoreAnnotations(
BoolConst state
)
(SFXXMLDOMParser から継承)
【無効】XML スキーマの Annotation 要素の検証を無効にするかどうかのフラグ値(Annotation 要素検証無効フラグ値)を設定します。
|
Void |
SetLoadExternalDTD(
BoolConst state
)
(SFXXMLDOMParser から継承)
外部 DTD ファイルをロードするかどうかのフラグ値(外部 DTD 読み込みフラグ値)を設定します。
|
Void |
SetSchemaLocation(
SFXAnsiStringConstRef name
)
(SFXXMLDOMParser から継承)
XML 文書を検証するための XSD ファイルを設定します。
|
Void |
SetValidationDTD(
BoolConst state
)
(SFXXMLDOMParser から継承)
XML 文書を DTD で検証するかどうかのフラグ値(DTD 検証フラグ値)を設定します。
|
Void |
SetValidationSchema(
BoolConst state
)
(SFXXMLDOMParser から継承)
XML 文書をスキーマで検証するかどうかのフラグ値(スキーマ検証フラグ値)を設定します。
|
型 |
---|
SOAP_VERSION SOAP プロトコルのバージョンです。
|
[ public, explicit ] SFXSOAPParser(Void);
このコンストラクタは、SFXXMLDOMParser::SetDoNamespaces / SFXXMLDOMParser::SetCreateCommentNodes 関数を呼び出して名前空間を処理し、 コメントノードを生成しない設定にします。
[ public ] ~SFXSOAPParser(Void);
[ public, const ] SFXXMLElementPtr GetBody(Void);
SOAP メッセージの Body 要素(Element ノード)
この関数は、SOAP メッセージの Body 要素(SOAP Body)を取得します。
SFXSOAPParser::GetEnvelope | SFXSOAPParser::GetHeader | SFXSOAPParser::GetBodyEntries | SFXSOAPParser::GetBodyEntry
[ public, const ] SFXXMLNode::DOMNodeListPtr GetBodyEntries(Void);
SOAP メッセージの Body 要素のすべての子要素(SFXXMLNode::DOMNodeList)
この関数は、SOAP メッセージの Body 要素(SOAP Body)のすべての子要素を取得します。
SOAP メッセージの Body 要素(SOAP Body)のすべての子要素を SFXXMLNode::DOMNodeList へのポインタとして返します。
子要素がないときは null を返します。
[ public, const ] SFXXMLElementPtr GetBodyEntry( SFXAnsiStringConstRef local // 要素のローカル名 SFXAnsiStringConstRef uri = SFXAnsiString::EmptyInstance() // 要素の名前空間 URI );
SOAP メッセージの Body 要素の指定された子要素(Element ノード)
この関数は、SOAP メッセージの Body 要素(SOAP Body)の指定された子要素を取得します。
local 引数には要素のローカル名、uri 引数には要素の名前空間 URI を指定します。
前提条件 | |
---|---|
この関数を使用するには、 SFXXMLDOMParser::SetDoNamespaces 関数を使用して名前空間を処理する設定にする必要があります。 |
解析対象の XML 文書は SFXSOAPParser クラスの説明で記述されているものです。
SFXSOAPParser soapparser; // SOAP パーサー // GetBodyEntry 関数で最新の価格を取得する // この要素ポインタは 1 番目の "GetLastTradePriceResponse" 要素を指す SFXXMLElementPtr price = soapparser.GetBodyEntry("GetLastTradePriceResponse", "http://example.org/2006/06/quotes"); // 価格を表示する /// price : 56.5 TRACE("price : %s", price->GetText().GetCString());
[ public, const ] SFXXMLElementPtr GetEnvelope(Void);
SOAP メッセージの Envelope 要素(Element ノード)
この関数は、SOAP メッセージの Envelope 要素(SOAP Envelope)を取得します。
[ public, const ] SFXXMLElementPtr GetFault(Void);
SOAP メッセージの Fault 要素(Element ノード)
この関数は、SOAP メッセージの Fault 要素(SOAP Fault)を取得します。
SOAP Fault には、SOAP リクエスト処理中に発生したエラーの内容が返されます。 SOAP Fault は SOAP メッセージの Envelope 要素の子要素(Body 要素)の唯一の子要素として存在します。
SOAP Fault は、faultcode 要素、faultstring 要素、faultactor 要素、detail 要素の順に 4 つの子要素から構成されます。
要素名 | 説明 |
---|---|
faultcode 要素 | [必須]SOAP リクエスト処理中に発生したエラーコードです。 |
faultstring 要素 | [必須]人間が読むためのエラーメッセージです。 |
faultactor 要素 | エラーが発生したサーバーの URI です。 |
faultdetail 要素 | 詳細なエラーメッセージです。 |
faultcode 要素には、以下の何れかの SOAP 違反コード(SOAP Fault Code)が設定されます。
SOAP 違反コード(SOAP Fault Code) | 説明 |
---|---|
VersionMismatch | SOAP Envelope 要素に正しくない名前空間が指定された。 |
MustUnderstand | 必ず処理しなければならない要素(mustUnderstand 属性の値が "1" の SOAP Header 要素)が正常に処理されなかった。 |
Client | クライアントから送られてきたメッセージが正しくないか、情報が不足している(エラーの詳細は detail 要素に記述される)。 |
Server | 上記の何れにも該当しない、或いは、サーバー側でメッセージを処理する過程でエラーが発生した(エラーの詳細は detail 要素に記述される)。 |
SOAP Fault | |
---|---|
Simple Object Access Protocol (SOAP) 1.1 ( W3C ) : SOAP Fault SOAP Tutorial : SOAP Fault Element |
※ SophiaFramework UNIVERSE では、SOAP Fault は SOAP 1.1 だけがサポートされます。
SFXSOAPRPC::FAULT | SFXSOAPParser::GetFaultActor | SFXSOAPParser::GetFaultCode | SFXSOAPParser::GetFaultDetail | SFXSOAPParser::GetFaultString
[ public, const ] SFXXMLElementPtr GetFaultActor(Void);
SOAP Fault 要素の faultactor 要素(Element ノード)
この関数は、SOAP メッセージの Fault 要素(SOAP Fault)の faultactor 要素を取得します。
faultactor 要素には、エラーの発生元 ( URI ) が返されます。
SOAP Fault | |
---|---|
Simple Object Access Protocol (SOAP) 1.1 ( W3C ) : SOAP Fault SOAP Tutorial : SOAP Fault Element |
※ SophiaFramework UNIVERSE では、SOAP Fault は SOAP 1.1 だけがサポートされます。
SFXSOAPParser::GetFault | SFXSOAPParser::GetFaultCode | SFXSOAPParser::GetFaultDetail | SFXSOAPParser::GetFaultString
[ public, const ] SFXXMLElementPtr GetFaultCode(Void);
SOAP Fault 要素の faultcode 要素(Element ノード)
この関数は、SOAP メッセージの Fault 要素(SOAP Fault)の faultcode 要素を取得します。
faultactor 要素には、SOAP Fault code が返されます。 SOAP Fault code は、SOAP レスポンスを受け取ったアプリケーションが SOAP リクエスト中に発生したエラー内容を判断するためのコードです。
faultcode 要素には、以下の何れかのエラーコードが設定されます。
エラーコード | 説明 |
---|---|
VersionMismatch | SOAP Envelope 要素に正しくない名前空間が指定された。 |
MustUnderstand | 必ず処理しなければならない要素(mustUnderstand 属性の値が "1" の SOAP Header 要素)が正常に処理されなかった。 |
Client | クライアントから送られてきたメッセージが正しくないか、情報が不足している(エラーの詳細は detail 要素に記述される)。 |
Server | 上記の何れにも該当しない、或いは、サーバー側でメッセージを処理する過程でエラーが発生した(エラーの詳細は detail 要素に記述される)。 |
SOAP Fault | |
---|---|
Simple Object Access Protocol (SOAP) 1.1 ( W3C ) : SOAP Fault SOAP Tutorial : SOAP Fault Element |
※ SophiaFramework UNIVERSE では、SOAP Fault は SOAP 1.1 だけがサポートされます。
SFXSOAPParser::GetFault | SFXSOAPParser::GetFaultActor | SFXSOAPParser::GetFaultDetail | SFXSOAPParser::GetFaultString
[ public, const ] SFXXMLElementPtr GetFaultDetail(Void);
SOAP Fault 要素の detail 要素(Element ノード)
この関数は、SOAP メッセージの Fault 要素(SOAP Fault)の detail 要素を取得します。
detail 要素には、エラーの内容が返されます。 faultstring 要素と違うのは、 アプリケーションで処理するためのエラーメッセージとして返される点です。
SOAP Fault | |
---|---|
Simple Object Access Protocol (SOAP) 1.1 ( W3C ) : SOAP Fault SOAP Tutorial : SOAP Fault Element |
※ SophiaFramework UNIVERSE では、SOAP Fault は SOAP 1.1 だけがサポートされます。
SFXSOAPParser::GetFault | SFXSOAPParser::GetFaultActor | SFXSOAPParser::GetFaultCode | SFXSOAPParser::GetFaultString
[ public, const ] SFXXMLElementPtr GetFaultString(Void);
SOAP Fault 要素の faultstring 要素(Element ノード)
この関数は、SOAP メッセージの Fault 要素(SOAP Fault)の faultstring 要素を取得します。
faultstring 要素には、エラーの内容が返されます。 detail 要素と違うのは、人間が理解できるエラーメッセージとして返される点です。
SOAP Fault | |
---|---|
Simple Object Access Protocol (SOAP) 1.1 ( W3C ) : SOAP Fault SOAP Tutorial : SOAP Fault Element |
※ SophiaFramework UNIVERSE では、SOAP Fault は SOAP 1.1 だけがサポートされます。
SFXSOAPParser::GetFault | SFXSOAPParser::GetFaultActor | SFXSOAPParser::GetFaultCode | SFXSOAPParser::GetFaultDetail
[ public, const ] SFXXMLElementPtr GetHeader(Void);
SOAP メッセージの Header 要素(Element ノード)
この関数は、SOAP メッセージの Header 要素(SOAP Header)を取得します。
SFXSOAPParser::GetEnvelope | SFXSOAPParser::GetBody | SFXSOAPParser::GetHeaderEntries | SFXSOAPParser::GetHeaderEntry
[ public, const ] SFXXMLNode::DOMNodeListPtr GetHeaderEntries(Void);
SOAP メッセージの Header 要素のすべての子要素
この関数は、SOAP メッセージの Header 要素(SOAP Header)のすべての子要素を取得します。
SOAP メッセージの Header 要素に含まれる、 すべての子要素を SFXXMLNode::DOMNodeList へのポインタとして返します。
子要素がないときは null を返します。
[ public, const ] SFXXMLElementPtr GetHeaderEntry( SFXAnsiStringConstRef local // 要素のローカル名 SFXAnsiStringConstRef uri = SFXAnsiString::EmptyInstance() // 要素の名前空間 URI );
SOAP メッセージの Header 要素の指定された子要素
この関数は、SOAP メッセージの Header 要素(SOAP Header)の指定された子要素を取得します。
local 引数には要素のローカル名、uri 引数には要素の名前空間 URI を指定します。
前提条件 | |
---|---|
この関数を使用するには、 SFXXMLDOMParser::SetDoNamespaces 関数を使用して名前空間を処理する設定にする必要があります。 |
[ public, const ] SFXXMLElementPtr GetRPCParameter( SFXAnsiStringConstRef local // 要素のローカル名 SFXAnsiStringConstRef uri = SFXAnsiString::EmptyInstance() // 要素の名前空間 URI );
SOAP メッセージの Body 要素(SOAP Body)の各子要素の第 1 子要素の中から指定されたパラメータと一致する最初の要素(Element ノード)
この関数は、SOAP メッセージの Body 要素(SOAP Body)の各子要素の第 1 子要素の中から指定されたパラメータと一致する最初の要素を取得します。
local 引数には要素のローカル名、uri 引数には要素の名前空間 URI を指定します。
前提条件 | |
---|---|
この関数を使用するには、 SFXXMLDOMParser::SetDoNamespaces 関数を使用して名前空間を処理する設定にする必要があります。 |
解析対象のSOAP メッセージは、 上にある SFXSOAPParser クラスの説明で記述されているものです。
SFXSOAPParser soapparser; // SOAP パーサー // GetRPCParameter 関数で 2001 年の価格("http://example.org/2001/06/quotes":Price)を取得する // この要素ポインタは 1 番目の "GetLastTradePriceResponse" 要素の 1 番目の子要素 "Price" を指す SFXXMLElementPtr price = soapparser.GetRPCParameter("Price", "http://example.org/2001/06/quotes"); // 価格を表示する // price : 34.5 TRACE("price : %s",price->GetText().GetCString());
[ public, const ] SFXXMLElementPtr GetRPCResult(Void);
SOAP メッセージの Body 要素の第 1 子要素の第 1 子要素(Element ノード)
この関数は、SOAP メッセージの Body 要素(SOAP Body)の第 1 子要素の第 1 子要素を取得します。
解析対象のSOAP メッセージは、 上にある SFXSOAPParser クラスの説明で記述されているものです。
SFXSOAPParser soapparser;// SOAP パーサー // Body 要素の第 1 子要素の第 1 子要素である "Price" 要素を取得する SFXXMLElementPtr price = soapparser.GetRPCResult(); // 価格を表示する // price : 34.5 TRACE("price : %s",price->GetText().GetCString());
[ public, const ] SFXXMLElementPtr GetRPCStruct(Void);
SOAP メッセージの Body 要素の第 1 子要素
この関数は、SOAP メッセージの Body 要素(SOAP Body)の第 1 子要素を取得します。
解析対象のSOAP メッセージは、 上にある SFXSOAPParser クラスの説明で記述されているものです。
SFXSOAPParser soapparser; // SOAP パーサー // Body 要素の第 1 子要素である "m:GetLastTradePriceResponse" 要素を取得する SFXXMLElementPtr elem = soapparser.GetRPCStruct(); // "m:GetLastTradePriceResponse" 要素の第 1 子要素である "Price" 要素を取得する SFXXMLElementPtr price = static_cast<SFXXMLElementPtr>(elem->GetFirstChild()); // 価格を表示する // price : 34.5 TRACE("price : %s",price->GetText().GetCString());
[ public, const ] SOAP_VERSION GetSoapVersion(Void);
SOAP メッセージのバージョン
この関数は、SOAP メッセージのバージョンを取得します。
整数値 | 定義されている定数 |
---|---|
0 | SOAP_VERSION_1_1 |
1 | SOAP_VERSION_1_2 |
-1 | SOAP_VERSION_UNKNOWN |
[ public ] SFCError Parse( SFBFileSmpConstRef source // SOAP メッセージ(ファイル) );
[ public ] SFCError Parse( SFXAnsiStringConstRef source // SOAP メッセージ(文字列) );
[ public ] SFCError Parse( SFXPathConstRef source // SOAP メッセージ(パス) );
[ public ] SFCError Parse( SFXStreamReaderConstRef source // SOAP メッセージ(ストリーム) );
SOAP メッセージの解析後、 static_exception::static_catch 関数により取得できる、その他のエラー値は以下の通りです。
DTD 付き SOAP メッセージの解析結果のエラーコードは以下の通りです。
スキーマ付き SOAP メッセージの解析結果のエラーコードは以下の通りです。
詳細情報: SFCErrorEnum
この関数は、SOAP メッセージ(ファイル、ストリーム、文字列)を読み込み、DOM 方式で解析します。
引数にはストリーム、ファイルパス、文字列を渡します。 ファイルパスのデフォルト ディレクトリはアプリのホームディレクトリです。
注意 | |
---|---|
BREW の制約により、ファイルの絶対パスは 64 文字より小さくなければいけません。 また、携帯端末内のローカルファイルを指定する必要があります(サーバーのファイルは指定できません)。 |
[ public ] Void Reset(Void);
この関数は、この XML パーサーが使用している、 すべての内部変数をリセットします。
SOAP_VERSION_1_1 // バージョン 1.1 SOAP_VERSION_1_2 // バージョン 1.2
SOAP プロトコルのバージョンを表す定数です。
定数 | 名前空間 URI |
---|---|
SOAP_VERSION_1_1 | "http://schemas.xmlsoap.org/soap/envelope/" |
SOAP_VERSION_1_2 | "http://www.w3.org/2003/05/soap-envelope" |
注意 | |
---|---|
SFXSOAPParser クラスはバージョン 1.1 と 1.2 をサポートしています。 但し、SOAP Attachment は未実装です。 |
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |