使用 XmlValidatingReader 對 XDR 進行驗證
XML 資料精簡 (XDR) 結構描述驗證是使用在 Microsoft XML 剖析器 (MSXML) 結構描述規格中定義的有效性條件約束實作的。 XmlValidatingReader 類別會使用 XML 文件中的 x-schema: 命名空間宣告,來決定要做為驗證依據的結構描述為 XDR 結構描述。 在下列範例中,資料檔案的根項目為 <HeadCount xmlns='x-schema:HeadCount.xdr'>。
![]() |
---|
XmlValidatingReader 類別在 .NET Framework 2.0 版 中已過時。您可以使用 XmlReaderSettings 類別和 Create 方法,來建立驗證 XmlReader 執行個體。如需詳細資訊,請參閱使用 XmlReader 驗證 XML 資料。 |
範例
下列程式碼範例會建立 XmlValidatingReader,它會使用 XmlTextReader。 輸入檔 HeadCount.xml 會對 XDR 結構描述檔案 HeadCount.xdr 進行驗證。
Imports System
Imports System.IO
Imports System.Xml
Imports System.Xml.Schema
public class ValidationSample
public shared sub Main()
Dim tr As XmlTextReader = new XmlTextReader("HeadCount.xml")
Dim vr As XmlValidatingReader = new XmlValidatingReader(tr)
vr.ValidationType = ValidationType.XDR
AddHandler vr.ValidationEventHandler, AddressOf ValidationCallback
while(vr.Read())
end while
Console.WriteLine("Validation finished")
end sub
public shared sub ValidationCallBack(sender As object, args as ValidationEventArgs)
Console.WriteLine("***Validation error")
Console.WriteLine("Severity:{0}", args.Severity)
Console.WriteLine("Message:{0}", args.Message)
end sub
end class
using System;
using System.IO;
using System.Xml;
using System.Xml.Schema;
namespace ValidationSample
{
class Sample
{
public static void Main()
{
XmlTextReader tr = new XmlTextReader("HeadCount.xml");
XmlValidatingReader vr = new XmlValidatingReader(tr);
vr.ValidationType = ValidationType.XDR;
vr.ValidationEventHandler += new ValidationEventHandler (ValidationHandler);
while(vr.Read());
Console.WriteLine("Validation finished");
}
public static void ValidationHandler(object sender, ValidationEventArgs args)
{
Console.WriteLine("***Validation error");
Console.WriteLine("\tSeverity:{0}", args.Severity);
Console.WriteLine("\tMessage :{0}", args.Message);
}
}
}
以下列出了要進行驗證的輸入檔 (HeadCount.xml) 內容。
<HeadCount xmlns='x-schema:HeadCount.xdr'>
<Name>Waldo Pepper</Name>
<Name>Red Pepper</Name>
</HeadCount>
以下列出了要做為驗證依據之 XDR 結構描述檔案 (HeadCount.xdr) 的內容。
<Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
<ElementType name="Name" content="textOnly"/>
<AttributeType name="Bldg" default="2"/>
<ElementType name="HeadCount" content="eltOnly">
<element type="Name"/>
<attribute type="Bldg"/>
</ElementType>
</Schema>