Aracılığıyla paylaş


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ındaKI 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:keyref ilişkisinin geçerli olmaması için belgeyi xs:key 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) alma yöntemlerini de 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

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)

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

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(XDocument, XmlSchemaSet, ValidationEventHandler)

Bu yöntem, içindeki XDocument bir XSD ile XmlSchemaSetuyumlu olduğunu doğrular.

Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean)

xml XDocument ağacını şema sonrası doğrulama bilgi kümesi (PSVI) ile isteğe bağlı olarak dolduran bir XmlSchemaSetiçindeki XSD'ye uygun olduğunu doğrular.

Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Bu yöntem, bir XElement alt ağacın belirtilen XmlSchemaObject ve XmlSchemaSetile uyumlu 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.

Şunlara uygulanır