Extensions Sınıf

Tanım

Bu sınıf, XSD doğrulaması için LINQ to XML uzantısı yöntemlerini içerir.

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

Örnekler

Örnek XSD dosyasındaki XSD: Müşteriler ve siparişler, Örnek XML dosyasında XML belgesini doğrulamak için kullanılabilecek bir şema içerir: Müşteriler ve siparişler. Aşağıdaki örnek şemayı ve belgeyi yükler, belgeyi doğrular, ve xs:key ilişkisi geçerli olmayacak şekilde belgeyi xs:keyref değiştirir ve sonra yeniden doğrulamayı dener.

                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

Bu örnek aşağıdaki çıkışı oluşturur:

Validating custOrd
custOrd validated

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

Açıklamalar

Bu sınıf ayrıca doğrulanmış bir XML düğümünün şema doğrulama sonrası bilgi kümesini (PSVI) almak için yöntemler içerir.

Bir XDocument, XElementveya XAttributedoğruladığınızda, isteğe bağlı olarak XML ağacını şema doğrulama sonrası bilgi kümesiyle de doldurabilirsiniz. PSVI bilgileri türüne System.Xml.Schema.XmlSchemaInfoek açıklama olarak eklenir.

Yöntemler

Name Description
GetSchemaInfo(XAttribute)

Doğrulanmış özniteliğin şema doğrulama sonrası bilgi kümesini (PSVI) alır.

GetSchemaInfo(XElement)

Doğrulanmış bir öğenin şema doğrulama sonrası bilgi kümesini (PSVI) alır.

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

bir XAttribute öğesinin belirtilen XmlSchemaObject ve XmlSchemaSetile uyumlu olduğunu doğrular ve isteğe bağlı olarak XML ağacını şema doğrulama sonrası bilgi kümesi (PSVI) ile doldurur.

Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Bu yöntem, belirtilen XAttributeXmlSchemaObject ve XmlSchemaSetile uyumlu olduğunu doğrular.

Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean)

içindeki bir XDocument XSD'ye XmlSchemaSetuygun olduğunu doğrular ve isteğe bağlı olarak XML ağacını şema doğrulama sonrası bilgi kümesi (PSVI) ile doldurur.

Validate(XDocument, XmlSchemaSet, ValidationEventHandler)

Bu yöntem, içindeki bir XDocument XSD'ye XmlSchemaSetuygun olduğunu doğrular.

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

Bir XElement alt ağacın belirtilen XmlSchemaObject ve ile uyumlu olduğunu doğrular ve XmlSchemaSetisteğe bağlı olarak XML ağacını şema sonrası doğrulama bilgi kümesi (PSVI) ile doldurur.

Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Bu yöntem, bir XElement alt ağacın belirtilen XmlSchemaObject ve XmlSchemaSetile uyumlu olduğunu doğrular.

Şunlara uygulanır