ValidationEventArgs.Severity 属性

定义

获取验证事件的严重度。

public:
 property System::Xml::Schema::XmlSeverityType Severity { System::Xml::Schema::XmlSeverityType get(); };
public System.Xml.Schema.XmlSeverityType Severity { get; }
member this.Severity : System.Xml.Schema.XmlSeverityType
Public ReadOnly Property Severity As XmlSeverityType

属性值

XmlSeverityType

表示验证事件的严重度的 XmlSeverityType 值。

示例

以下示例验证 XML 文件并生成相应的错误或警告。

#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Schema;

ref class Sample
{
private:
    static void Validate(String^ filename, XmlSchemaSet^ schemaSet)
    {
        Console::WriteLine();
        Console::WriteLine("\r\nValidating XML file {0}...", filename->ToString());

        XmlSchema^ compiledSchema;

        for each (XmlSchema^ schema in schemaSet->Schemas())
        {
            compiledSchema = schema;
        }

        XmlReaderSettings^ settings = gcnew XmlReaderSettings();
        settings->Schemas->Add(compiledSchema);
        settings->ValidationEventHandler += gcnew ValidationEventHandler(ValidationCallBack);
        settings->ValidationType = ValidationType::Schema;

        //Create the schema validating reader.
        XmlReader^ vreader = XmlReader::Create(filename, settings);

        while (vreader->Read()) { }

        //Close the reader.
        vreader->Close();
    }

    //Display any warnings or errors.
    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);
    }

public:
    static void Main()
    {
        //Load the XmlSchemaSet.
        XmlSchemaSet^ schemaSet = gcnew XmlSchemaSet();
        schemaSet->Add("urn:bookstore-schema", "books.xsd");

        //Validate the file using the schema stored in the schema set.
        //Any elements belonging to the namespace "urn:cd-schema" generate
        //a warning because there is no schema matching that namespace.
        Validate("store.xml", schemaSet);
        Console::ReadLine();
    }
};

int main()
{
    Sample::Main();
    return 0;
}
using System;
using System.IO;
using System.Xml;
using System.Xml.Schema;

public class Sample
{

    public static void Main()
    {
        //Load the XmlSchemaSet.
        XmlSchemaSet schemaSet = new XmlSchemaSet();
        schemaSet.Add("urn:bookstore-schema", "books.xsd");

        //Validate the file using the schema stored in the schema set.
        //Any elements belonging to the namespace "urn:cd-schema" generate
        //a warning because there is no schema matching that namespace.
        Validate("store.xml", schemaSet);
        Console.ReadLine();
    }

    private static void Validate(String filename, XmlSchemaSet schemaSet)
    {
        Console.WriteLine();
        Console.WriteLine("\r\nValidating XML file {0}...", filename.ToString());

        XmlSchema compiledSchema = null;

        foreach (XmlSchema schema in schemaSet.Schemas())
        {
            compiledSchema = schema;
        }

        XmlReaderSettings settings = new XmlReaderSettings();
        settings.Schemas.Add(compiledSchema);
        settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);
        settings.ValidationType = ValidationType.Schema;

        //Create the schema validating reader.
        XmlReader vreader = XmlReader.Create(filename, settings);

        while (vreader.Read()) { }

        //Close the reader.
        vreader.Close();
    }

    //Display any warnings or errors.
    private 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);
    }
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Schema

Public Class Sample

    Public Shared Sub Main()

        'Load the XmlSchemaSet.
        Dim schemaSet As New XmlSchemaSet()
        schemaSet.Add("urn:bookstore-schema", "books.xsd")

        'Validate the file using the schema stored in the schema set.
        'Any elements belonging to the namespace "urn:cd-schema" generate
        'a warning because there is no schema matching that namespace.
        Validate("store.xml", schemaSet)

    End Sub

    Shared Sub Validate(ByVal filename As String, ByVal schemaSet As XmlSchemaSet)

        Console.WriteLine()
        Console.WriteLine("\r\nValidating XML file {0}...", filename.ToString())

        Dim compiledSchema As XmlSchema = Nothing

        For Each schema As XmlSchema In schemaSet.Schemas()
            compiledSchema = schema
        Next

        Dim settings As New XmlReaderSettings()
        settings.Schemas.Add(compiledSchema)
        AddHandler settings.ValidationEventHandler, AddressOf ValidationCallBack
        settings.ValidationType = ValidationType.Schema

        'Create the schema validating reader.
        Dim vreader As XmlReader = XmlReader.Create(filename, settings)

        While (vreader.Read())

        End While

        'Close the reader.
        vreader.Close()
    End Sub

    'Display any warnings or errors.
    Private Shared Sub ValidationCallBack(ByVal sender As Object, ByVal args As ValidationEventArgs)
        If (args.Severity = XmlSeverityType.Warning) Then
            Console.WriteLine("  Warning: Matching schema not found.  No validation occurred." + args.Message)
        Else
            Console.WriteLine("  Validation error: " + args.Message)
        End If
    End Sub

End Class

前面的示例使用以下输入文件。

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>

适用于