Extensions Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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. |