前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFXSOAPParser
DOM 方式で SOAP メッセージを解析するクラスです。
#include <SFXSOAPParser.hpp>
class SFXSOAPParser : public SFXXMLDOMParser;
SFMTYPEDEFCLASS(SFXSOAPParser)

継承図

SFXSOAPParser クラスの継承図

協調図

SFXSOAPParser クラスの協調図

解説

SFXSOAPParser クラスは、 SFXXMLDOMParser クラスを継承し、 DOM 方式で SOAP メッセージ(SOAP Envelope)を解析します。

[Note] SOAP メッセージ(SOAP Envelope)について

SOAP によるオブジェクト間通信でやり取りされるデータ(SOAP メッセージ)は、 プロトコルバインディングヘッダーと SOAP Envelope から構成されます。

図 279. SOAP メッセージの構造

SOAP メッセージの構造

プロトコルバインディングヘッダーには、実装するプロトコル毎に定められているヘッダー情報が記述されます。

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 サービスのメソッド名やそのパラメータの情報が記述されます。

[Note] 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" などが表示される
    }
}

参照

SFXXMLDOMParser

メンバ

コンストラクタ/デストラクタ
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 プロトコルのバージョンです。

SFXSOAPParser::SFXSOAPParser
SFXSOAPParser クラスのコンストラクタです。
[ public, explicit ]
SFXSOAPParser(Void);

解説

このコンストラクタは、SFXXMLDOMParser::SetDoNamespaces / SFXXMLDOMParser::SetCreateCommentNodes 関数を呼び出して名前空間を処理し、 コメントノードを生成しない設定にします。

参照

SFXXMLDOMParser::SetDoNamespaces | SFXXMLDOMParser::SetCreateCommentNodes


SFXSOAPParser::~SFXSOAPParser
SFXSOAPParser クラスのデストラクタです。
[ public ]
~SFXSOAPParser(Void);

解説

この関数は、この XML パーサーが使用している、 すべての内部変数をリセットします。

[Note] 注意

内部的に SFXSOAPParser::Reset 関数を呼び出します。

参照

SFXSOAPParser::Reset


SFXSOAPParser::GetBody
SOAP メッセージの Body 要素(SOAP Body)を取得します。
[ public, const ]
SFXXMLElementPtr GetBody(Void);

戻り値

SOAP メッセージの Body 要素(Element ノード)

解説

この関数は、SOAP メッセージの Body 要素(SOAP Body)を取得します。

参照

SFXSOAPParser::GetEnvelope | SFXSOAPParser::GetHeader | SFXSOAPParser::GetBodyEntries | SFXSOAPParser::GetBodyEntry


SFXSOAPParser::GetBodyEntries
SOAP メッセージの Body 要素(SOAP Body)のすべての子要素を取得します。
[ public, const ]
SFXXMLNode::DOMNodeListPtr GetBodyEntries(Void);

戻り値

SOAP メッセージの Body 要素のすべての子要素(SFXXMLNode::DOMNodeList

解説

この関数は、SOAP メッセージの Body 要素(SOAP Body)のすべての子要素を取得します。

SOAP メッセージの Body 要素(SOAP Body)のすべての子要素を SFXXMLNode::DOMNodeList へのポインタとして返します。

子要素がないときは null を返します。

参照

SFXXMLNode::DOMNodeList | SFXSOAPParser::GetBody | SFXSOAPParser::GetBodyEntry


SFXSOAPParser::GetBodyEntry
SOAP メッセージの Body 要素(SOAP Body)の指定された子要素を取得します。
[ public, const ]
SFXXMLElementPtr GetBodyEntry(
    SFXAnsiStringConstRef local                                  // 要素のローカル名
    SFXAnsiStringConstRef uri = SFXAnsiString::EmptyInstance()   // 要素の名前空間 URI
);

戻り値

SOAP メッセージの Body 要素の指定された子要素(Element ノード)

解説

この関数は、SOAP メッセージの Body 要素(SOAP Body)の指定された子要素を取得します。

local 引数には要素のローカル名、uri 引数には要素の名前空間 URI を指定します。

[Note] 前提条件

この関数を使用するには、 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());  

参照

