Extensions Klasse

Definition

Diese Klasse enthält die LINQ to XML-Erweiterungsmethoden für die XSD-Überprüfung.

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

Beispiele

Die XSD-Datei in der XSD-Beispieldatei: Kunden und Bestellungen enthalten ein Schema, mit dem das XML-Dokument in der XML-Beispieldatei überprüft werden kann: Kunden und Bestellungen. Im folgenden Beispiel wird das Schema und das Dokument geladen, das Dokument überprüft, das Dokument so geändert, dass die xs:key Beziehung xs:keyref ungültig ist, und dann erneut versucht, die Überprüfung 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 Infosets nach schemaschemas (PSVI) eines überprüften XML-Knotens.

Wenn Sie eine XDocumentXml-Struktur XElementüberprüfen oder XAttributeoptional mit dem Infoset für die Nachschemaüberprüfung füllen können. PSVI-Informationen werden als Anmerkung des Typs System.Xml.Schema.XmlSchemaInfohinzugefügt.

Methoden

Name Beschreibung
GetSchemaInfo(XAttribute)

Ruft das Infoset nach der Schemaüberprüfung (PSVI) eines überprüften Attributs ab.

GetSchemaInfo(XElement)

Ruft das Infoset nach der Schemaüberprüfung (PSVI) eines überprüften Elements ab.

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

Überprüft, ob eine XAttribute übereinstimmung mit einem angegebenen XmlSchemaObject und einem XmlSchemaSetoptionalen Auffüllen der XML-Struktur mit dem Post-Schema-Validation-Infoset (PSVI) übereinstimmt.

Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Diese Methode überprüft, ob eine XAttribute Übereinstimmung mit einem angegebenen XmlSchemaObject und einem XmlSchemaSet.

Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean)

Überprüft, ob ein XDocument XSD-Wert in einer XmlSchemaSetXML-Struktur entspricht, die optional die XML-Struktur mit dem Post-Schema-Validation-Infoset (PSVI) auffüllt.

Validate(XDocument, XmlSchemaSet, ValidationEventHandler)

Diese Methode überprüft, ob eine XDocument XSD in einer XmlSchemaSet.

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

Überprüft, ob eine XElement Unterstruktur einem angegebenen XmlSchemaObject und optionalen XmlSchemaSetAuffüllen der XML-Struktur mit dem Post-Schema-Validation-Infoset (PSVI) entspricht.

Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Diese Methode überprüft, ob eine XElement Unterstruktur einem angegebenen XmlSchemaObject und einem XmlSchemaSet.

Gilt für: