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 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 |