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 : Les clients et les commandes contiennent 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 afin que le document et xs:key la xs:keyref relation ne soient pas valides, puis tente de valider à nouveau.

                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’ensemble d’informations 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 de schéma. Les informations PSVI sont ajoutées en tant qu’annotation de type System.Xml.Schema.XmlSchemaInfo.

Méthodes

Nom Description
GetSchemaInfo(XAttribute)

Obtient l’ensemble d’informations post-validation de schéma (PSVI) d’un attribut validé.

GetSchemaInfo(XElement)

Obtient l’ensemble d’informations post-validation de schéma (PSVI) d’un élément validé.

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

Valide qu’un XAttribute élément est conforme à un ensemble d’informations spécifié XmlSchemaObject et à un XmlSchemaSet, éventuellement en remplit l’arborescence XML avec l’ensemble d’informations post-validation de schéma (PSVI).

Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Cette méthode valide qu’une XAttribute conformité à un élément spécifié XmlSchemaObject et un XmlSchemaSet.

Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean)

Valide qu’un XDocument XSD est conforme à un XSD dans une XmlSchemaSetarborescence XML, éventuellement en remplit l’arborescence XML avec l’ensemble d’informations post-validation de schéma (PSVI).

Validate(XDocument, XmlSchemaSet, ValidationEventHandler)

Cette méthode valide qu’un XDocument XSD est conforme à un XSD dans un XmlSchemaSet.

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

Valide qu’une XElement sous-arborescence est conforme à un objet spécifié XmlSchemaObject et à une XmlSchemaSetarborescence XML , éventuellement en remplit l’arborescence XML avec l’ensemble d’informations post-validation de schéma (PSVI).

Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

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

S’applique à