値を指定して、XmlValidatingReader クラスの新しいインスタンスを初期化します。
名前空間: System.Xml
アセンブリ: System.Xml (system.xml.dll 内)
構文
'宣言
Public Sub New ( _
xmlFragment As String, _
fragType As XmlNodeType, _
context As XmlParserContext _
)
'使用
Dim xmlFragment As String
Dim fragType As XmlNodeType
Dim context As XmlParserContext
Dim instance As New XmlValidatingReader(xmlFragment, fragType, context)
public XmlValidatingReader (
string xmlFragment,
XmlNodeType fragType,
XmlParserContext context
)
public:
XmlValidatingReader (
String^ xmlFragment,
XmlNodeType fragType,
XmlParserContext^ context
)
public XmlValidatingReader (
String xmlFragment,
XmlNodeType fragType,
XmlParserContext context
)
public function XmlValidatingReader (
xmlFragment : String,
fragType : XmlNodeType,
context : XmlParserContext
)
パラメータ
- xmlFragment
解析する XML フラグメントを含んでいる文字列。
- fragType
XML フラグメントの XmlNodeType。これは、フラグメント文字列に何を含めることができるかも判断します (次の表を参照)。
- context
XML フラグメントの解析先の XmlParserContext。これには、使用する NameTable、エンコーディング、名前空間スコープ、現在の xml:lang、および xml:space スコープが含まれます。
例外
| 例外の種類 | 条件 |
|---|---|
fragType が、次の表に示すノード型の 1 つではありません。 |
解説
注意
Microsoft .NET Framework version 2.0 では、XmlValidatingReader クラスは使用されなくなりました。検証を実行する XmlReader のインスタンスは、XmlReaderSettings クラスおよび Create メソッドを使用して作成できます。詳細については、「XmlReader による XML データの検証」を参照してください。
このコンストラクタは、指定した文字列を XML のフラグメントとして解析します。XML フラグメントが要素または属性の場合は、整形式 XML ドキュメントのルート レベルの規則をバイパスできます。このコンストラクタは、ReadInnerXml から返される文字列を処理できます。
fragType の有効値と、リーダーによる異なるノード型の解析方法の一覧を次の表に示します。
XmlNodeType |
フラグメントに含まれる |
|---|---|
Element |
任意の有効な要素の内容 (たとえば、要素、コメント、処理命令、cdata、テキスト、エンティティ参照の任意の組み合わせなど)。 |
Attribute |
属性の値 (引用符の内側の部分)。 |
Document |
XML ドキュメント全体の内容。これは、ドキュメント レベル規則を適用します。 |
このリーダーがドキュメント型定義 (DTD) を使用して検証 (つまり、ValidationType を ValidationType.DTD または ValidationType.Auto に設定) する場合、コンストラクタで指定した XmlParserContext で必要な DocumentType 情報をすべて提供する必要があります。
注意
DTD を使用してフラグメントを検証できません。定義上は、DTD では検証のためにドキュメント全体を読み込む必要があります。
このリーダーが XML-Data Reduced (XDR) または XML スキーマ定義言語 (XSD) スキーマを使用して検証する場合は、Schemas プロパティを使用して、このスキーマを含む XmlSchemaCollection を指定します (つまり、XmlParserContext で DocumentType 情報を提供する必要はありません)。
使用例
XML フラグメントを読み取る例を次に示します。XmlParserContext とその XmlNamespaceManager を使用して、一致する名前空間を処理します。
Imports System
Imports System.IO
Imports System.Xml
Public Class Sample
Public Shared Sub Main()
Dim reader As XmlTextReader = Nothing
Try
'Create the XML fragment to be parsed.
Dim xmlFrag As String = "<book> " & _
"<title>Pride And Prejudice</title>" & _
"<bk:genre>novel</bk:genre>" & _
"</book>"
'Create the XmlNamespaceManager that is used to
'look up namespace information.
Dim nt As New NameTable()
Dim nsmgr As New XmlNamespaceManager(nt)
nsmgr.AddNamespace("bk", "urn:sample")
'Create the XmlParserContext.
Dim context As New XmlParserContext(Nothing, nsmgr, Nothing, XmlSpace.None)
'Implement the reader.
reader = New XmlTextReader(xmlFrag, XmlNodeType.Element, context)
'Parse the XML fragment. If they exist, display the
'prefix and namespace URI of each element.
While reader.Read()
If reader.IsStartElement() Then
If reader.Prefix = String.Empty Then
Console.WriteLine("<{0}>", reader.LocalName)
Else
Console.Write("<{0}:{1}>", reader.Prefix, reader.LocalName)
Console.WriteLine(" The namespace URI is " & reader.NamespaceURI)
End If
End If
End While
Finally
If Not (reader Is Nothing) Then
reader.Close()
End If
End Try
End Sub 'Main
End Class 'Sample
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
XmlTextReader reader = null;
try
{
//Create the XML fragment to be parsed.
string xmlFrag = "<book> " +
"<title>Pride And Prejudice</title>" +
"<bk:genre>novel</bk:genre>" +
"</book>";
//Create the XmlNamespaceManager that is used to
//look up namespace information.
NameTable nt = new NameTable();
XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
nsmgr.AddNamespace("bk", "urn:sample");
//Create the XmlParserContext.
XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.None);
//Implement the reader.
reader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context);
//Parse the XML fragment. If they exist, display the
//prefix and namespace URI of each element.
while (reader.Read())
{
if (reader.IsStartElement())
{
if (reader.Prefix == String.Empty)
Console.WriteLine("<{0}>", reader.LocalName);
else
{
Console.Write("<{0}:{1}>", reader.Prefix, reader.LocalName);
Console.WriteLine(" The namespace URI is " + reader.NamespaceURI);
}
}
}
}
finally
{
if (reader != null)
reader.Close();
}
}
} // End class
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Millennium Edition, 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
参照
関連項目
XmlValidatingReader クラス
XmlValidatingReader メンバ
System.Xml 名前空間