Extensions Klass

Definition

Den här klassen innehåller LINQ-till XML-tilläggsmetoderna för XSD-validering.

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

Exempel

XSD i XSD-exempelfilen: Kunder och beställningar innehåller ett schema som kan användas för att verifiera XML-dokumentet i XML-exempelfilen: Kunder och beställningar. I följande exempel läses schemat och dokumentet in, dokumentet verifieras, dokumentet ändras så att xs:key relationen och xs:keyref inte är giltig och sedan försöker verifiera igen.

                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

Det här exemplet genererar följande utdata:

Validating custOrd
custOrd validated

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

Kommentarer

Den här klassen innehåller också metoder för att hämta PSVI (post-schema-validation infoset) för en validerad XML-nod.

När du verifierar en XDocument, XElement, eller XAttribute, kan du också fylla i XML-trädet med infouppsättningen post-schema-validation. PSVI-information läggs till som en anteckning av typen System.Xml.Schema.XmlSchemaInfo.

Metoder

Name Description
GetSchemaInfo(XAttribute)

Hämtar psvi-informationsuppsättningen (post-schema-validation) för ett validerat attribut.

GetSchemaInfo(XElement)

Hämtar psvi-informationsuppsättningen (post-schema-validation) för ett verifierat element.

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

Verifierar att en XAttribute överensstämmer med en angiven XmlSchemaObject och , XmlSchemaSetom du vill fylla i XML-trädet med infouppsättningen efter schemavalidering (PSVI).

Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Den här metoden verifierar att en XAttribute överensstämmer med en angiven XmlSchemaObject och en XmlSchemaSet.

Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean)

Verifierar att en XDocument överensstämmer med en XSD i ett XmlSchemaSet, om du vill fylla i XML-trädet med post-schema-validation infoset (PSVI).

Validate(XDocument, XmlSchemaSet, ValidationEventHandler)

Den här metoden verifierar att en XDocument överensstämmer med en XSD i en XmlSchemaSet.

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

Verifierar att ett XElement underträd överensstämmer med en angiven XmlSchemaObject och , XmlSchemaSetom du vill fylla i XML-trädet med infouppsättningen efter schemavalidering (PSVI).

Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Den här metoden verifierar att ett XElement underträd överensstämmer med en angiven XmlSchemaObject och en XmlSchemaSet.

Gäller för