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 : 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). |