Extensions Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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). |