ホームページ >バックエンド開発 >C#.Net チュートリアル >.NET FrameworkでXMLデータを簡単に処理する(3-1)
??検証機能を備えたブラウザ
??XmlValidatingReader クラスは、複数のタイプの XML 検証 (DTD、XML-Data Reduced (XDR) アーキテクチャ、および W3C 公式推奨の XSD) のサポートを提供する XmlReader クラスを実装します。 XDR は、Microsoft が初期の頃に XML アーキテクチャを処理するために使用していた形式です。
??XmlVlidatingReader クラスを使用して、XML ドキュメントと XML フラグメントを検証できます。 XmlValidatingReader クラスは XML ブラウザ上で動作します。XMLTextReader クラスの典型的なインスタンスです。 XMLTextReade はドキュメントのノードを読み取るために使用されますが、XmlVlidatingReader は必要な検証タイプに従って各 XML ブロックを検証します。
??XmlVlidatingReader クラスは、XML ブラウザーに必要な関数の非常に小さなサブセットのみを実装します。このクラスは常に既存の XML ブラウザと連携して動作し、メソッドとプロパティを監視します。このクラスの構造を詳しく調べると、明らかに既存のテキスト ブラウザに依存していることがわかります。検証機能を備えた XML ブラウザは、ファイルまたは URL から直接シリアル化できません。このクラスの構造関数のリストは次のとおりです:
public XmlValidatingReader(XmlReader);
public XmlValidatingReader(string, XmlNodeType, XmlParserContext);これは文字列またはストリームを通じて提供され、ブラウザーによって提供される XML ドキュメントを解析することもできます。
??XmlVlidatingReader クラスに大きな変更が加えられているメソッドはほとんどありません (他のリーダー クラスと比較して)。また、Read については、Skip メソッドと ReadTypedValue メソッドがあります。 Skip メソッドは、現在のノードのすべての子ノードをスキップします (不適切な形式の XML テキストをスキップすることはできません。これは非常に便利なアルゴリズムです)。また、Skip メソッドは、スキップされたコンテンツも検証します。 ReadTypedValue メソッドは、指定された XML スキーマ (XSD) 型に対応する CLR 型を返します。このメソッドは、XSD タイプに対応する CLR タイプを見つけた場合、CLR タイプ名を返します。見つからない場合は、ノードの値が文字列値として返されます。
??検証機能付きXMLブラウザはその名の通り、現在のノードの構造が現在のスキーマに準拠しているかどうかを検証するノードベースのブラウザです。検証は増分的であり、ドキュメントが有効かどうかを示すブール値を返すメソッドはありません。通常、入力 XML ドキュメントを読み取るには Read メソッドを使用します。実際、認証付きのブラウザを使用して XML ドキュメントを読み取ることもできます。各ステップで、現在訪問しているノードの構造が指定されたスキーマと一致するかどうかが判断され、一致しない場合は例外がスローされます。図 4 は、ファイル名を入力するコマンド ラインを備え、最終的に検証結果を出力するコンソール アプリケーションです。
図 4 コンソール アプリ
using System;
try {
Validate(fileName)
}
catch (Exception e) {
Console.WriteLine('Error:t {0}', e.Message);
Console.WriteLine('例外が発生しました: { 0}',
e.GetType().ToString()); Validate(String fileName)
{
XmlTextReader xtr = new XmlTextReader(fileName);
vreader.ValidationType = ValidationType.Auto; vreader.MoveToContent ();
while (vreader.Read()) {}
xtr.Close();
ValidationEventArgs args)
{
Console.Write('検証エラー: ' args.Message 'rn');
}
public static void Main(String[] args)
{
MyXmlValid App = new MyXmlValidApp(args[0])
}
}
;
以上.NET Framework で XML データを簡単に処理する内容 (3-1) については、PHP 中国語 Web サイト (www.php.cn) をご覧ください。