Udostępnij za pośrednictwem


Extensions Klasa

Definicja

Ta klasa zawiera metody rozszerzenia LINQ to XML na potrzeby weryfikacji XSD.

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

Przykłady

Plik XSD w przykładowym pliku XSD: Klienci i zamówienia zawierają schemat, który może służyć do weryfikowania dokumentu XML w przykładowym pliku XML: klienci i zamówienia. Poniższy przykład ładuje schemat i dokument, weryfikuje dokument, zmienia dokument, aby xs:key relacja i xs:keyref nie jest prawidłowa, a następnie próbuje ponownie zweryfikować.

                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  

Ten przykład generuje następujące wyniki:

Validating custOrd  
custOrd validated  

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

Uwagi

Ta klasa zawiera również metody pobierania zestawu informacji po weryfikacji schematu (PSVI) zweryfikowanego węzła XML.

Podczas sprawdzania XDocumentpoprawności elementu , XElementlub XAttributemożna również opcjonalnie wypełnić drzewo XML zestawem informacji po weryfikacji schematu. Informacje PSVI są dodawane jako adnotacja typu System.Xml.Schema.XmlSchemaInfo.

Metody

GetSchemaInfo(XAttribute)

Pobiera zestaw informacji po weryfikacji schematu (PSVI) zweryfikowanego atrybutu.

GetSchemaInfo(XElement)

Pobiera zestaw informacji po weryfikacji schematu (PSVI) zweryfikowanego elementu.

Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Ta metoda sprawdza, czy element XAttribute jest zgodny z określonym XmlSchemaObject i .XmlSchemaSet

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

Sprawdza, czy element XAttribute jest zgodny z określonym XmlSchemaObject i XmlSchemaSet, opcjonalnie wypełnia drzewo XML za pomocą zestawu informacji po weryfikacji schematu (PSVI).

Validate(XDocument, XmlSchemaSet, ValidationEventHandler)

Ta metoda sprawdza, czy element XDocument jest zgodny z XSD w elemecie XmlSchemaSet.

Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean)

Sprawdza, czy element XDocument jest zgodny z XSD w XmlSchemaSetpliku , opcjonalnie wypełnia drzewo XML przy użyciu zestawu informacji po weryfikacji schematu (PSVI).

Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Ta metoda sprawdza, czy XElement drzewo podrzędne jest zgodne z określonym XmlSchemaObject i .XmlSchemaSet

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

Sprawdza, czy XElement drzewo podrzędne jest zgodne z określonym XmlSchemaObject i XmlSchemaSet, opcjonalnie wypełnianie drzewa XML za pomocą zestawu informacji po weryfikacji schematu (PSVI).

Dotyczy