クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
.NET 開発
以前のバージョン
.NET Framework SDK 2.0
System.Xml
XmlTextReader クラス
This page is specific to
Microsoft Visual Studio 2005/.NET Framework 2.0

Other versions are also available for the following:
.NET Framework クラス ライブラリ
XmlTextReader クラス

XML データへの高速で非キャッシュの前方向アクセスを提供するリーダーを表します。

名前空間: System.Xml
アセンブリ: System.Xml (system.xml.dll 内)

Visual Basic (宣言)
Public Class XmlTextReader
    Inherits XmlReader
    Implements IXmlLineInfo, IXmlNamespaceResolver
Visual Basic (使用法)
Dim instance As XmlTextReader
C#
public class XmlTextReader : XmlReader, IXmlLineInfo, IXmlNamespaceResolver
C++
public ref class XmlTextReader : public XmlReader, IXmlLineInfo, IXmlNamespaceResolver
J#
public class XmlTextReader extends XmlReader implements IXmlLineInfo, IXmlNamespaceResolver
JScript
public class XmlTextReader extends XmlReader implements IXmlLineInfo, IXmlNamespaceResolver
メモメモ

Microsoft .NET Framework version 2.0 リリースでは、System.Xml.XmlReader.Create メソッドを使用して XmlReader インスタンスを作成することをお勧めします。これにより、このリリースで導入された新機能を十分に活用できます。詳細については、「XML リーダーの作成」を参照してください。

XmlTextReader は、XML データのストリームへの前方向の読み取り専用アクセスを提供します。現在のノードは、リーダーが配置されているノードを参照します。リーダーは読み取りメソッドを使用して進み、プロパティには現在のノードの値が反映されます。

このクラスは XmlReader を実装し、W3C 勧告『Extensible Markup Language (XML) 1.0』および勧告『Namespaces in XML』に準拠しています。XmlTextReader は、次の機能を提供します。

  • 整形式の XML の規則を適用します。

  • XmlTextReader は、データ検証を提供しません。

  • DocumentType ノードが整形式かどうかを確認します。XmlTextReader は、DTD が整形式かどうかを確認しますが、DTD を使用した検証は行いません。

  • NodeTypeXmlNodeType.EntityReference であるノードの場合は、単一の空の EntityReference ノードが返されます。つまり、Value プロパティは String.Empty です。

メモメモ

DTD 内のエンティティの実際の宣言は、Entity ノードと呼ばれます。これらのノードをデータで参照するときは、EntityReference ノードと呼ばれます。

  • 既定の属性を展開しません。

XmlTextReader は、データ検証に必要な補足チェックを実行しないため、高速の整形式パーサーを提供します。

データ検証を実行するには、検証 XmlReader を使用します。詳細については、「XmlReader による XML データの検証」を参照してください。

XmlDocument から XML データを読み取るには、XmlNodeReader を使用します。

XmlTextReader は、XML 解析エラー時に XmlException をスローします。例外がスローされると、リーダーの状態は予測不可能になります。たとえば、報告されたノード型が、現在のノードの実際のノード型と異なる場合があります。リーダーがエラー状態にあるかどうかを確認するには、ReadState プロパティを使用します。

XmlReader クラスの詳細については、「XmlReader による XML の読み取り」を参照してください。

セキュリティについての考慮事項

XmlTextReader クラスを使用する際の考慮事項を次に示します。

  • XmlTextReader で例外がスローされると、本来アプリケーションには表示されてはならないパス情報が開示されてしまう可能性があります。アプリケーションで例外をキャッチし、適切に処理する必要があります。

  • 既定では、DTD 処理が有効になります。サービス拒否攻撃が懸念される場合や、信頼関係のないソースを扱う場合は、DTD 処理を無効にしてください。DTD 処理を無効にするには、ProhibitDtd プロパティを true に設定します。

    DTD 処理を有効にした場合、XmlTextReader でアクセスできるリソースを、XmlSecureResolver を使って制限できます。また、XML 処理に対するメモリと時間の割り当てが制限されるようにアプリケーションをデザインすることもできます。たとえば、ASP.NET アプリケーションにタイムアウトの制限を設定します。

  • XML データには、DTD ファイルなど、外部リソースへの参照が含まれている場合があります。既定では、ユーザー資格情報を持たない XmlUrlResolver を使って外部リソースが解決されます。この点については、次のいずれかの方法でセキュリティを強化できます。

    • XmlResolver プロパティを XmlSecureResolver オブジェクトに設定することによって、XmlTextReader がアクセスできるリソースを制限します。

    • XmlResolver プロパティを null 参照 (Visual Basic では Nothing) に設定し、XmlReader が外部リソースを開くことができないようにします。

  • XML データに大量の属性、名前空間宣言、入れ子にされた要素が含まれると、処理に膨大な時間を要する場合があります。XmlTextReader に送られる入力のサイズを制限するには、カスタムの IStream 実装を作成して、XmlTextReader に適用するようにします。

  • ReadValueChunk メソッドを使用すると、大量のデータ ストリームを処理できます。このメソッドは、値全体に対して単一の文字列を割り当てる代わりに、一度に少数の文字を読み込みます。

  • 既定では、一般エンティティが展開されません。一般エンティティは、ResolveEntity メソッドが呼び出されたときに展開されます。

継承時の注意 このクラスには継承確認要求があります。XmlTextReader から継承するには、完全信頼が必要です。詳細については、「継承確認要求」を参照してください。

System.Object
   System.Xml.XmlReader
    System.Xml.XmlTextReader
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。

.NET Framework

サポート対象 : 2.0、1.1、1.0

.NET Compact Framework

サポート対象 : 2.0、1.0
コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
Page view tracker