前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0
SFXSOAPParser
DOM 方式で SOAP メッセージを解析するクラスです。
#include <SFXSOAPParser.hpp>
class SFXSOAPParser : public SFXXMLDOMParser;
SFMTYPEDEFCLASS(SFXSOAPParser)

継承図

SFXSOAPParser クラスの継承図

協調図

SFXSOAPParser クラスの協調図

解説

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

[Note] Simple Object Access Protocol ( SOAP ) の仕様

W3C SOAP 最新情報 : Latest SOAP versions ( SOAP 1.1 と SOAP 1.2 をサポートしています。)

※ SOAP Attachment は実装されていません。また、SOAP Fault は SOAP 1.1 だけをサポートします。

例 735. 解析対象の 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>

例 736. 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 要素を取得します。
SFXXMLNode::DOMNodeListPtr GetBodyEntries( Void )
SOAP メッセージの Body 要素に含まれるすべての子要素を取得します。
SFXXMLElementPtr GetBodyEntry( SFXAnsiStringConstRef local , SFXAnsiStringConstRef uri = SFXAnsiString::EmptyInstance() )
SOAP メッセージの Body 要素の中で、指定した要素を取得します。
SFXXMLElementPtr GetEnvelope( Void )
SOAP メッセージの Envelope 要素を取得します。
SFXXMLElementPtr GetFault( Void )
SOAP メッセージの Fault 要素を取得します。
SFXXMLElementPtr GetFaultActor( Void )
SOAP Fault 要素の faultactor 要素を取得します。
SFXXMLElementPtr GetFaultCode( Void )
SOAP Fault 要素の faultcode 要素を取得します。
SFXXMLElementPtr GetFaultDetail( Void )
SOAP Fault 要素の detail 要素を取得します。
SFXXMLElementPtr GetFaultString( Void )
SOAP Fault 要素の faultstring 要素を取得します。
SFXXMLElementPtr GetHeader( Void )
SOAP メッセージの Header 要素を取得します。
SFXXMLNode::DOMNodeListPtr GetHeaderEntries( Void )
SOAP メッセージの Header 要素に含まれるすべての子要素を取得します。
SFXXMLElementPtr GetHeaderEntry( SFXAnsiStringConstRef local , SFXAnsiStringConstRef uri = SFXAnsiString::EmptyInstance() )
SOAP メッセージの Header 要素の中で、指定した要素を取得します。
SFXXMLElementPtr GetRPCParameter( SFXAnsiStringConstRef local , SFXAnsiStringConstRef uri = SFXAnsiString::EmptyInstance() )
SOAP メッセージの Body 要素の中で、指定したパラメーターと一致する要素を取得します。
SFXXMLElementPtr GetRPCResult( Void )
SOAP メッセージの Body 要素の第 1 子要素の第 1 子要素を取得します。
SFXXMLElementPtr GetRPCStruct( Void )
SOAP メッセージの Body 要素の第 1 子要素を取得します。
SOAP_VERSION GetSoapVersion( Void )
SOAP メッセージのバージョンを取得します。
SFCError Parse( SFBFileSmpConstRef source )
Parse( SFXStreamReaderConstRef source )
Parse( SFXPathConstRef source )
Parse( SFXAnsiStringConstRef source )
SOAP メッセージを読み込み、DOM パーサーを使って解析します。
Void Reset( Void )
すべての内部変数をリセットします。
Bool GetCreateCommentNodes( Void ) (SFXXMLDOMParser から継承)
Comment ノードを生成するかどうかを取得します。
Bool GetDoIndent( Void ) (SFXXMLDOMParser から継承)
文書をインデントするかどうかを取得します。
Bool GetDoNamespaces( Void ) (SFXXMLDOMParser から継承)
名前空間を処理するかどうかを取得します。
Bool GetDoSchema( Void ) (SFXXMLDOMParser から継承)
スキーマを処理するかどうかを取得します。
SFXXMLDocumentPtr GetDocument( Void ) (SFXXMLDOMParser から継承)
Document ノードを取得します。
ACharConstPtr GetErrorInfo( Void ) (SFXXMLDOMParser から継承)
内部で起こったエラー メッセージを取得します。
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 要素を無効にするかどうかを取得します。
Bool GetLoadExternalDTD( Void ) (SFXXMLDOMParser から継承)
外部 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 から継承)
Standalone 宣言を取得します。
Bool GetValidationDTD( Void ) (SFXXMLDOMParser から継承)
DTD で検証するかどうかを取得します。
Bool GetValidationSchema( Void ) (SFXXMLDOMParser から継承)
スキーマで検証するかどうかを取得します。
Void SetCreateCommentNodes( BoolConst create ) (SFXXMLDOMParser から継承)
Comment ノードを生成するかどうかを設定します。
Void SetDoIndent( BoolConst state ) (SFXXMLDOMParser から継承)
文書をインデントするかどうかを設定します。
Void SetDoNamespaces( BoolConst state ) (SFXXMLDOMParser から継承)
名前空間を処理するかどうかを設定します。
Void SetDoSchema( BoolConst state ) (SFXXMLDOMParser から継承)
スキーマを処理するかどうかを設定します。
Void SetGrammar( SFXXMLGrammar::GrammarType grammar ) (SFXXMLDOMParser から継承)
SetGrammar( SFXXMLGrammar::GrammarType grammar ) (SFXXMLDOMParser から継承)
パーサーが使う文法を設定します。
Void SetIgnoreAnnotations( BoolConst state ) (SFXXMLDOMParser から継承)
Annotation 要素を無効にするかどうかを設定します
Void SetLoadExternalDTD( BoolConst state ) (SFXXMLDOMParser から継承)
外部 DTD ファイルをロードするかどうかを設定します。
Void SetSchemaLocation( SFXAnsiStringConstRef name ) (SFXXMLDOMParser から継承)
XSD ファイルを設定します。
Void SetValidationDTD( BoolConst state ) (SFXXMLDOMParser から継承)
DTD で検証するかどうかを設定します。
Void SetValidationSchema( BoolConst state ) (SFXXMLDOMParser から継承)
スキーマで検証するかどうかを設定します。
プロテクト関数
Void SetGrammar( SFXXMLGrammar::GrammarType grammar ) (SFXXMLDOMParser から継承)
SetGrammar( SFXXMLGrammar::GrammarType grammar ) (SFXXMLDOMParser から継承)
パーサーが使う文法を設定します。
SOAP_VERSION
SOAP プロトコルのバージョンです。

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

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

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

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

