Extensions Klas

Definitie

Deze klasse bevat de LINQ naar XML-extensiemethoden voor XSD-validatie.

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

Voorbeelden

Het XSD in het XSD-voorbeeldbestand: Klanten en orders bevatten een schema dat kan worden gebruikt voor het valideren van het XML-document in het XML-voorbeeldbestand: Klanten en orders. In het volgende voorbeeld worden het schema en het document geladen, het document gevalideerd, het document gewijzigd, zodat de xs:key relatie xs:keyref ongeldig is en vervolgens opnieuw probeert te valideren.

                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

In dit voorbeeld wordt de volgende uitvoer gegenereerd:

Validating custOrd
custOrd validated

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

Opmerkingen

Deze klasse bevat ook methoden om de post-schemavalidatie-infoset (PSVI) van een gevalideerd XML-knooppunt op te halen.

Wanneer u een XDocument, XElementof XAttribute, valideert, kunt u de XML-structuur ook vullen met de infoset voor validatie na schema. PSVI-informatie wordt toegevoegd als een aantekening van het type System.Xml.Schema.XmlSchemaInfo.

Methoden

Name Description
GetSchemaInfo(XAttribute)

Hiermee haalt u de post-schemavalidatie-infoset (PSVI) van een gevalideerd kenmerk op.

GetSchemaInfo(XElement)

Hiermee haalt u de post-schemavalidatie-infoset (PSVI) van een gevalideerd element op.

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

Valideert dat een XAttribute bestand voldoet aan een opgegeven XmlSchemaObject en een XmlSchemaSet, eventueel vullen van de XML-structuur met de post-schemavalidatie-infoset (PSVI).

Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Deze methode valideert dat een XAttribute voldoet aan een opgegeven XmlSchemaObject en een XmlSchemaSet.

Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean)

Hiermee wordt gevalideerd of een XDocument XSD in een XmlSchemaSetXSD voldoet, eventueel de XML-structuur vullen met de post-schemavalidatie-infoset (PSVI).

Validate(XDocument, XmlSchemaSet, ValidationEventHandler)

Met deze methode wordt gevalideerd of een XDocument XSD in een XmlSchemaSet.

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

Valideert dat een XElement substructuur voldoet aan een opgegeven XmlSchemaObject en een XmlSchemaSet, eventueel een XML-structuur vullen met de post-schemavalidatie-infoset (PSVI).

Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Met deze methode wordt gevalideerd of een XElement substructuur voldoet aan een opgegeven XmlSchemaObject en een XmlSchemaSet.

Van toepassing op