共用方式為


使用 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>

請參閱

概念

使用 XmlReader 讀取 XML

其他資源

使用 XmlReader 類別