戻り値

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

参照

SFXXMLNode::DOMNodeList


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

使用例

解析対象の 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());  

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

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

解説

SOAP Fault 要素には、SOAP リクエスト処理中に発生したエラーの内容が返されます。Fault 要素は Body 要素中にひとつだけ存在します。

SOAP Fault 要素は、faultactor 要素、faultcode 要素、faultstring 要素、detail 要素から構成されます。

[Note] SOAP Fault について

Simple Object Access Protocol (SOAP) 1.1 ( W3C ) : SOAP Fault

SOAP Tutorial : SOAP Fault Element

※ SOAP Fault は SOAP 1.1 だけをサポートします。

参照

SFXSOAPRPC::FAULT | SFXSOAPParser::GetFaultActor | SFXSOAPParser::GetFaultCode | SFXSOAPParser::GetFaultDetail | SFXSOAPParser::GetFaultString


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

解説

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

[Note] SOAP Fault について

Simple Object Access Protocol (SOAP) 1.1 ( W3C ) : SOAP Fault

SOAP Tutorial : SOAP Fault Element

※ SOAP Fault は SOAP 1.1 だけをサポートします。

参照

SFXSOAPParser::GetFault | SFXSOAPParser::GetFaultCode | SFXSOAPParser::GetFaultDetail | SFXSOAPParser::GetFaultString


SFXSOAPParser::GetFaultCode
SOAP Fault 要素の faultcode 要素を取得します。
[ public, const ]
SFXXMLElementPtr GetFaultCode(Void);

解説

faultactor 要素には、SOAP Fault code が返されます。 SOAP Fault code は、SOAP レスポンスを受け取ったアプリが SOAP リクエスト中に発生したエラー内容を判断するためのコードです。

[Note] SOAP Fault について

Simple Object Access Protocol (SOAP) 1.1 ( W3C ) : SOAP Fault

SOAP Tutorial : SOAP Fault Element

※ SOAP Fault は SOAP 1.1 だけをサポートします。

参照

SFXSOAPParser::GetFault | SFXSOAPParser::GetFaultActor | SFXSOAPParser::GetFaultDetail | SFXSOAPParser::GetFaultString


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

解説

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

[Note] SOAP Fault について

Simple Object Access Protocol (SOAP) 1.1 ( W3C ) : SOAP Fault

