Freigeben über


Extensions Klasse

Definition

Diese Klasse enthält die LINQ to XML-Erweiterungsmethoden zur XSD-Validierung.

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

Beispiele

Die XSD in XSD-Beispieldatei: Kunden und Bestellungen enthält ein Schema, das zum Überprüfen des XML-Dokuments in der XML-Beispieldatei "Kunden und Bestellungen" verwendet werden kann. Im folgenden Beispiel wird das Schema und das Dokument geladen, das Dokument überprüft, das Dokument so geändert, dass die xs:key Beziehung und xs:keyref ungültig ist, und dann versucht, die Überprüfung erneut durchzuführen.

                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  

Dieses Beispiel erzeugt die folgende Ausgabe:

Validating custOrd  
custOrd validated  

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

Hinweise

Diese Klasse enthält auch Methoden zum Abrufen des Post-Schema-Validation Infosets (PSVI) eines überprüften XML-Knotens.

Wenn Sie ein XDocument, XElementoder XAttributeüberprüfen, können Sie optional auch die XML-Struktur mit dem Infoset nach der Schemavalidierung auffüllen. PSVI-Informationen werden als Anmerkung vom Typ System.Xml.Schema.XmlSchemaInfohinzugefügt.

Methoden

GetSchemaInfo(XAttribute)

Ruft das Post-Schema-Validation-Infoset (PSVI) eines validierten Attributs ab.

GetSchemaInfo(XElement)

Ruft das Post-Schema-Validation-Infoset (PSVI) eines validierten Elements ab.

Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Diese Methode validiert, ob ein XAttribute einem angegebenen XmlSchemaObject und einem XmlSchemaSet entspricht.

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

Validiert, ob ein XAttribute einem angegebenen XmlSchemaObject und einem XmlSchemaSet entspricht, und füllt die XML-Struktur optional mit dem Post-Schema-Validation-Infoset (PSVI) auf.

Validate(XDocument, XmlSchemaSet, ValidationEventHandler)

Diese Methode validiert, ob ein XDocument einer XSD in einem XmlSchemaSet entspricht.

Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean)

Validiert, ob ein XDocument einer XSD in einem XmlSchemaSet entspricht, und füllt die XML-Struktur optional mit dem Post-Schema-Validation-Infoset (PSVI) auf.

Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Diese Methode validiert, ob eine XElement-Teilstruktur einem angegebenen XmlSchemaObject und einem XmlSchemaSet entspricht.

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

Validiert, ob eine XElement-Teilstruktur einem angegebenen XmlSchemaObject und einem XmlSchemaSet entspricht, und füllt die XML-Struktur optional mit dem Post-Schema-Validation-Infoset (PSVI) auf.

Gilt für: