ValidationEventArgs.Severity 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取验证事件的严重度。
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 值。
示例
以下示例验证 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>