Extensions Classe

Définition

Cette classe contient les méthodes d’extension LINQ to XML pour la validation XSD.

public ref class Extensions abstract sealed
public static class Extensions
type Extensions = class
Public Module Extensions
Héritage
Extensions

Exemples

Le XSD dans l’exemple de fichier XSD : Clients et commandes contient un schéma qui peut être utilisé pour valider le document XML dans l’exemple de fichier XML : Clients et commandes. L’exemple suivant charge le schéma et le document, valide le document, modifie le document de sorte que la xs:key relation et xs:keyref ne soit pas valide, puis tente à nouveau de valider.

                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  

Cet exemple produit la sortie suivante :

Validating custOrd  
custOrd validated  

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

Remarques

Cette classe contient également des méthodes pour obtenir l’infoset post-validation de schéma (PSVI) d’un nœud XML validé.

Lorsque vous validez un XDocument, XElementou XAttribute, vous pouvez également remplir l’arborescence XML avec l’ensemble d’informations post-validation du schéma. Les informations PSVI sont ajoutées en tant qu’annotation de type System.Xml.Schema.XmlSchemaInfo.

Méthodes

GetSchemaInfo(XAttribute)

Obtient le jeu d'informations postérieures à la validation du schéma (jeu PSVI) d'un attribut validé.

GetSchemaInfo(XElement)

Obtient le jeu d'informations postérieures à la validation du schéma (jeu PSVI) d'un élément validé.

Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Cette méthode valide le fait qu'un XAttribute est conforme à un XmlSchemaObject spécifié et un XmlSchemaSet.

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

Valide le fait qu'un XAttribute est conforme à un XmlSchemaObject spécifié et un XmlSchemaSet, en remplissant en option l'arborescence XML à l'aide du jeu d'informations postérieures à la validation du schéma (jeu PSVI).

Validate(XDocument, XmlSchemaSet, ValidationEventHandler)

Cette méthode valide le fait qu'un XDocument est conforme à un XSD dans un XmlSchemaSet.

Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean)

Valide le fait qu'un XDocument est conforme à un XSD dans un XmlSchemaSet, en remplissant en option l'arborescence XML à l'aide du jeu d'informations postérieures à la validation du schéma (jeu PSVI).

Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Cette méthode valide le fait qu'une sous-arborescence XElement est conforme à un XmlSchemaObject spécifié et un XmlSchemaSet.

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

Valide le fait qu'une sous-arborescence XElement est conforme à un XmlSchemaObject spécifié et un XmlSchemaSet, en remplissant en option l'arborescence XML à l'aide du jeu d'informations postérieures à la validation du schéma (jeu PSVI).

S’applique à