Sdílet prostřednictvím


Extensions Třída

Definice

Tato třída obsahuje metody rozšíření LINQ to XML 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 nebyl platný a xs:keyref relace, a pak se pokusí ověřit znovu.

                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 obsahuje také metody pro získání po-schema-validation infoset (PSVI) ověřeného uzlu XML.

Když ověříte , XDocumentXElementnebo XAttributemůžete také volitelně vyplnit strom XML informacemi po ověření schématu. Informace PSVI se přidají jako poznámka typu System.Xml.Schema.XmlSchemaInfo.

Metody

GetSchemaInfo(XAttribute)

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

GetSchemaInfo(XElement)

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

Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Tato metoda ověří, že XAttribute odpovídá zadanému a zadanému XmlSchemaObject objektu XmlSchemaSet.

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

Ověří, že je XAttribute v souladu se zadaným XmlSchemaObject objektem a XmlSchemaSetvolitelně naplní strom XML sadou informací o ověření schématu (PSVI).

Validate(XDocument, XmlSchemaSet, ValidationEventHandler)

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

Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean)

Ověří, že XDocument odpovídá XSD ve XmlSchemaSetstromové struktuře XML, volitelně naplní datovou sadu psVI (post-schema-validation).

Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

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

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

Ověří, že podsložka XElement odpovídá zadanému XmlSchemaObject stromu a XmlSchemaSetvolitelně naplní strom XML sadou informací o ověření schématu (PSVI).

Platí pro