VB的到是有,你可以参考一下
http://tech.enet.com.cn/document/20010513/20010513192136014.shtml

解决方案 »

  1.   

    [Visual Basic, C#, JScript] 下面的示例验证一个 XML 文件,并生成相应的错误或警告。[Visual Basic] 
    Imports System
    Imports System.IO
    Imports System.Xml
    Imports System.Xml.Schemapublic class Sample  public shared sub Main ()    'Load the schema collection.
        Dim xsc as XmlSchemaCollection = new XmlSchemaCollection()
        xsc.Add("urn:bookstore-schema", "books.xsd")    'Validate the file using the schema stored in the collection.
        'Any elements belonging to the namespace "urn:cd-schema" generate
        'a warning since the there is no schema matching that namespace.
        Validate("store.xml", xsc) 
      end sub  private shared sub Validate(filename as String, xsc as XmlSchemaCollection)
         Console.WriteLine()
         Console.WriteLine("Validating XML file {0}...", filename.ToString())
         Dim reader as XmlTextReader = new XmlTextReader (filename)
         Dim vreader as XmlValidatingReader =new XmlValidatingReader (reader)
         vreader.ValidationType = ValidationType.Schema
         vreader.Schemas.Add(xsc)     'Set the validation event handler.
         AddHandler vreader.ValidationEventHandler, AddressOf ValidationCallBack
         'Read the XML data.
         while (vreader.Read())
         end while     'Close the reader.
         vreader.Close()
      end sub  'Display any warnings or errors.
      public shared sub ValidationCallBack (sender as object, args as ValidationEventArgs)
         if (args.Severity=XmlSeverityType.Warning)
           Console.WriteLine("  Warning: Matching schema not found.  No validation occurred." + args.Message)
         else
            Console.WriteLine("  Validation error: " + args.Message)
        end if
      end subend class
    [C#] 
    using System;
    using System.IO;
    using System.Xml;
    using System.Xml.Schema;public class Sample
    {  public static void Main ()
      {
        //Load the schema collection.
        XmlSchemaCollection xsc = new XmlSchemaCollection();
        xsc.Add("urn:bookstore-schema", "books.xsd");    //Validate the file using the schema stored in the collection.
        //Any elements belonging to the namespace "urn:cd-schema" generate
        //a warning since the there is no schema matching that namespace.
        Validate("store.xml", xsc); 
      }  private static void Validate(String filename, XmlSchemaCollection xsc)
      {
         Console.WriteLine();
         Console.WriteLine("\r\nValidating XML file {0}...", filename.ToString());
         XmlTextReader reader = new XmlTextReader (filename);
         XmlValidatingReader vreader=new XmlValidatingReader (reader);
         vreader.ValidationType = ValidationType.Schema;
         vreader.Schemas.Add(xsc);     //Set the validation event handler.
         vreader.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack);
         //Read the XML data.
         while (vreader.Read()){}     //Close the reader.
         vreader.Close();
      }   //Display any warnings or errors.
      public static void ValidationCallBack (object sender, ValidationEventArgs args)
      {
         if (args.Severity==XmlSeverityType.Warning)
           Console.WriteLine("\tWarning: Matching schema not found.  No validation occurred." + args.Message);
         else
            Console.WriteLine("\tValidation error: " + args.Message);  }  
    }
    [JScript] 
    import System
    import System.IO
    import System.Xml
    import System.Xml.Schemapublic class Sample
    {  public static function Main ()
      {
        //Load the schema collection.
        var xsc : XmlSchemaCollection = new XmlSchemaCollection();
        xsc.Add("urn:bookstore-schema", "books.xsd");    //Validate the file using the schema stored in the collection.
        //Any elements belonging to the namespace "urn:cd-schema" generate
        //a warning since the there is no schema matching that namespace.
        Validate("store.xml", xsc); 
      }  private static function Validate(filename : String, xsc : XmlSchemaCollection)
      {
         Console.WriteLine();
         Console.WriteLine("\r\nValidating XML file {0}...", filename.ToString());
         var reader : XmlTextReader = new XmlTextReader (filename);
         var vreader : XmlValidatingReader = new XmlValidatingReader (reader);
         vreader.ValidationType = ValidationType.Schema;
         vreader.Schemas.Add(xsc);     //Set the validation event handler.
         vreader.add_ValidationEventHandler(ValidationCallBack);
         //Read the XML data.
         while (vreader.Read()){}     //Close the reader.
         vreader.Close();
      }   //Display any warnings or errors.
      public static function ValidationCallBack (sender, args : ValidationEventArgs)
      {
         if (args.Severity==XmlSeverityType.Warning)
           Console.WriteLine("\tWarning: Matching schema not found.  No validation occurred." + args.Message);
         else
            Console.WriteLine("\tValidation error: " + args.Message);  }  
    }
    [Visual Basic, C#, JScript] 前面的示例使用下列输入文件。[Visual Basic, C#, JScript] store.xml <?xml version='1.0'?>
    <bookstore xmlns="urn:bookstore-schema" xmlns:cd="urn:cd-schema">
      <book genre="novel">
        <title>The Confidence Man</title>
        <price>11.99</price>
      </book>
      <cd:cd>
        <title>Americana</title>
        <cd:artist>Offspring</cd:artist>
        <price>16.95</price>
      </cd:cd>
    </bookstore>
    books.xsd <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        xmlns="urn:bookstore-schema"
        elementFormDefault="qualified"
        targetNamespace="urn:bookstore-schema"> <xsd:element name="bookstore" type="bookstoreType"/> <xsd:complexType name="bookstoreType">
      <xsd:sequence maxOccurs="unbounded">
       <xsd:element name="book"  type="bookType"/>
      </xsd:sequence>
     </xsd:complexType> <xsd:complexType name="bookType">
      <xsd:sequence>
       <xsd:element name="title" type="xsd:string"/>
       <xsd:element name="author" type="authorName"/>
       <xsd:element name="price"  type="xsd:decimal"/>
      </xsd:sequence>
      <xsd:attribute name="genre" type="xsd:string"/>
     </xsd:complexType> <xsd:complexType name="authorName">
      <xsd:sequence>
       <xsd:element name="first-name"  type="xsd:string"/>
       <xsd:element name="last-name" type="xsd:string"/>
      </xsd:sequence>
     </xsd:complexType></xsd:schema>