前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFXXMLSAXParser
[XML] SAX 方式で XML 文書を解析するためのクラスです。
#include <SFXXMLSAXParser.hpp>
class SFXXMLSAXParser : public static_exception< SFCError >;
SFMTYPEDEFCLASS(SFXXMLSAXParser)

継承図

SFXXMLSAXParser クラスの継承図

協調図

SFXXMLSAXParser クラスの協調図

解説

SAX パーサー(SFXXMLSAXParser)では、 XML 文書を先頭から順に読み込み、 要素や CDATA セクションの開始や終了を検出する度にイベントを発生します。 それらのイベントは、SFXXMLDefaultHandler クラスを継承するクラスの然るべきハンドラ関数に通知されて処理されます。

イベントの順序は、XML 文書に含まれる情報の内容と一致します。 たとえば、ある要素の内容(文字データ、処理命令、サブ要素など)は、 StartElement イベントと EndElement イベントの間に順番に並べられます。

SAX パーサー(SFXXMLSAXParser)を利用するには、 SFXXMLDefaultHandler クラスを継承するクラスを実装して、 SFXXMLSAXParser::SetDefaultHandler 関数を使用して SAX パーサー(SFXXMLSAXParser)に登録する必要があります。

SAX パーサー(SFXXMLSAXParser)は、 DOM パーサー(SFXXMLDOMParser)よりも少ないメモリで速く解析できます。

[Caution] 仕様上の制約

解析の対象となるファイルは、携帯端末のローカルファイルである必要があります(サーバーのファイルを直接指定することはできません)。

エンティティ参照については、エンティティの実体に置き換えられません。

[Note] SAX ( Simple API for XML )

Simple API for XML にて SAX に関する最新情報を入手できます。

例 861. SAX パーサー を使用して XML 文書を解析する方法

// SAX パーサーのハンドラ クラス
class MyXMLHandler : public SFXXMLDefaultHandler {
public:
   // 各ハンドラの定義
   ...
};

SFCError error;             // エラー値
SFXXMLSAXParser parser;     // SAX パーサー
MyXMLHandler handler;       // SAX パーサーのハンドラ

// SAX パーサーにハンドラを設定する
parser.SetDefaultHandler(&handler);

// SAX パーサーで XML 文書を解析する
error = parser.Parse(SFXPath("/file.xml"));

参照

SFXXMLDefaultHandler | SFXXMLDOMParser

メンバ

