Extensions Kelas
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.
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. |