XmlDocument.Validate Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Memvalidasi XmlDocument terhadap skema XML Schema Definition Language (XSD) yang terkandung dalam Schemas properti .
Overload
| Nama | Deskripsi |
|---|---|
| Validate(ValidationEventHandler) |
Memvalidasi XmlDocument terhadap skema XML Schema Definition Language (XSD) yang terkandung dalam Schemas properti . |
| Validate(ValidationEventHandler, XmlNode) |
Memvalidasi XmlNode objek yang ditentukan terhadap skema XML Schema Definition Language (XSD) dalam Schemas properti . |
Validate(ValidationEventHandler)
- Sumber:
- XmlDocument.cs
- Sumber:
- XmlDocument.cs
- Sumber:
- XmlDocument.cs
- Sumber:
- XmlDocument.cs
- Sumber:
- XmlDocument.cs
Memvalidasi XmlDocument terhadap skema XML Schema Definition Language (XSD) yang terkandung dalam Schemas properti .
public:
void Validate(System::Xml::Schema::ValidationEventHandler ^ validationEventHandler);
public void Validate(System.Xml.Schema.ValidationEventHandler? validationEventHandler);
public void Validate(System.Xml.Schema.ValidationEventHandler validationEventHandler);
member this.Validate : System.Xml.Schema.ValidationEventHandler -> unit
Public Sub Validate (validationEventHandler As ValidationEventHandler)
Parameter
- validationEventHandler
- ValidationEventHandler
Objek ValidationEventHandler yang menerima informasi tentang peringatan dan kesalahan validasi skema.
Pengecualian
Terjadi peristiwa validasi skema dan tidak ada ValidationEventHandler objek yang ditentukan.
Contoh
Contoh berikut mengilustrasikan penggunaan Validate metode . Contoh membuat XmlDocument yang berisi skema XSD terkait menggunakan XmlReaderSettings objek dan XmlReader . Contoh kemudian menggunakan XPathNavigator kelas untuk salah memodifikasi nilai elemen yang diketik dalam dokumen XML yang menghasilkan kesalahan validasi skema.
using System;
using System.Xml;
using System.Xml.Schema;
using System.Xml.XPath;
class XPathValidation
{
static void Main()
{
try
{
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add("http://www.contoso.com/books", "contosoBooks.xsd");
settings.ValidationType = ValidationType.Schema;
XmlReader reader = XmlReader.Create("contosoBooks.xml", settings);
XmlDocument document = new XmlDocument();
document.Load(reader);
ValidationEventHandler eventHandler = new ValidationEventHandler(ValidationEventHandler);
// the following call to Validate succeeds.
document.Validate(eventHandler);
// add a node so that the document is no longer valid
XPathNavigator navigator = document.CreateNavigator();
navigator.MoveToFollowing("price", "http://www.contoso.com/books");
XmlWriter writer = navigator.InsertAfter();
writer.WriteStartElement("anotherNode", "http://www.contoso.com/books");
writer.WriteEndElement();
writer.Close();
// the document will now fail to successfully validate
document.Validate(eventHandler);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
static void ValidationEventHandler(object sender, ValidationEventArgs e)
{
switch (e.Severity)
{
case XmlSeverityType.Error:
Console.WriteLine("Error: {0}", e.Message);
break;
case XmlSeverityType.Warning:
Console.WriteLine("Warning {0}", e.Message);
break;
}
}
}
Imports System.Xml
Imports System.Xml.Schema
Imports System.Xml.XPath
Class XPathValidation
Shared Sub Main()
Try
Dim settings As XmlReaderSettings = New XmlReaderSettings()
settings.Schemas.Add("http://www.contoso.com/books", "contosoBooks.xsd")
settings.ValidationType = ValidationType.Schema
Dim reader As XmlReader = XmlReader.Create("contosoBooks.xml", settings)
Dim document As XmlDocument = New XmlDocument()
document.Load(reader)
Dim eventHandler As ValidationEventHandler = New ValidationEventHandler(AddressOf ValidationEventHandler)
' the following call to Validate succeeds.
document.Validate(eventHandler)
' add a node so that the document is no longer valid
Dim navigator As XPathNavigator = document.CreateNavigator()
navigator.MoveToFollowing("price", "http://www.contoso.com/books")
Dim writer As XmlWriter = navigator.InsertAfter()
writer.WriteStartElement("anotherNode", "http://www.contoso.com/books")
writer.WriteEndElement()
writer.Close()
' the document will now fail to successfully validate
document.Validate(eventHandler)
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Sub
Shared Sub ValidationEventHandler(ByVal sender As Object, ByVal e As ValidationEventArgs)
Select Case e.Severity
Case XmlSeverityType.Error
Console.WriteLine("Error: {0}", e.Message)
Case XmlSeverityType.Warning
Console.WriteLine("Warning {0}", e.Message)
End Select
End Sub
End Class
Contoh mengambil contosoBooks.xml file dan contosoBooks.xsd sebagai input.
<?xml version="1.0" encoding="utf-8" ?>
<bookstore xmlns="http://www.contoso.com/books">
<book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.contoso.com/books" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="bookstore">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" />
<xs:element name="author">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="name" type="xs:string" />
<xs:element minOccurs="0" name="first-name" type="xs:string" />
<xs:element minOccurs="0" name="last-name" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="price" type="xs:decimal" />
</xs:sequence>
<xs:attribute name="genre" type="xs:string" use="required" />
<xs:attribute name="publicationdate" type="xs:date" use="required" />
<xs:attribute name="ISBN" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Keterangan
Metode Validate memvalidasi data XML dalam XmlDocument terhadap skema yang terkandung dalam Schemas properti . Metode ini Validate melakukan augmentasi infoset. Secara khusus, setelah validasi berhasil, default skema diterapkan, nilai teks dikonversi ke nilai atom seperlunya, dan informasi jenis dikaitkan dengan item informasi yang divalidasi. Hasilnya adalah sub-pohon XML yang sebelumnya tidak di ketik di XmlDocument ganti dengan sub-pohon yang ditik.
Pertimbangkan poin-poin berikut saat menggunakan Validate metode :
- Petunjuk lokasi skema seperti
xsi:schemaLocationatauxsi:noNamespaceSchemaLocationdiabaikan. - Skema sebaris diabaikan.
- Jika kesalahan validasi skema terjadi selama validasi, XmlDocument sebagian divalidasi dengan beberapa node dengan informasi jenis yang benar dan beberapa tanpa.
- Proses validasi termasuk memeriksa keunikan dan batasan referensi (
xs:ID, ,xs:IDREF,xs:keyxs:keyref, danxs:unique).
Berlaku untuk
Validate(ValidationEventHandler, XmlNode)
- Sumber:
- XmlDocument.cs
- Sumber:
- XmlDocument.cs
- Sumber:
- XmlDocument.cs
- Sumber:
- XmlDocument.cs
- Sumber:
- XmlDocument.cs
public:
void Validate(System::Xml::Schema::ValidationEventHandler ^ validationEventHandler, System::Xml::XmlNode ^ nodeToValidate);
public void Validate(System.Xml.Schema.ValidationEventHandler? validationEventHandler, System.Xml.XmlNode nodeToValidate);
public void Validate(System.Xml.Schema.ValidationEventHandler validationEventHandler, System.Xml.XmlNode nodeToValidate);
member this.Validate : System.Xml.Schema.ValidationEventHandler * System.Xml.XmlNode -> unit
Public Sub Validate (validationEventHandler As ValidationEventHandler, nodeToValidate As XmlNode)
Parameter
- validationEventHandler
- ValidationEventHandler
Objek ValidationEventHandler yang menerima informasi tentang peringatan dan kesalahan validasi skema.
- nodeToValidate
- XmlNode
Objek XmlNode yang dibuat dari untuk memvalidasi XmlDocument .
Pengecualian
Parameter XmlNode objek tidak dibuat dari XmlDocument.
Parameter XmlNode objek bukan elemen, atribut, fragmen dokumen, atau simpul akar.
Terjadi peristiwa validasi skema dan tidak ada ValidationEventHandler objek yang ditentukan.
Contoh
Untuk contoh Validate metode , lihat Validate metode .
Keterangan
Metode Validate memvalidasi data XML dalam XmlNode objek terhadap skema yang terkandung dalam Schemas properti . Metode ini Validate melakukan augmentasi infoset. Secara khusus, setelah validasi berhasil, default skema diterapkan, nilai teks dikonversi ke nilai atom seperlunya, dan informasi jenis dikaitkan dengan item informasi yang divalidasi. Hasilnya adalah sub-pohon XML yang sebelumnya tidak di ketik di XmlDocument ganti dengan sub-pohon yang ditik.
Berikut ini adalah catatan penting yang perlu dipertimbangkan Validate saat menggunakan metode .
Petunjuk lokasi skema seperti
xsi:schemaLocationatauxsi:noNamespaceSchemaLocationdiabaikan.Skema sebaris diabaikan.
Jika kesalahan validasi skema terjadi selama validasi, XmlDocument sebagian divalidasi dengan beberapa node dengan informasi jenis yang benar dan beberapa tanpa.
Jika simpul yang akan divalidasi adalah simpul akar, proses validasi termasuk memeriksa keunikan dan batasan referensi (xs:ID, , xs:IDREF, xs:keyxs:keyref, dan xs:unique); jika tidak, keunikan dan batasan referensi dihilangkan.