SFXXMLDOMParser::SetDoNamespaces | SFXSOAPParser::GetBody | SFXSOAPParser::GetBodyEntries


SFXSOAPParser::GetEnvelope
SOAP メッセージの Envelope 要素(SOAP Envelope)を取得します。
[ public, const ]
SFXXMLElementPtr GetEnvelope(Void);

戻り値

SOAP メッセージの Envelope 要素(Element ノード)

解説

この関数は、SOAP メッセージの Envelope 要素(SOAP Envelope)を取得します。

参照

SFXSOAPParser::GetHeader | SFXSOAPParser::GetBody


SFXSOAPParser::GetFault
SOAP メッセージの Fault 要素(SOAP Fault)を取得します。
[ 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 要素に記述される)。
[Note] 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


SFXSOAPParser::GetFaultActor
SOAP メッセージの Fault 要素(SOAP Fault)の faultactor 要素を取得します。
[ public, const ]
SFXXMLElementPtr GetFaultActor(Void);

戻り値

SOAP Fault 要素の faultactor 要素(Element ノード)

解説

この関数は、SOAP メッセージの Fault 要素(SOAP Fault)の faultactor 要素を取得します。

faultactor 要素には、エラーの発生元 ( URI ) が返されます。

[Note] 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


SFXSOAPParser::GetFaultCode
SOAP メッセージの Fault 要素(SOAP Fault)の faultcode 要素を取得します。
[ 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 要素に記述される)。
[Note] 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


SFXSOAPParser::GetFaultDetail
SOAP メッセージの Fault 要素(SOAP Fault)の detail 要素を取得します。
[ public, const ]
SFXXMLElementPtr GetFaultDetail(Void);

戻り値

SOAP Fault 要素の detail 要素(Element ノード)

解説

この関数は、SOAP メッセージの Fault 要素(SOAP Fault)の detail 要素を取得します。

detail 要素には、エラーの内容が返されます。 faultstring 要素と違うのは、 アプリケーションで処理するためのエラーメッセージとして返される点です。

[Note] 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


SFXSOAPParser::GetFaultString
SOAP メッセージの Fault 要素(SOAP Fault)の faultstring 要素を取得します。
[ public, const ]
SFXXMLElementPtr GetFaultString(Void);

戻り値

SOAP Fault 要素の faultstring 要素(Element ノード)

解説

この関数は、SOAP メッセージの Fault 要素(SOAP Fault)の faultstring 要素を取得します。

faultstring 要素には、エラーの内容が返されます。 detail 要素と違うのは、人間が理解できるエラーメッセージとして返される点です。

[Note] 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


SFXSOAPParser::GetHeader
SOAP メッセージの Header 要素(SOAP Header)を取得します。
[ public, const ]
SFXXMLElementPtr GetHeader(Void);

戻り値

SOAP メッセージの Header 要素(Element ノード)

解説

この関数は、SOAP メッセージの Header 要素(SOAP Header)を取得します。

参照

SFXSOAPParser::GetEnvelope | SFXSOAPParser::GetBody | SFXSOAPParser::GetHeaderEntries | SFXSOAPParser::GetHeaderEntry


SFXSOAPParser::GetHeaderEntries
SOAP メッセージの Header 要素(SOAP Header)のすべての子要素を取得します。
[ public, const ]
SFXXMLNode::DOMNodeListPtr GetHeaderEntries(Void);

戻り値

SOAP メッセージの Header 要素のすべての子要素

解説

この関数は、SOAP メッセージの Header 要素(SOAP Header)のすべての子要素を取得します。

SOAP メッセージの Header 要素に含まれる、 すべての子要素を SFXXMLNode::DOMNodeList へのポインタとして返します。

子要素がないときは null を返します。

参照

SFXXMLNode::DOMNodeList | SFXSOAPParser::GetHeader | SFXSOAPParser::GetHeaderEntry


SFXSOAPParser::GetHeaderEntry
SOAP メッセージの Header 要素(SOAP Header)の指定された子要素を取得します。
[ public, const ]
SFXXMLElementPtr GetHeaderEntry(
    SFXAnsiStringConstRef local                                  // 要素のローカル名
    SFXAnsiStringConstRef uri = SFXAnsiString::EmptyInstance()   // 要素の名前空間 URI
);

