![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework 4.1 |
DTD と XMLSchema は、XML 文書を解析するときに、その文書が正しい形式で構成されているかどうかをチェックするための文法です。
DTD ではデータ型を定義できません。文法も XML で記述されていません。
XMLSchema は XML 形式で記述され、データ型の定義や名前空間が扱えるなど、DTD には無い機能があります。
SophiaFramework は、DTD と XMLSchema をサポートしています。DTD や XMLSchema を使うと、解析しているときに、文法で規定しているデータがあれば、エラーを返します。
なお、WSDL 文書を解析するときには XMLSchema のサポートが前提になります。
DTD 付き XML 文書は、SFXXMLDOMParser クラスまたは SFXXMLSAXParser クラスの以下の関数を使って処理します。
表 18.11. DTD 付き XML 文書を処理するための関数
| 使用目的 | SFXXMLDOMParser クラスの関数名 | SFXXMLSAXParser クラスの関数名 |
|---|---|---|
| XML 文書を DTD で検証する場合 | SFXXMLDOMParser::SetValidationDTD | SFXXMLSAXParser::SetValidationDTD |
| DTD 付き XML 文書に関して、外部 DTD ファイルをロードする場合 | SFXXMLDOMParser::SetLoadExternalDTD | SFXXMLSAXParser::SetLoadExternalDTD |
![]() |
外部 DTD ファイルをロードする方法 |
|---|---|
DTD が XML 文書とは別のファイル( 外部 DTD ファイル )で定義される場合、SetLoadExternalDTD 関数のパラメーターを true に指定して外部 DTD ファイルをロードします。 | |
※ SFXXMLDocumentType オブジェクトに対して、以下のような DTD に関連する操作が可能です。
表 18.12. 外部 DTD ファイルを処理するための関数
| 関数名 | 解説 |
|---|---|
| SFXXMLDocumentType::GetEntities | DTD で宣言される全エンティティを取得します。 |
| SFXXMLDocumentType::GetNotations | DTD で宣言される記法を取得します。 |
| SFXXMLDocumentType::GetPublicID | 外部サブセットの公開識別子を取得します。 |
| SFXXMLDocumentType::GetSystemID | 外部サブセットのシステム識別子を取得します。 |
XMLSchema 付き XML 文書は、SFXXSDDOMParser クラスまたは SFXXMLSAXParser クラスの以下の関数を使って処理します。
表 18.13. XMLSchema 付き XML 文書を処理するための関数
| 使用目的 | SFXXMLDOMParser クラスの関数名 | SFXXMLSAXParser クラスの関数名 |
|---|---|---|
| スキーマを処理する場合 | SFXXMLDOMParser::SetDoSchema | SFXXMLSAXParser::SetDoSchema |
| XML 文書をスキーマで検証する場合 | SFXXMLDOMParser::SetValidationSchema | SFXXMLSAXParser::SetValidationSchema |
| スキーマ付きXML文書の Annotation 要素を無効にする場合 | SFXXMLDOMParser::SetIgnoreAnnotations | SFXXMLSAXParser::SetIgnoreAnnotations |
| スキーマ付きXML文書 の XSD ファイルを指定する場合 | SFXXMLDOMParser::SetSchemaLocation | SFXXMLSAXParser::SetSchemaLocation |
![]() |
名前空間の設定方法 |
|---|---|
SFXXMLDOMParser::SetDoNamespaces 関数で true を指定することで、名前空間を設定できます。 | |
|
Copyright (C) 2002 - 2008 Sophia Cradle, Inc. All Rights Reserved. |
![]() ![]() ![]()
|