Extensions Klasa

Definicja

Ta klasa zawiera metody rozszerzenia LINQ to XML na potrzeby walidacji 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 tak, 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.

Po zweryfikowaniu XDocumentelementu , 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

Nazwa Opis
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, Boolean)

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

Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

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

Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean)

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

Validate(XDocument, XmlSchemaSet, ValidationEventHandler)

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

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

Sprawdza, czy XElement drzewo podrzędne jest zgodne z określonym XmlSchemaObject i XmlSchemaSet, 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

Dotyczy