戻り値

SOAP メッセージの Header 要素の指定された子要素

解説

この関数は、SOAP メッセージの Header 要素(SOAP Header)の指定された子要素を取得します。

local 引数には要素のローカル名、uri 引数には要素の名前空間 URI を指定します。

[Note] 前提条件

この関数を使用するには、 SFXXMLDOMParser::SetDoNamespaces 関数を使用して名前空間を処理する設定にする必要があります。

参照

SFXXMLDOMParser::SetDoNamespaces | SFXSOAPParser::GetHeader | SFXSOAPParser::GetHeaderEntries


SFXSOAPParser::GetRPCParameter
SOAP メッセージの Body 要素(SOAP Body)の各子要素の第 1 子要素の中から指定されたパラメータと一致する最初の要素を取得します。
[ 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 を指定します。

[Note] 前提条件

この関数を使用するには、 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());   

参照

SFXXMLDOMParser::SetDoNamespaces | SFXSOAPParser::GetRPCStruct | SFXSOAPParser::GetRPCResult


SFXSOAPParser::GetRPCResult
SOAP メッセージの Body 要素(SOAP Body)の第 1 子要素の第 1 子要素を取得します。
[ 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());  

参照

SFXSOAPParser::GetRPCStruct | SFXSOAPParser::GetRPCParameter


SFXSOAPParser::GetRPCStruct
SOAP メッセージの Body 要素(SOAP Body)の第 1 子要素を取得します。
[ 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());   

参照

SFXSOAPParser::GetRPCResult | SFXSOAPParser::GetRPCParameter


SFXSOAPParser::GetSoapVersion
SOAP メッセージのバージョンを取得します。
[ public, const ]
SOAP_VERSION GetSoapVersion(Void);

戻り値

SOAP メッセージのバージョン

解説

この関数は、SOAP メッセージのバージョンを取得します。

整数値 定義されている定数
0 SOAP_VERSION_1_1
1 SOAP_VERSION_1_2
-1 SOAP_VERSION_UNKNOWN

参照

SFXSOAPParser::SOAP_VERSION


