XmlReader と XmlNameTable によるオブジェクトの比較

XmlReader クラスの実装で XmlNameTable クラスを使用すると、XML ドキュメントのデータ解析や比較操作を実行するとき、文字列比較の代わりにポインタ比較を使用できます。このテーブルを使用すると、要素名および属性名を比較したり使用するときの XmlReader 派生クラスのパフォーマンスが向上します。

XmlNameTable は抽象基本クラスであり、実装として NameTable があります。NameTable は、分解されたバージョンの要素名と属性名を、名前空間 URI およびプリフィックスと共に格納します。アプリケーションで頻繁に名前の比較を実行する場合は、NameTable を作成できます。リーダーが使用している NameTable は、リーダーの NameTable プロパティから取得できます。アトマイゼーションについては、「XmlNameTable クラス」を参照してください。

アプリケーションは Add メソッドによって名前をテーブルに追加できます。Equals メソッドまたは == 演算子を使用して比較を行う例を次に示します。この比較では、メソッド呼び出しに渡されたオブジェクトが、現在のオブジェクトのインスタンスと同じかどうかを判定します。

Dim cust As Object = reader.NameTable.Add("Customer")
While reader.Read()
   ' The "if" uses efficient pointer comparison.
   If cust Is reader.Name Then
      ...
   End If
End While

[C#]
object cust = reader.NameTable.Add("Customer");
while (reader.Read())
{
   // The "if" uses efficient pointer comparison.
   if (cust == reader.Name)   
   {
      ...
   }
}

メソッドの詳細については、「XmlNameTable メンバ」を参照してください。

参照

XmlReader による XML の読み取り | XmlReader における現在のノードの位置 | XmlReader のプロパティ設定 | XmlReader による属性の読み取り | 要素および属性のコンテンツの読み取り | XmlReader によるコンテンツのスキップ | EntityReference の読み取りと展開 | XmlReader と SAX リーダーの比較 | XmlTextReader による XML データの読み取り | XmlNodeReader によるノード ツリーの読み取り | XmlValidatingReader による XML の検証 | カスタマイズされた XML リーダーの作成 | XmlReader クラス | XmlReader メンバ | XmlNodeReader クラス | XmlNodeReader メンバ | XmlTextReader クラス | XmlTextReader メンバ | XmlValidatingReader クラス | XmlValidatingReader メンバ