Extensions Třída

Definice

Tato třída obsahuje linQ to XML rozšiřující metody pro ověřování XSD.

public ref class Extensions abstract sealed
public static class Extensions
type Extensions = class
Public Module Extensions
Dědičnost
Extensions

Příklady

XSD v ukázkovém souboru XSD: Zákazníci a objednávky obsahují schéma, které lze použít k ověření dokumentu XML v ukázkovém souboru XML: Zákazníci a objednávky. Následující příklad načte schéma a dokument, ověří dokument, změní dokument tak, aby xs:key relace xs:keyref nebyla platná, a pak se pokusí znovu ověřit.

                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

Tento příklad vytvoří následující výstup:

Validating custOrd
custOrd validated

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

Poznámky

Tato třída také obsahuje metody pro získání po-schema-validation infoset (PSVI) ověřeného uzlu XML.

Při ověření objektu XDocument, XElementnebo XAttributemůžete volitelně naplnit strom XML sadou informací po ověření schématu. Informace PSVI jsou přidány jako poznámka typu System.Xml.Schema.XmlSchemaInfo.

Metody

Name Description
GetSchemaInfo(XAttribute)

Získá po schema-validation infoset (PSVI) ověřeného atributu.

GetSchemaInfo(XElement)

Získá post-schema-validation infoset (PSVI) ověřeného elementu.

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

Ověří, že je XAttribute v souladu se zadaným XmlSchemaObject a volitelným XmlSchemaSetnaplněním stromu XML pomocí sady informací psVI (post-schema-validation).

Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Tato metoda ověří, zda XAttribute je v souladu se zadaným XmlSchemaObject a XmlSchemaSet.

Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean)

Ověří, zda je XDocument v objektu XSD v objektu XmlSchemaSetxSD volitelně naplněný strom XML sadou informací po ověření schématu (PSVI).

Validate(XDocument, XmlSchemaSet, ValidationEventHandler)

Tato metoda ověří, že XDocument odpovídá XSD v objektu XmlSchemaSet.

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

Ověří, že XElement dílčí strom odpovídá zadanému XmlSchemaObject a volitelnému XmlSchemaSetnaplnění stromu XML sadou informací po ověření schématu (PSVI).

Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Tato metoda ověří, že XElement dílčí strom odpovídá zadanému XmlSchemaObject a určitému XmlSchemaSetstromu .

Platí pro