コンストラクタ/デストラクタ
SFXXMLSAXParser( Void )
SFXXMLSAXParser クラスのコンストラクタです。
~SFXXMLSAXParser( Void )
SFXXMLSAXParser クラスのデストラクタです。
パブリック関数
Bool GetDoIndent( Void )
インデント処理するかどうかのフラグ値(インデントフラグ値)を取得します。
Bool GetDoNamespaces( Void )
名前空間を処理するかどうかのフラグ値(名前空間処理フラグ値)を取得します。
Bool GetDoSchema( Void )
XML 文書のスキーマを処理するかどうかのフラグ値(スキーマ処理フラグ値)を取得します。
Bool GetFeature( SFXAnsiStringConstRef name )
指定された機能(Feature)の値を取得します。
Bool GetIgnoreAnnotations( Void )
【無効】XML スキーマの Annotation 要素の検証を無効にするかどうかのフラグ値(Annotation 要素検証無効フラグ値)を取得します。
Bool GetLoadExternalDTD( Void )
外部 DTD ファイルをロードするかどうかのフラグ値(外部 DTD 読み込みフラグ値)を取得します。
VoidPtr GetProperty( SFXAnsiStringConstRef name )
指定されたプロパティ(Property)の値を取得します。
Bool GetStandalone( Void )
XML 文書の Standalone 宣言の内容を取得します。
Bool GetValidationDTD( Void )
XML 文書を DTD で検証するかどうかのフラグ値(DTD 検証フラグ値)を取得します。
Bool GetValidationSchema( Void )
XML 文書をスキーマで検証するかどうかのフラグ値(スキーマ検証フラグ値)を取得します。
SFCError Parse( SFBFileSmpConstRef source )
XML 文書ファイルを読み込み、SAX パーサーを使用して解析します。
SFCError Parse( SFXAnsiStringConstRef source )
XML 文書ファイルを読み込み、SAX パーサーを使用して解析します。
SFCError Parse( SFXPathConstRef source )
XML 文書ファイルを読み込み、SAX パーサーを使用して解析します。
SFCError Parse( SFXStreamReaderConstRef source )
XML 文書ファイルを読み込み、SAX パーサーを使用して解析します。
Void Reset( Void )
すべての内部変数をリセットします。
Void SetDefaultHandler( SFXXMLDefaultHandlerPtr handler )
イベントを通知するハンドラを設定します。
Void SetDoIndent( BoolConst state )
インデント処理するかどうかのフラグ値(インデント処理フラグ値)を設定します。
Void SetDoNamespaces( BoolConst state )
名前空間を処理するかどうかのフラグ値(名前空間処理フラグ値)を設定します。
Void SetDoSchema( BoolConst state )
XML 文書のスキーマを処理するかどうかのフラグ値(スキーマ処理フラグ値)を設定します。
Void SetFeature( SFXAnsiStringConstRef name , BoolConst value )
指定された機能(Feature)の値を設定します。
Void SetGrammar( SFXXMLGrammar::GrammarType grammar )
XML ドキュメントの記述内容を規定する文法(言語)を設定します。
Void SetIgnoreAnnotations( BoolConst state )
【無効】XML スキーマの Annotation 要素の検証を無効にするかどうかのフラグ値(Annotation 要素検証無効フラグ値)を設定します。
Void SetLoadExternalDTD( BoolConst state )
外部 DTD ファイルをロードするかどうかのフラグ値(外部 DTD 読み込みフラグ値)を設定します。
Void SetProperty( SFXAnsiStringConstRef name , VoidConstPtr value )
指定されたプロパティ(Property)の値を設定します。
Void SetSchemaLocation( SFXAnsiStringConstRef name )
XML 文書を検証するための XSD ファイルを設定します。
Void SetValidationDTD( BoolConst state )
XML 文書を DTD で検証するかどうかのフラグ値(DTD 検証フラグ値)を設定します。
Void SetValidationSchema( BoolConst state )
XML 文書をスキーマで検証するかどうかのフラグ値(スキーマ検証フラグ値)を設定します。

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

解説

このコンストラクタは、この XML パーサーの各種初期設定を行います。


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

解説

このデストラクタは、SFXXMLSAXParser::Reset 関数を呼び出します。

参照

SFXXMLSAXParser::Reset


SFXXMLSAXParser::GetDoIndent
インデント処理するかどうかのフラグ値(インデントフラグ値)を取得します。
[ public, const ]
Bool GetDoIndent(Void);

戻り値

インデント処理フラグ値

解説

この関数は、インデント処理するかどうかのフラグ値(インデント処理フラグ値)を取得します。

[Note] 注意

このフラグを ON(true)に設定すると、 XML 文書を処理するときに、 XML プロローグ、ルート要素、コメントと CDATA セクションの内部を除く各行について、 先頭タグの前と前行の末尾の空白部分をテキストを読み込むと、 インデント処理用に IgnorableWhitespace() ハンドラが起動されます。

参照

SFXXMLSAXParser::SetDoIndent


SFXXMLSAXParser::GetDoNamespaces
名前空間を処理するかどうかのフラグ値(名前空間処理フラグ値)を取得します。
[ public, const ]
Bool GetDoNamespaces(Void);

戻り値

名前空間処理フラグ値

解説

この関数は、名前空間を処理するかどうかのフラグ値(名前空間処理フラグ値)を取得します。

