Extensions Kelas

Definisi

Kelas ini berisi metode ekstensi LINQ ke XML untuk validasi XSD.

public ref class Extensions abstract sealed
public static class Extensions
type Extensions = class
Public Module Extensions
Warisan
Extensions

Contoh

XSD dalam file Sampel XSD: Pelanggan dan pesanan berisi skema yang dapat digunakan untuk memvalidasi dokumen XML dalam file XML Sampel: Pelanggan dan pesanan. Contoh berikut memuat skema dan dokumen, memvalidasi dokumen, mengubah dokumen sehingga xs:key hubungan dan xs:keyref tidak valid, lalu mencoba memvalidasi lagi.

                XmlSchemaSet schemas = new XmlSchemaSet();
schemas.Add("", "CustomersOrders.xsd");

XDocument custOrd = XDocument.Load("CustomersOrders.xml");

Console.WriteLine("Validating custOrd");
bool errors = false;
custOrd.Validate(schemas, (o, e) =>
                     {
                         Console.WriteLine("{0}", e.Message);
                         errors = true;
                     });
Console.WriteLine("custOrd {0}", errors ? "did not validate" : "validated");

// Modify the custOrd tree so that it is no longer valid.
custOrd.Root.Element("Orders").Element("Order").Element("CustomerID").Value = "AAAAA";

Console.WriteLine();
Console.WriteLine("Validating custOrd");
errors = false;
custOrd.Validate(schemas, (o, e) =>
                     {
                         Console.WriteLine("{0}", e.Message);
                         errors = true;
                     });
Console.WriteLine("custOrd {0}", errors ? "did not validate" : "validated");
                Dim errors As Boolean = False

Private Sub XSDErrors(ByVal o As Object, ByVal e As ValidationEventArgs)
    Console.WriteLine("{0}", e.Message)
    errors = True
End Sub

Sub Main()
    Dim schemas As XmlSchemaSet = New XmlSchemaSet()
    schemas.Add("", "CustomersOrders.xsd")

    Console.WriteLine("Validating custOrd")
    Dim custOrd As XDocument = XDocument.Load("CustomersOrders.xml")
    errors = False
    custOrd.Validate(schemas, AddressOf XSDErrors)
    Console.WriteLine("custOrd {0}", IIf(errors, "did not validate", "validated"))

    Console.WriteLine()
    Console.WriteLine("Validating custOrd")
    ' Modify the source document so that it will not validate.
    custOrd.Root.Element("Orders").Element("Order").Element("CustomerID").Value = "AAAAA"
    errors = False
    custOrd.Validate(schemas, AddressOf XSDErrors)
    Console.WriteLine("custOrd {0}", IIf(errors, "did not validate", "validated"))
End Sub

Contoh ini menghasilkan output berikut:

Validating custOrd
custOrd validated

Validating custOrd
The key sequence 'AAAAA' in Keyref fails to refer to some key.
custOrd did not validate

Keterangan

Kelas ini juga berisi metode untuk mendapatkan infoset pasca-validasi skema (PSVI) dari simpul XML yang divalidasi.

Saat memvalidasi XDocument, , XElementatau XAttribute, Anda juga dapat secara opsional mengisi pohon XML dengan infoset pasca-validasi skema. Informasi PSVI ditambahkan sebagai anotasi jenis System.Xml.Schema.XmlSchemaInfo.

Metode

Nama Deskripsi
GetSchemaInfo(XAttribute)

Mendapatkan infoset validasi pasca-skema (PSVI) dari atribut yang divalidasi.

GetSchemaInfo(XElement)

Mendapatkan infoset validasi pasca-skema (PSVI) dari elemen yang divalidasi.

Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean)

Memvalidasi bahwa sesuai XAttribute dengan yang ditentukan XmlSchemaObject dan XmlSchemaSet, secara opsional mengisi pohon XML dengan infoset validasi pasca-skema (PSVI).

Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Metode ini memvalidasi bahwa sesuai XAttribute dengan yang ditentukan XmlSchemaObject dan XmlSchemaSet.

Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean)

Memvalidasi bahwa XDocument sesuai dengan XSD dalam XmlSchemaSet, secara opsional mengisi pohon XML dengan infoset validasi pasca-skema (PSVI).

Validate(XDocument, XmlSchemaSet, ValidationEventHandler)

Metode ini memvalidasi bahwa sesuai XDocument dengan XSD dalam XmlSchemaSet.

Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean)

Memvalidasi bahwa XElement sub-pohon sesuai dengan yang ditentukan XmlSchemaObject dan XmlSchemaSet, secara opsional mengisi pohon XML dengan infoset pasca-validasi skema (PSVI).

Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Metode ini memvalidasi bahwa XElement sub-pohon sesuai dengan yang ditentukan XmlSchemaObject dan XmlSchemaSet.

Berlaku untuk