SFXSOAPParser::Parse
SOAP メッセージを読み込み、DOM パーサーを使用して解析します。
[ public ]
SFCError Parse(
    SFBFileSmpConstRef source   // SOAP メッセージ(ファイル)
);
[ public ]
SFCError Parse(
    SFXAnsiStringConstRef source   // SOAP メッセージ(文字列)
);
[ public ]
SFCError Parse(
    SFXPathConstRef source   // SOAP メッセージ(パス)
);
[ public ]
SFCError Parse(
    SFXStreamReaderConstRef source   // SOAP メッセージ(ストリーム)
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • パスが不正であるとき、または引数が null のとき: SFERR_INVALID_PARAM
  • 解析するファイルが既に開いているとき: SFERR_INVALID_STATE
  • メモリ不足のとき: SFERR_NO_MEMORY
  • 失敗したとき: SFERR_FAILED

SOAP メッセージの解析後、 static_exception::static_catch 関数により取得できる、その他のエラー値は以下の通りです。

  • Body 要素(SOAP Body)がないとき: SFERR_SOAP_EXPECT_BODY( 0x69A0 )
  • 無効な要素があるとき: SFERR_SOAP_REDUNDANT_ELEMENT( 0x69A3 )
  • version 宣言の XML のバージョンに誤りがあるとき: SFERR_XML_BAD_VERSION( 0x6901 )
  • encoding 宣言のエンコーディングに誤りがあるとき: SFERR_XML_BAD_ENCODING( 0x6902 )
  • standalone 文書宣言で指定した値に誤りがあるとき: SFERR_XML_BAD_STANDALONE( 0x6903 )
  • "<!--"、"-->"、"<[["、"]]>"などの文字列に誤りがあるとき: SFERR_XML_BAD_SEQUENCE( 0x6904 )
  • 属性のデフォルトの型に誤りがあるとき: SFERR_XML_BAD_ATTRDEFTYPE( 0x6905 )
  • 属性の型に誤りがあるとき: SFERR_XML_BAD_ATTRTYPE( 0x6907 )
  • "=" マークがないとき: SFERR_XML_EXPECT_EQUALSIGN( 0x6908 )
  • 属性の名前がないとき: SFERR_XML_EXPECT_ATTRNAME( 0x690A )
  • XML 宣言が完全でないとき: SFERR_XML_EXPECT_DECLSTRING( 0x690C )
  • 要素名がないとき: SFERR_XML_EXPECT_ELEMENTNAME( 0x690D )
  • 処理命令 ( PI ) にターゲット名がないとき: SFERR_XML_EXPECT_PINAME( 0x690E )
  • 空白文字がないとき: SFERR_XML_EXPECT_WHITESPACE( 0x690F )
  • 終了のタグがないとき: SFERR_XML_EXPECT_ENDTAG( 0x6912 )
  • XML 宣言に引用する文字列がないとき: SFERR_XML_EXPECT_QUOTEDSTRING( 0x691D )
  • version 宣言で XML のバージョンが指定されていないとき: SFERR_XML_EXPECT_XMLVERSION( 0x691E )
  • encoding 宣言でエンコーディングが指定されていないとき: SFERR_XML_EXPECT_ENCODING( 0x691F )
  • 開始タグが終了していないとき: SFERR_XML_UNTERMINATED_STARTTAG( 0x692D )
  • 処理命令 ( PI ) が終了していないとき: SFERR_XML_UNTERMINATED_PI( 0x692E )
  • コメントが終了していないとき: SFERR_XML_UNTERMINATED_COMMENT( 0x692F )
  • XML 宣言が終了していないとき: SFERR_XML_UNTERMINATED_XMLDECL( 0x6933 )
  • エンティティ参照が終了していないとき: SFERR_XML_UNTERMINATED_ENTITYREF( 0x6934 )
  • CDATA セクションが終了していないとき: SFERR_XML_UNTERMINATED_CDATA( 0x6935 )
  • XML 1.0 / 1.1 以外のバージョンのとき: SFERR_XML_UNSUPPORT_XMLVERSION( 0x6936 )
  • 文字が有効な範囲にないとき: SFERR_XML_INVALID_CHARREF( 0x6938 )
  • 属性値に誤りがあるとき: SFERR_XML_INVALID_ATTRVALUE( 0x6939 )
  • 要素名に誤りがあるとき: SFERR_XML_INVALID_ELEMENTNAME( 0x693A )
  • エンティティ参照の名前に誤りがあるとき: SFERR_XML_INVALID_ENTITYREFNAME( 0x693B )
  • 要素に誤りがあるとき: SFERR_XML_INVALID_ELEMENT( 0x693C )
  • xml:space 属性に誤りがあるとき: SFERR_XML_INVALID_XMLSPACE( 0x693F )
  • 接頭辞の定義が見つからないとき: SFERR_XML_UNKNOWN_PREFIX( 0x696B )
  • standalone 文書宣言に誤りがあるとき: SFERR_XML_INVALID_INSTANDALONE( 0x6941 )
  • 接頭辞の定義が見つからないとき: SFERR_XML_UNKNOWN_PREFIX( 0x696B )
  • ">" タグが余分にあるとき: SFERR_XML_MORE_ENDTAG( 0x6971 )
  • タグが対称でないとき: SFERR_XML_TAGSTACK_NOTEMPTY( 0x698C )
  • 処理命令ターゲット名が "xml" であるとき: SFERR_XML_PI_START_NO_WITHXML( 0x698D )
  • standalone 文書宣言がデフォルトの設定になっていないとき: SFERR_XML_NODEFAULT_ATTR_FORSTANDALONE( 0x6990 )
  • EOF に誤りがあるとき: SFERR_XML_UNEXPECTED_EOF( 0x6995 )
  • 名前空間付きの XML 文書で、要素の接頭辞で余分な xmlns があるとき: SFERR_XML_REDUNDANT_XMLNS_PREFIX( 0x6997 )

DTD 付き SOAP メッセージの解析結果のエラーコードは以下の通りです。

  • 記法の名前がないとき: SFERR_XML_EXPECT_NOTATIONNAME( 0x6909 )
  • デフォルトの属性がないとき: SFERR_XML_EXPECT_DEFAULTATTR( 0x690B )
  • 属性リスト宣言 ( ATTLIST ) で属性の型がないとき: SFERR_XML_EXPECT_ATTRTYPE( 0x6910 )
  • 属性リスト宣言 ( ATTLIST ) で属性の値がないとき: SFERR_XML_EXPECT_ATTRVALUE( 0x6911 )
  • エンティティ名がないとき: SFERR_XML_EXPECT_PENAME( 0x6913 )
  • エンティティ参照の名前ないとき: SFERR_XML_EXPECT_ENTITYNAME( 0x6914 )
  • 属性または要素の宣言を区切るマーク( "|" )がないとき: SFERR_XML_EXPECT_ENUMPIPE( 0x6915 )
  • 属性の列挙値がないとき: SFERR_XML_EXPECT_ENUMVALUE( 0x6916 )
  • 子要素を区切るマーク ( "," と "|" ) がないとき :SFERR_XML_EXPECT_SEQCHOICE( 0x6917 )
  • 要素の複数出現を表すマーク ( "*" ) がないとき: SFERR_XML_EXPECT_ASTERISK( 0x6918 )
  • 開始マーク ( "("、"<"、 "[" ) が足りないとき: SFERR_XML_EXPECT_OPENSIGN( 0x6919 )
  • 終了マーク ( ")"、">"、 "]" ) が足りないとき: SFERR_XML_EXPECT_ENDSIGN( 0x691A )
  • 解析対象外エンティティの宣言で NDATA キーワードがないとき: SFERR_XML_EXPECT_NDATA( 0x691B )
  • エンティティの値がないとき: SFERR_XML_EXPECT_ENTITYVALUE( 0x691C )
  • 名前空間付きエンティティまたは記法の名前に ":" マークがないとき: SFERR_XML_EXPECT_COLON( 0x6920 )
  • 属性または要素の宣言で "," マークが不足しているとき: SFERR_XML_EXPECT_SEQUENCECOMMA( 0x692B )
  • 要素の宣言が終了していないとき: SFERR_XML_UNTERMINATED_ELEMENTDECL( 0x6930 )
  • エンティティの宣言が終了していないとき: SFERR_XML_UNTERMINATED_ENTITYDECL( 0x6931 )
  • 記法の宣言が終了していないとき: SFERR_XML_UNTERMINATED_NOTATIONDECL( 0x6932 )
  • エンティティの宣言で NDATA に誤りがあるとき: SFERR_XML_INVALID_NDATA( 0x693D )
  • 子要素に誤りがあるとき: SFERR_XML_INVALID_CHILDRENELEM( 0x6940 )
  • エンティティが定義されていないとき: SFERR_XML_UNKNOWN_ENTITY( 0x6969 )
  • 要素の内容モデルが定義されていないとき: SFERR_XML_UNKNOWN_MODELTYPE( 0x696A )
  • 要素の数が足らないとき: SFERR_XML_NOT_ENOUGH_ELEMENT( 0x698A )
  • 要素の定義に #PCDATA と "*" が含まれるとき: SFERR_XML_NOREPINMIXED( 0x698B )
  • DOCTYPE で定義するルート要素に誤りがあるとき: SFERR_XML_ROOTELEM_NOTLIKE_DOCTYPE( 0x698E )
  • 必須となる属性の設定がされていないとき: SFERR_XML_ATTR_NOTPROVIDED( 0x698F )
  • 複数の ID 属性が定義されているとき: SFERR_XML_MULTIPLEID_ATTRS( 0x6991 )
  • 属性の型 ( ID、IDREF、IDREFS、ENTITY、ENTITIES、NMTOKEN、NMTOKENS など ) が定義されていないとき: SFERR_XML_NO_MULTIPLEID_ATTRS( 0x6992 )
  • ID 属性を再利用したとき: SFERR_XML_REUSEDID( 0x6993 )
  • EMPTY 要素が内容を持っているとき: SFERR_XML_EMPTYELEM_HAS_CONTENT( 0x6994 )
  • enumeration 属性の値の解析に失敗したとき: SFERR_XML_FAILED_ENUMLIST( 0x6996 )

スキーマ付き SOAP メッセージの解析結果のエラーコードは以下の通りです。

  • xsi:type 属性に誤りがあるとき: SFERR_XML_BAD_XSITYPE( 0x6906 )
  • include または redefine によって異なる名前空間を参照するときに schemaLocation 属性がないとき: SFERR_XML_EXPECT_SCHEMALOCATION( 0x6921 )
  • 名前または名前の参照がないとき: SFERR_XML_EXPECT_NAMEREF( 0x6922 )
  • simpleContent がないとき: SFERR_XML_EXPECT_SIMPLETYPE_CONTENT( 0x6923 )
  • simpleType の list になっていないとき: SFERR_XML_EXPECT_SIMPLETYPE_INLIST( 0x6924 )
  • simpleType の restriction になっていないとき: SFERR_XML_EXPECT_SIMPLETYPE_INRESTRICTION( 0x6925 )
  • simpleType の union になっていないとき: SFERR_XML_EXPECT_SIMPLETYPE_INUNION( 0x6926 )
  • Atomic simpleType の list になっていないとき: SFERR_XML_EXPECT_ATOMIC_ITEMTYPE( 0x6927 )
  • 基底型でないとき: SFERR_XML_EXPECT_BASETYPE( 0x6928 )
  • 派生型でないとき: SFERR_XML_EXPECT_DERIVED_TYPE( 0x6929 )
  • Datatype が検証さないとき: SFERR_XML_EXPECT_DATATYPEVALIDATOR( 0x692A )
  • whiteSpace 要素の属性値は "collapse" 以外のとき: SFERR_XML_EXPECT_WS_COLLAPSE( 0x692C )
  • サポートされていない Datatype のとき: SFERR_XML_UNSUPPORT_FEATURE( 0x6937 )
  • targetNamespace 属性に誤りがあるとき: SFERR_XML_INVALID_TARGETNAMESPACE 0x693E )
  • import する名前空間に誤りがあるとき: SFERR_XML_INVALID_IMPORTNAMESPACE 0x6942 )
  • 要素に誤りがあるとき: SFERR_XML_INVALID_SCHEMA_ELEMENT( 0x6943 )
  • ルート要素に誤りがあるとき: SFERR_XML_INVALID_SCHEMA_ROOT( 0x6944 )
  • annotation に誤りがあるとき: SFERR_XML_INVALID_ANNOTATION( 0x6945 )
  • simpleContent に誤りがあるとき: SFERR_XML_INVALID_SIMPLECONTENT( 0x6946 )
  • complexContent に誤りがあるとき: SFERR_XML_INVALID_COMPLEXCONTENT( 0x6947 )
  • attributeGroup の内容に誤りがあるとき: SFERR_XML_INVALID_ATTGROUPCONTENT( 0x6948 )
  • attribute の内容に誤りがあるとき: SFERR_XML_INVALID_ATTRIBUTECONTENT( 0x6949 )
  • fixed 属性と default 属性を同時に設定したとき: SFERR_XML_INVALID_DEFAULT_FIXED_ATTI( 0x694A )
  • attribute の名前空間に誤りがあるとき: SFERR_XML_INVALID_ATTRIBUTE_NS( 0x694B )
  • group の内容に誤りがあるとき: SFERR_XML_INVALID_GROUPCONTENT( 0x694C )
  • annotation の内容に誤りがあるとき: SFERR_XML_INVALID_ANNOTATIONCONTENT( 0x694D )
  • simpleType の内容に誤りがあるとき: SFERR_XML_INVALID_SIMPLETYPECONTENT( 0x694E )
  • list の内容に誤りがあるとき: SFERR_XML_INVALID_LISTCONTENT( 0x694F )
  • restriction の内容に誤りがあるとき: SFERR_XML_INVALID_RESTRICTIONCONTENT( 0x6950 )
  • union の内容に誤りがあるとき: SFERR_XML_INVALID_UNIONCONTENT( 0x6951 )
  • redefine が重複しているとき: SFERR_XML_INVALID_REDEFINE( 0x6952 )
  • redefine する simpleType に誤りがあるとき: SFERR_XML_INVALID_REDEFINE_SIMPLETYPE( 0x6953 )
  • redefine する simpleType の基底型に誤りがあるとき: SFERR_XML_INVALID_REDEFINE_SIMPLETYPEBASE( 0x6954 )
  • redefine する complexType に誤りがあるとき: SFERR_XML_INVALID_REDEFINE_COMPLEXTYPE( 0x6955 )
  • redefine する complexType の基底型に誤りがあるとき: SFERR_XML_INVALID_REDEFINE_COMPLEXTYPEBASE( 0x6956 )
  • redefine する group の範囲に誤りがあるとき: SFERR_XML_INVALID_REDEFINE_GROUP_MINMAX( 0x6957 )
  • redefine できないとき: SFERR_XML_INVALID_REDEFINE_CHILD( 0x6958 )
  • complexType に誤りがあるとき: SFERR_XML_INVALID_COMPLEXTYPEINFO( 0x6959 )
  • simpleContent の基底型に誤りがあるとき: SFERR_XML_INVALID_SIMPLECONTENT_BASE( 0x695A )
  • complexType の基底型に誤りがあるとき: SFERR_XML_INVALID_COMPLEXTYPE_BASE( 0x695B )
  • complexContent の子要素に誤りがあるとき: SFERR_XML_INVALID_CHILD_COMPLEXCONTENT( 0x695C )
  • 要素に fixed 属性と default 属性を同時に設定したとき: SFERR_XML_INVALID_DEFAULT_FIXED_ELEMENT( 0x695D )
  • substitutionGroup に誤りがあるとき: SFERR_XML_INVALID_SUBSGROUP( 0x695E )
  • 名前空間の参照に誤りがあるとき: SFERR_XML_INVALID_NSREFERENCE( 0x695F )
  • all の内容に誤りがあるとき: SFERR_XML_INVALID_ALLCONTENT( 0x6960 )
  • データの範囲に誤りがあるとき: SFERR_XML_INVALID_MIN_MAX_OCCURS( 0x6961 )
  • complexType の子要素の型に誤りがあるとき: SFERR_XML_INVALID_CHILD_COMPLEXTYPE( 0x6962 )
  • anyAttribute の内容に誤りがあるとき: SFERR_XML_INVALID_ANYATTRIBUTECONTENT( 0x6963 )
  • simpleContent に子要素があるとき: SFERR_XML_INVALID_CHILD_SIMPLECONTENT( 0x6964 )
  • simpleType に子要素があるとき: SFERR_XML_INVALID_SIMPLETYPE_HAS_CHILD( 0x6965 )
  • fixed 属性に誤りがあるとき: SFERR_XML_INVALID_FIXED_VALUE( 0x6966 )
  • block 属性に誤りがあるとき: SFERR_XML_INVALID_BLOCK_VALUE( 0x6967 )
  • final 属性に誤りがあるとき: SFERR_XML_INVALID_FINAL_VALUE( 0x6968 )
  • complexType が定義されていないとき: SFERR_XML_UNKNOWN_COMPLEXTYPE( 0x696C )
  • simpleType が定義されていないとき: SFERR_XML_UNKNOWN_SIMPLETYPE( 0x696D )
  • include する名前空間と include される名前空間に誤りがあるとき: SFERR_XML_DIFFERENCE_INCLUDE_NS( 0x696E )
  • import する名前空間と import される名前空間に誤りがあるとき: SFERR_XML_DIFFERENCE_IMPORT_NS( 0x696F )
  • redefine する名前空間と redefine される名前空間に誤りがあるとき: SFERR_XML_DIFFERENCE_REDEFINE_NS( 0x6970 )
  • DTD 付きの XML 文書、または要素数が定義されたものより余分にあるとき: SFERR_XML_MORE_ELEMENT( 0x6972 )
  • 複数の complexType の名前が定義されているとき: SFERR_XML_MORE_COMPLEXTYPE_NAME( 0x6973 )
  • 複数の simpleType の名前が定義されているとき: SFERR_XML_MORE_SIMPLEYPE_NAME( 0x6974 )
  • 複数の attribute の参照の内容が定義されているとき: SFERR_XML_MORE_ATTRIBUTEREF_CONTENT( 0x6975 )
  • default 属性は use 属性が optional 以外で設定されているとき: SFERR_XML_NOT_OPTIONAL_DEFAULT_ATTI( 0x6976 )
  • simpleType が見つからないとき: SFERR_XML_NOT_FIND_SIMPLETYPE( 0x6977 )
  • redefine する宣言が見つからないとき: SFERR_XML_NOT_FIND_REDEFINE_DECLARATION( 0x6978 )
  • type 属性が見つからないとき: SFERR_XML_NOT_FIND_TYPE( 0x6979 )
  • 要素の参照が見つからないとき: SFERR_XML_NOT_FIND_REF_ELEMENT( 0x697A )
  • スキーマ宣言が見つからないとき: SFERR_XML_NOT_FIND_DECLARATION( 0x697B )
  • attribute の定義が見つからないとき: SFERR_XML_NOT_FIND_ATTRIBUTE( 0x697C )
  • 基底型の定義が見つからないとき: SFERR_XML_NOT_FIND_BASETYPE( 0x697D )
  • type 属性の定義が重複しているとき: SFERR_XML_DUPLICATE_TYPE( 0x697E )
  • 要素の宣言が重複しているとき: SFERR_XML_DUPLICATE_ELEMENT_DECLARATION( 0x697F )
  • attribute の参照が重複しているとき: SFERR_XML_DUPLICATE_REFATTRIBUTE( 0x6980 )
  • facet の定義が重複しているとき: SFERR_XML_DUPLICATE_FACET( 0x6981 )
  • attribute の定義が重複しているとき: SFERR_XML_REPEATED_ATTRIBUTE( 0x6982 )
  • substitution の定義が重複してるとき: SFERR_XML_REPEATED_SUBSTITUTION( 0x6983 )
  • extension の定義が重複しているとき: SFERR_XML_REPEATED_EXTENSION( 0x6984 )
  • restriction の定義が重複しているとき: SFERR_XML_REPEATED_RESTRICTION( 0x6985 )
  • union の定義が重複しているとき: SFERR_XML_REPEATED_UNION( 0x6986 )
  • list の定義が重複しているとき: SFERR_XML_REPEATED_LIST( 0x6987 )
  • 要素を空要素にしようとしたとき: SFERR_XML_NILL_NOT_ALLOWED( 0x6988 )
  • 参照する内容が存在しないとき: SFERR_XML_NO_CONTENT_FOR_REF( 0x6989 )
  • group の redefine が重複しているとき: SFERR_XML_REDEFINEREF_COUNT( 0x6998 )
  • attributeGroup の redefine が重複しているとき: SFERR_XML_ATTFROUPREF_COUNT( 0x6999 )
  • AnonymousType の要素が定義されていないとき: SFERR_XML_ELEMENT_WITH_ANONYMOUSTYPE( 0x699A )
  • データ型が循環定義されているとき: SFERR_XML_CIRCULAR_DEFINITION( 0x699B )
  • all 要素の子要素以外の要素が含まれているとき: SFERR_XML_ALLCONTENT_LIMITED( 0x699C )
  • abstractType が定義されているとき: SFERR_XML_ABSTRACT_TYPE( 0x699D )
  • ルート要素で他の要素を参照しようとしたとき: SFERR_XML_TOPELEMENT_INCLUDE_REF( 0x699E )

詳細情報: SFCErrorEnum

解説

この関数は、SOAP メッセージ(ファイル、ストリーム、文字列)を読み込み、DOM 方式で解析します。

引数にはストリーム、ファイルパス、文字列を渡します。 ファイルパスのデフォルト ディレクトリはアプリのホームディレクトリです。

[Caution] 注意

BREW の制約により、ファイルの絶対パスは 64 文字より小さくなければいけません。

また、携帯端末内のローカルファイルを指定する必要があります(サーバーのファイルは指定できません)。

参照

static_exception::static_catch | SFCErrorEnum


SFXSOAPParser::Reset
すべての内部変数をリセットします。
[ public ]
Void Reset(Void);

解説

この関数は、この XML パーサーが使用している、 すべての内部変数をリセットします。

参照

SFXSOAPParser::~SFXSOAPParser


SFXSOAPParser::SOAP_VERSION
SOAP プロトコルのバージョンです。
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"
[Note] 注意

SFXSOAPParser クラスはバージョン 1.1 と 1.2 をサポートしています。 但し、SOAP Attachment は未実装です。

参照

SFXSOAPWriter::SetEnvelope | SFXSOAPParser::GetSoapVersion