[Note] 注意

このフラグを ON(true)に設定すると、 XML 文書を解析するときに、 要素のハンドラに要素やその属性の名前空間 URI も渡されます。

参照

SFXXMLSAXParser::SetDoNamespaces


SFXXMLSAXParser::GetDoSchema
XML 文書のスキーマを処理するかどうかのフラグ値(スキーマ処理フラグ値)を取得します。
[ public, const ]
Bool GetDoSchema(Void);

戻り値

スキーマ処理フラグ値

解説

この関数は、この XML パーサーが XML 文書のスキーマを処理するかどうかのフラグ値(スキーマ処理フラグ値)を取得します。

参照

SFXXMLSAXParser::SetDoSchema


SFXXMLSAXParser::GetFeature
指定された機能(Feature)の値を取得します。
[ public, const ]
Bool GetFeature(
    SFXAnsiStringConstRef name   // 機能名(完全修飾 URI)
);

戻り値

指定された機能(Feature)の値

解説

この関数は、指定された機能(Feature)の値を取得します。

サポートされる機能(Feature)は以下の 3 つです。

  • http://xml.org/sax/features/namespaces : 名前空間を処理するかどうか(SFXXMLSAXParser::SetDoNamespaces 関数と同等です)
  • http://xml.org/sax/features/validation : XML 文書をスキーマで検証するかどうか(SFXXMLSAXParser::SetValidationSchema 関数と同等です)
  • http://xml.org/sax/features/namespace-prefixes : 名前空間接頭辞を通知するかどうか (true に設定すると、名前空間宣言で用いられているオリジナルのプリフィックス名と属性 を通知します。false の場合、通知しません。)
[Note] 機能( Feature )

SAX : Features and Properties

Apache XML : Parser Features

使用例

XML 文書をスキーマで検証するように設定します。

SFXXMLSAXParser saxparser;  // SAX パーサー
SFXAnsiStringConstRef schema_validation("http://xml.org/sax/features/validation"); // 機能名( 完全修飾 URI )