SOAP Tutorial : SOAP Fault Element

※ SOAP Fault は SOAP 1.1 だけをサポートします。

参照

  SFXSOAPParser::GetFault | SFXSOAPParser::GetFaultActor | SFXSOAPParser::GetFaultCode | SFXSOAPParser::GetFaultString


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

解説

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

[Note] SOAP Fault について

Simple Object Access Protocol (SOAP) 1.1 ( W3C ) : SOAP Fault

SOAP Tutorial : SOAP Fault Element

※ SOAP Fault は SOAP 1.1 だけをサポートします。

参照

SFXSOAPParser::GetFault | SFXSOAPParser::GetFaultActor | SFXSOAPParser::GetFaultCode | SFXSOAPParser::GetFaultDetail


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

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

戻り値

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

参照

SFXXMLNode::DOMNodeList


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

SFXSOAPParser::GetRPCParameter
SOAP メッセージの Body 要素の中で、指定したパラメーターと一致する要素を取得します。
[ public, const ]
SFXXMLElementPtr GetRPCParameter(
    SFXAnsiStringConstRef local                                  // 要素の名前
    SFXAnsiStringConstRef uri = SFXAnsiString::EmptyInstance()   // 要素の名前空間 URI
);

使用例

解析対象の XML 文書は SFXSOAPParser クラスの説明で記述されているものです。

SFXSOAPParser soapparser;   // SOAP パーサー

// GetRPCParameter() 関数で 2001 年の価格を取得する
// ここの要素ポインターは 1 番目の "GetLastTradePriceResponse" 要素の 1 番目の子要素 "Price" を指す
SFXXMLElementPtr price = soapparser.GetRPCParameter("Price", "http://example.org/2001/06/quotes");

// 価格を表示する
// price : 34.5
TRACE("price : %s",price->GetText().GetCString());   

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

使用例

解析対象の XML 文書は SFXSOAPParser クラスの説明で記述されているものです。

SFXSOAPParser soapparser;// SOAP パーサー

// Body 要素の第 1 子要素 "Price" を取得する
price = soapparser.GetRPCResult();

// 価格を表示する
 // price : 34.5
TRACE("price : %s",price->GetText().GetCString());  

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

使用例

解析対象の XML 文書は SFXSOAPParser クラスの説明で記述されているものです。

SFXSOAPParser soapparser;   // SOAP パーサー

// Body 要素の第 1 子要素 "Price" を取得する
SFXXMLElementPtr elem = soapparser.GetRPCStruct();

// 価格を表示する
// price : 34.5
TRACE("price : %s",price->GetText().GetCString());   

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

解説

SOAP メッセージのバージョンを取得します。

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

SFXSOAPParser::Parse
SOAP メッセージを読み込み、DOM パーサーを使って解析します。
[ public ]
SFCError Parse(
    SFBFileSmpConstRef source   // 解析する XML のファイル インターフェース
);
[ public ]
SFCError Parse(
    SFXAnsiStringConstRef source   // 解析する XML 文書
);
[ public ]
SFCError Parse(
    SFXPathConstRef source   // 解析する XML ファイル名
);
[ public ]
SFCError Parse(
    SFXStreamReaderConstRef source   // 入力ストリーム
);

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 引数が不正であるとき : SFERR_INVALID_PARAM
  • 解析するファイルが既にオープンしているとき : SFERR_INVALID_STATE
  • メモリ不足のとき : SFERR_NO_MEMORY
  • 失敗したとき : SFERR_FAILED

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 メッセージ ( ファイル、ストリーム、文字列 ) を読み込み、解析する関数です。引数には入力ストリーム、ファイルパス、文字列を渡します。 ファイル パスのデフォルト ディレクトリはアプリのホーム ディレクトリです。

参照

SFCErrorEnum


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

SFXSOAPParser::SOAP_VERSION
SOAP プロトコルのバージョンです。
SOAP_VERSION_1_1  // バージョン 1.1
SOAP_VERSION_1_2  // バージョン 1.2

解説

SOAP プロトコルのバージョンです。SFXSOAP クラスはバージョン 1.1 と 1.2 をサポートしています。ただし、SOAP Attachment は未実装です。

定数 名前空間
SOAP_VERSION_1_1 "http://schemas.xmlsoap.org/soap/envelope/"
SOAP_VERSION_1_2 "http://www.w3.org/2003/05/soap-envelope"