if(!saxparser.GetFeature(schema_validation)
{
    // XML 文書をスキーマで検証する設定になっていないとき

    // XML 文書をスキーマで検証する
    saxparser.SetFeature(schema_validation, true );    
}

参照

SFXXMLSAXParser::SetFeature


SFXXMLSAXParser::GetIgnoreAnnotations
【無効】XML スキーマの Annotation 要素の検証を無効にするかどうかのフラグ値(Annotation 要素検証無効フラグ値)を取得します。
[ public, const ]
Bool GetIgnoreAnnotations(Void);

戻り値

Annotation 要素検証無効フラグ値

解説

この関数は、XML スキーマの Annotation 要素の検証を無効にするかどうかのフラグ値(Annotation 要素検証無効フラグ値)を取得します。

[Caution] 注意

現バージョンでは、Annotation 要素検証無効フラグ値を OFF にしても検証は行われません(このフラグは無効です)。

参照

SFXXMLSAXParser::SetIgnoreAnnotations


SFXXMLSAXParser::GetLoadExternalDTD
外部 DTD ファイルをロードするかどうかのフラグ値(外部 DTD 読み込みフラグ値)を取得します。
[ public, const ]
Bool GetLoadExternalDTD(Void);

戻り値

外部 DTD 読み込みフラグ値

解説

この関数は、この XML パーサーが XML 文書内に指定された、 外部 DTD ファイルをロードするかどうかのフラグ値(外部 DTD 読み込みフラグ値)を取得します。

参照

SFXXMLSAXParser::SetLoadExternalDTD


SFXXMLSAXParser::GetProperty
指定されたプロパティ(Property)の値を取得します。
[ public, const ]
VoidPtr GetProperty(
    SFXAnsiStringConstRef name   // プロパティ名
);

戻り値

指定されたプロパティ(Property)の値

解説

この関数は、指定されたプロパティ(Property)の値を取得します。

サポートされるプロパティ(Property)は以下の 1 つです。

  • default-handler: SAX パーサーのイベントハンドラ
[Note] プロパティ( Property )

SAX : Features and Properties

使用例

// MySAXHandler1: SAX パーサーのハンドラ クラス
class MySAXHandler1 : public SFXXMLDefaultHandler {
public:
   // 各ハンドラの定義
   ...
};

// MySAXHandler2: SAX パーサーのハンドラ クラス
class MySAXHandler2 : public SFXXMLDefaultHandler {
public:
   // 各ハンドラの定義
   ...
};

SFXXMLSAXParser saxparser;   // SAX パーサー
MySAXHandler1 saxhandler1;   // SAX パーサーのハンドラ
MySAXHandler2 saxhandler2;   // SAX パーサーのハンドラ
SFXAnsiStringConstRef property("default-handler");
VoidPtr voidptr;

// saxhandler1 を SAX パーサーのハンドラに設定する
saxparser.SetDefaultHandler(&saxhandler1);

saxparser.Parse("file.xml"); // saxhandler1 で XML 文書を解析する

voidptr = saxparser.GetProperty(property); // プロパティに設定されている SAX パーサーのハンドラ saxhandler1 を取得する

if( voidptr == &saxhandler1 ){
    saxparser.SetProperty(property, &saxhandler2);  // saxhandler2 を SAX パーサーのハンドラに設定する
}

saxparser.Parse("file.xml"); // saxhandler2 で XML 文書を解析する

参照

SFXXMLSAXParser::SetProperty


SFXXMLSAXParser::GetStandalone
XML 文書の Standalone 宣言の内容を取得します。
[ public, const ]
Bool GetStandalone(Void);

戻り値

XML 文書の Standalone 宣言の内容

解説

この関数は、XML 文書の Standalone 宣言の内容を取得します。


SFXXMLSAXParser::GetValidationDTD
XML 文書を DTD で検証するかどうかのフラグ値(DTD 検証フラグ値)を取得します。
[ public, const ]
Bool GetValidationDTD(Void);

戻り値

DTD 検証フラグ値

解説

この関数は、この XML パーサーが XML 文書を DTD で検証するかどうかのフラグ値(DTD 検証フラグ値)を取得します。

参照

SFXXMLSAXParser::SetValidationDTD


SFXXMLSAXParser::GetValidationSchema
XML 文書をスキーマで検証するかどうかのフラグ値(スキーマ検証フラグ値)を取得します。
[ public, const ]
Bool GetValidationSchema(Void);

戻り値

スキーマ検証フラグ値

解説

この関数は、この XML パーサーが XML 文書をスキーマで検証するかどうかのフラグ値(スキーマ検証フラグ値)を取得します。

参照

SFXXMLSAXParser::SetValidationSchema


SFXXMLSAXParser::Parse
XML 文書ファイルを読み込み、SAX パーサーを使用して解析します。
[ 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
  • パスが不正であるとき、または引数が null のとき: SFERR_INVALID_PARAM
  • 解析するファイルが既に開いているとき: SFERR_INVALID_STATE
  • メモリ不足のとき: SFERR_NO_MEMORY
  • 失敗したとき: SFERR_FAILED

XML 文書の解析後、 static_exception::static_catch 関数により取得できる、その他のエラー値は以下の通りです。

  • 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_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 付き XML 文書の解析結果のエラーコードは以下の通りです。

  • 記法の名前がないとき: 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 )
  • 空要素が内容を持っているとき: SFERR_XML_EMPTYELEM_HAS_CONTENT( 0x6994 )
  • enumeration 属性の値の解析に失敗したとき: SFERR_XML_FAILED_ENUMLIST( 0x6996 )

スキーマ付き XML 文書の解析結果のエラーコードは以下の通りです。

  • 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

解説

この関数は、XML 文書(ファイル、ストリーム、文字列)を読み込み、SAX 方式で解析します。

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

[Caution] 注意

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

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

参照

static_exception::static_catch | SFCErrorEnum


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

解説

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


SFXXMLSAXParser::SetDefaultHandler
イベントを通知するハンドラを設定します。
[ public ]
Void SetDefaultHandler(
    SFXXMLDefaultHandlerPtr handler   // ハンドラ
);

解説

この関数は、この XML パーサーが解析時しているときに発生するイベントを通知するハンドラを設定します。

SFXXMLDefaultHandler クラスを継承して作成したハンドラクラスを設定します。

参照

SFXXMLDefaultHandler


SFXXMLSAXParser::SetDoIndent
インデント処理するかどうかのフラグ値(インデント処理フラグ値)を設定します。
[ public ]
Void SetDoIndent(
    BoolConst state   // 文書をインデントするかどうか
);

解説

この関数は、インデント処理するかどうかのフラグ値(インデント処理フラグ値)を設定します。

デフォルト値: OFF(false)[デフォルトの設定では、インデント処理されません。]

[Note] 注意

このフラグを ON(true)に設定すると、 XML 文書を処理するときに、 XML プロローグ、ルート要素、コメントと CDATA セクションの内部を除く各行について、 先頭タグの前と前行の末尾の空白部分をテキストとするインデント処理用に IgnorableWhitespace() ハンドラが起動されます。

参照

SFXXMLSAXParser::GetDoIndent


SFXXMLSAXParser::SetDoNamespaces
名前空間を処理するかどうかのフラグ値(名前空間処理フラグ値)を設定します。
[ public ]
Void SetDoNamespaces(
    BoolConst state   // 名前空間を処理するかどうか
);

解説

この関数は、名前空間を処理するかどうかのフラグ値(名前空間処理フラグ値)を設定します。

デフォルト値: OFF(false)[デフォルトの設定では、名前空間は処理されません。]

[Note] 注意

SFXXMLSAXParser::SetDoSchema 関数によりスキーマ処理フラグを ON に設定する場合は、 この関数を呼び出して名前空間処理フラグも ON にする必要があります。

[Note] 注意

このフラグを ON(true)に設定すると、 要素を読み込んだときに起動されるハンドラに要素やその属性の名前空間 URI も渡されます。

参照

SFXXMLSAXParser::GetDoNamespaces | SFXXMLSAXParser::SetDoSchema


SFXXMLSAXParser::SetDoSchema
XML 文書のスキーマを処理するかどうかのフラグ値(スキーマ処理フラグ値)を設定します。
[ public ]
Void SetDoSchema(
    BoolConst state   // スキーマを処理するかどうか
);

解説

この関数は、この XML パーサーが XML 文書のスキーマを処理するかどうかのフラグ値(スキーマ処理フラグ値)を設定します。

デフォルト値: OFF(false)[デフォルトの設定では、スキーマは処理されません。]

[Note] 注意

XML 文書のスキーマを処理するには、 SFXXMLSAXParser::SetDoNamespaces 関数を呼び出して名前空間処理フラグを ON にする必要があります。

[Note] 注意

XML 文書をスキーマで検証するには、以下の設定も必要です。

  1. SFXXMLSAXParser::SetGrammar 関数を呼び出して文法を SFXXMLGrammar::GRAMMAR_SCHEMA に設定します。
  2. SFXXMLSAXParser::SetDoNamespaces 関数を呼び出して名前空間処理フラグを ON に設定します。
  3. SFXXMLSAXParser::SetValidationSchema 関数を呼び出してスキーマ検証フラグを ON に設定します。
  4. SFXXMLSAXParser::SetSchemaLocation 関数を呼び出して XSD ファイルを設定します。

参照

SFXXMLSAXParser::GetDoSchema | SFXXMLGrammar::GrammarType | SFXXMLSAXParser::SetDoNamespaces | SFXXMLSAXParser::SetValidationSchema | SFXXMLSAXParser::SetSchemaLocation


SFXXMLSAXParser::SetFeature
指定された機能(Feature)の値を設定します。
[ public ]
Void SetFeature(
    SFXAnsiStringConstRef name   // 機能名(完全修飾 URI)
    BoolConst value              // 機能の値
);

解説

この関数は、指定された機能(Feature)の値を設定します。

サポートされる機能(Feature)は以下の 3 つです。

  • http://xml.org/sax/features/namespaces : 名前空間を処理するかどうか(SFXXMLSAXParser::SetDoNamespaces 関数と同等です)
  • http://xml.org/sax/features/validation : XML 文書をスキーマで検証するかどうか(SFXXMLSAXParser::SetValidationSchema 関数と同等です)
  • http://xml.org/sax/features/namespace-prefixes : 名前空間接頭辞を通知するかどうか (true に設定すると、名前空間宣言で用いられているオリジナルのプリフィックス名と属性 を通知します。false の場合、通知しません。)
[Note] 機能( Feature )

SAX : Features and Properties

Apache XML : Parser Features

使用例

XML 文書をスキーマで検証するように設定します。

SFXXMLSAXParser saxparser;  // SAX パーサー
SFXAnsiStringConstRef schema_validation("http://xml.org/sax/features/validation"); // 機能名( 完全修飾 URI )


if(!saxparser.GetFeature(schema_validation)
{
    // XML 文書をスキーマで検証する設定になっていないとき

    // XML 文書をスキーマで検証する
    saxparser.SetFeature(schema_validation, true );    
}

参照

SFXXMLSAXParser::SetDoNamespaces | SFXXMLSAXParser::SetValidationSchema | SFXXMLSAXParser::GetFeature


SFXXMLSAXParser::SetGrammar
XML ドキュメントの記述内容を規定する文法(言語)を設定します。
[ public ]
Void SetGrammar(
    SFXXMLGrammar::GrammarType grammar   // 文法タイプ
);

解説

この関数は、XML パーサーが解析する XML ドキュメントの記述内容を規定する文法(言語)を設定します。

デフォルト値: SFXXMLGrammar::GRAMMAR_UNKNOWN(XML ドキュメントの記述内容を規定する文法なし)

[Note] DOCTYPE 宣言

XML 文書内の DOCTYPE 宣言の内容は、 この関数で文法が SFXXMLGrammar::GRAMMAR_DTD に設定された場合にだけ読み込まれます。

デフォルトの設定(SFXXMLGrammar::GRAMMAR_UNKNOWN)では読み込まれません。

参照

SFXXMLGrammar::GrammarType | SFXXMLSAXParser::SetValidationDTD | SFXXMLSAXParser::SetLoadExternalDTD | SFXXMLSAXParser::SetDoSchema | SFXXMLSAXParser::SetValidationSchema | SFXXMLSAXParser::SetSchemaLocation


SFXXMLSAXParser::SetIgnoreAnnotations
【無効】XML スキーマの Annotation 要素の検証を無効にするかどうかのフラグ値(Annotation 要素検証無効フラグ値)を設定します。
[ public ]
Void SetIgnoreAnnotations(
    BoolConst state   // Annotation 要素の検証を無効にするかどうか
);

解説

この関数は、XML スキーマの Annotation 要素の検証を無効にするかどうかのフラグ値(Annotation 要素検証無効フラグ値)を設定します。

デフォルト値: ON(true)

[Note] 注意

Annotation 要素検証無効フラグは、XML 文書を XML スキーマで検証する場合のみ有効です。

デフォルトの設定では、Annotation 要素検証無効フラグは true なので、 XML スキーマの Annotation 要素の検証は行われません。

[Caution] 注意

現バージョンでは、Annotation 要素検証無効フラグ値を OFF にしても検証は行われません(このフラグは無効です)。

参照

SFXXMLSAXParser::GetIgnoreAnnotations | SFXXMLSAXParser::SetGrammar | SFXXMLSAXParser::SetDoSchema | SFXXMLSAXParser::SetValidationSchema | SFXXMLSAXParser::SetSchemaLocation


SFXXMLSAXParser::SetLoadExternalDTD
外部 DTD ファイルをロードするかどうかのフラグ値(外部 DTD 読み込みフラグ値)を設定します。
[ public ]
Void SetLoadExternalDTD(
    BoolConst state   // 外部の DTD ファイルをロードするかどうか
);

解説

この関数は、この XML パーサーが XML 文書内に指定された、 外部 DTD ファイルをロードするかどうかのフラグ値(外部 DTD 読み込みフラグ値)を設定します。

デフォルト値: OFF(false)[デフォルトの設定では、外部 DTD ファイルはロードされません。]

[Note] 注意

XML 文書を外部 DTD ファイルをロードして検証するには、以下の設定も必要です。

  1. SFXXMLSAXParser::SetGrammar 関数を呼び出して文法を SFXXMLGrammar::GRAMMAR_DTD に設定します。
  2. SFXXMLSAXParser::SetValidationDTD 関数を呼び出して DTD 検証フラグを ON にします。

DTD 検証フラグが ON の場合は、外部 DTD ファイルは自動的にロードされます。

[Caution] 注意

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

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

参照

SFXXMLSAXParser::SetGrammar | SFXXMLSAXParser::SetValidationDTD | SFXXMLGrammar::GrammarType | SFXXMLSAXParser::GetLoadExternalDTD


SFXXMLSAXParser::SetProperty
指定されたプロパティ(Property)の値を設定します。
[ public ]
Void SetProperty(
    SFXAnsiStringConstRef name   // プロパティ名
    VoidConstPtr value           // プロパティの値
);

解説

この関数は、指定されたプロパティ(Property)の値を設定します。

[Note] 注意

現在サポートされるプロパティ(Property)は、 SAX パーサーのイベントハンドラの "default-handler" だけです。

"xmldecl-encoding"、"xmldecl-version"、"xmldecl-standalone" のプロパティは、 サポートされていません。

[Note] プロパティ( Property )

SAX : Features and Properties

使用例

// MySAXHandler1: SAX パーサーのハンドラ クラス
class MySAXHandler1 : public SFXXMLDefaultHandler {
public:
   // 各ハンドラの定義
   ...
};

// MySAXHandler2: SAX パーサーのハンドラ クラス
class MySAXHandler2 : public SFXXMLDefaultHandler {
public:
   // 各ハンドラの定義
   ...
};

SFXXMLSAXParser saxparser;   // SAX パーサー
MySAXHandler1 saxhandler1;   // SAX パーサーのハンドラ
MySAXHandler2 saxhandler2;   // SAX パーサーのハンドラ
SFXAnsiStringConstRef property("default-handler");
VoidPtr voidptr;

// saxhandler1 を SAX パーサーのハンドラに設定する
saxparser.SetDefaultHandler(&saxhandler1);

saxparser.Parse("file.xml"); // saxhandler1 で XML 文書を解析する

voidptr = saxparser.GetProperty(property); // プロパティに設定されている SAX パーサーのハンドラ saxhandler1 を取得する

if( voidptr == &saxhandler1 ){
    saxparser.SetProperty(property, &saxhandler2);  // saxhandler2 を SAX パーサーのハンドラに設定する
}

saxparser.Parse("file.xml"); // saxhandler2 で XML 文書を解析する

参照

SFXXMLSAXParser::GetProperty


SFXXMLSAXParser::SetSchemaLocation
XML 文書を検証するための XSD ファイルを設定します。
[ public ]
Void SetSchemaLocation(
    SFXAnsiStringConstRef name   // ローカル XSD ファイル
);

解説

この関数は、この XML パーサーが XML 文書を検証するための XSD ファイルを設定します。

[Note] 注意

XML 文書をスキーマで検証するには、以下の設定も必要です。

  1. SFXXMLSAXParser::SetGrammar 関数を呼び出して文法を SFXXMLGrammar::GRAMMAR_SCHEMA に設定します。
  2. SFXXMLSAXParser::SetDoNamespaces 関数を呼び出して名前空間処理フラグを ON に設定します。
  3. SFXXMLSAXParser::SetDoSchema 関数でを呼び出してスキーマ処理フラグを ON に設定します。
  4. SFXXMLSAXParser::SetValidationSchema 関数を呼び出して スキーマ検証フラグを ON に設定します。

[Caution] 注意

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

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

参照

SFXXMLGrammar::GrammarType | SFXXMLSAXParser::SetDoNamespaces | SFXXMLSAXParser::SetDoSchema | SFXXMLSAXParser::SetValidationSchema | SFXXMLSAXParser::GetValidationSchema


SFXXMLSAXParser::SetValidationDTD
XML 文書を DTD で検証するかどうかのフラグ値(DTD 検証フラグ値)を設定します。
[ public ]
Void SetValidationDTD(
    BoolConst state   // XML 文書を DTD で検証するかどうか
);

解説

この関数は、この XML パーサーが XML 文書を DTD で検証するかどうかのフラグ値(DTD 検証フラグ値)を設定します。

デフォルト値: OFF(false)[デフォルトの設定では、DTD で検証されません。]

[Note] 注意

XML 文書を DTD で検証するには、以下の設定も必要です。

  1. SFXXMLSAXParser::SetGrammar 関数を呼び出して文法を SFXXMLGrammar::GRAMMAR_DTD に設定します。
  2. DTD が外部ファイルである場合は、 SFXXMLSAXParser::SetLoadExternalDTD 関数を呼び出して 外部 DTD 読み込みフラグを ON に設定します。

DTD 検証フラグが ON の場合は、外部 DTD ファイルは自動的にロードされます。

[Caution] 注意

XML 文書の検証は部分的に行われます。現在のところ、完全な検証はサポートされていません。

参照

SFXXMLGrammar::GrammarType | SFXXMLSAXParser::SetValidationDTD | SFXXMLSAXParser::SetLoadExternalDTD | SFXXMLSAXParser::GetValidationDTD


SFXXMLSAXParser::SetValidationSchema
XML 文書をスキーマで検証するかどうかのフラグ値(スキーマ検証フラグ値)を設定します。
[ public ]
Void SetValidationSchema(
    BoolConst state   // XML 文書をスキーマで検証するかどうか
);

解説

この関数は、この XML パーサーが XML 文書をスキーマで検証するかどうかのフラグ値(スキーマ検証フラグ値)を設定します。

デフォルト値: OFF(false)[デフォルトの設定では、スキーマで検証されません。]

[Note] 注意

XML 文書をスキーマで検証するには、以下の設定も必要です。

  1. SFXXMLSAXParser::SetGrammar 関数を呼び出して文法を SFXXMLGrammar::GRAMMAR_SCHEMA に設定します。
  2. SFXXMLSAXParser::SetDoNamespaces 関数を呼び出して名前空間処理フラグを ON に設定します。
  3. SFXXMLSAXParser::SetDoSchema 関数を呼び出してスキーマ処理フラグを ON に設定します。
  4. SFXXMLSAXParser::SetSchemaLocation 関数を呼び出して XSD ファイルを設定します。

[Caution] 注意

XML 文書の検証は部分的に行われます。現在のところ、完全な検証はサポートされていません。

参照

SFXXMLGrammar::GrammarType | SFXXMLSAXParser::SetDoNamespaces | SFXXMLSAXParser::SetDoSchema | SFXXMLSAXParser::SetSchemaLocation | SFXXMLSAXParser::GetValidationSchema