XmlDocument.Validate Méthode
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.
Valide les XmlDocument schémas XSD (XML Schema Definition Language) contenus dans la Schemas propriété.
Surcharges
| Nom | Description |
|---|---|
| Validate(ValidationEventHandler) |
Valide les XmlDocument schémas XSD (XML Schema Definition Language) contenus dans la Schemas propriété. |
| Validate(ValidationEventHandler, XmlNode) |
Valide l’objet XmlNode spécifié par rapport aux schémas XSD (XML Schema Definition Language) dans la Schemas propriété. |
Validate(ValidationEventHandler)
- Source:
- XmlDocument.cs
- Source:
- XmlDocument.cs
- Source:
- XmlDocument.cs
- Source:
- XmlDocument.cs
- Source:
- XmlDocument.cs
Valide les XmlDocument schémas XSD (XML Schema Definition Language) contenus dans la Schemas propriété.
public:
void Validate(System::Xml::Schema::ValidationEventHandler ^ validationEventHandler);
public void Validate(System.Xml.Schema.ValidationEventHandler? validationEventHandler);
public void Validate(System.Xml.Schema.ValidationEventHandler validationEventHandler);
member this.Validate : System.Xml.Schema.ValidationEventHandler -> unit
Public Sub Validate (validationEventHandler As ValidationEventHandler)
Paramètres
- validationEventHandler
- ValidationEventHandler
Objet ValidationEventHandler qui reçoit des informations sur les avertissements et erreurs de validation de schéma.
Exceptions
Un événement de validation de schéma s’est produit et aucun objet n’a ValidationEventHandler été spécifié.
Exemples
L’exemple suivant illustre l’utilisation de la Validate méthode. L’exemple crée un XmlDocument schéma XSD associé à l’aide des objets et XmlReader des XmlReaderSettings objets. L’exemple utilise ensuite la XPathNavigator classe pour modifier incorrectement la valeur typée d’un élément dans le document XML générant une erreur de validation de schéma.
using System;
using System.Xml;
using System.Xml.Schema;
using System.Xml.XPath;
class XPathValidation
{
static void Main()
{
try
{
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add("http://www.contoso.com/books", "contosoBooks.xsd");
settings.ValidationType = ValidationType.Schema;
XmlReader reader = XmlReader.Create("contosoBooks.xml", settings);
XmlDocument document = new XmlDocument();
document.Load(reader);
ValidationEventHandler eventHandler = new ValidationEventHandler(ValidationEventHandler);
// the following call to Validate succeeds.
document.Validate(eventHandler);
// add a node so that the document is no longer valid
XPathNavigator navigator = document.CreateNavigator();
navigator.MoveToFollowing("price", "http://www.contoso.com/books");
XmlWriter writer = navigator.InsertAfter();
writer.WriteStartElement("anotherNode", "http://www.contoso.com/books");
writer.WriteEndElement();
writer.Close();
// the document will now fail to successfully validate
document.Validate(eventHandler);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
static void ValidationEventHandler(object sender, ValidationEventArgs e)
{
switch (e.Severity)
{
case XmlSeverityType.Error:
Console.WriteLine("Error: {0}", e.Message);
break;
case XmlSeverityType.Warning:
Console.WriteLine("Warning {0}", e.Message);
break;
}
}
}
Imports System.Xml
Imports System.Xml.Schema
Imports System.Xml.XPath
Class XPathValidation
Shared Sub Main()
Try
Dim settings As XmlReaderSettings = New XmlReaderSettings()
settings.Schemas.Add("http://www.contoso.com/books", "contosoBooks.xsd")
settings.ValidationType = ValidationType.Schema
Dim reader As XmlReader = XmlReader.Create("contosoBooks.xml", settings)
Dim document As XmlDocument = New XmlDocument()
document.Load(reader)
Dim eventHandler As ValidationEventHandler = New ValidationEventHandler(AddressOf ValidationEventHandler)
' the following call to Validate succeeds.
document.Validate(eventHandler)
' add a node so that the document is no longer valid
Dim navigator As XPathNavigator = document.CreateNavigator()
navigator.MoveToFollowing("price", "http://www.contoso.com/books")
Dim writer As XmlWriter = navigator.InsertAfter()
writer.WriteStartElement("anotherNode", "http://www.contoso.com/books")
writer.WriteEndElement()
writer.Close()
' the document will now fail to successfully validate
document.Validate(eventHandler)
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Sub
Shared Sub ValidationEventHandler(ByVal sender As Object, ByVal e As ValidationEventArgs)
Select Case e.Severity
Case XmlSeverityType.Error
Console.WriteLine("Error: {0}", e.Message)
Case XmlSeverityType.Warning
Console.WriteLine("Warning {0}", e.Message)
End Select
End Sub
End Class
L’exemple prend les fichiers et contosoBooks.xsd les contosoBooks.xml fichiers comme entrée.
<?xml version="1.0" encoding="utf-8" ?>
<bookstore xmlns="http://www.contoso.com/books">
<book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.contoso.com/books" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="bookstore">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" />
<xs:element name="author">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="name" type="xs:string" />
<xs:element minOccurs="0" name="first-name" type="xs:string" />
<xs:element minOccurs="0" name="last-name" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="price" type="xs:decimal" />
</xs:sequence>
<xs:attribute name="genre" type="xs:string" use="required" />
<xs:attribute name="publicationdate" type="xs:date" use="required" />
<xs:attribute name="ISBN" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Remarques
La Validate méthode valide les données XML dans les XmlDocument schémas contenus dans la Schemas propriété. La Validate méthode effectue l’augmentation de l’ensemble d’informations. Plus précisément, une fois la validation réussie, les valeurs de schéma par défaut sont appliquées, les valeurs de texte sont converties en valeurs atomiques si nécessaire, et les informations de type sont associées à des éléments d’informations validés. Le résultat est une sous-arborescence XML précédemment non typée dans l’arborescence XmlDocument remplacée par une sous-arborescence typée.
Tenez compte des points suivants lors de l’utilisation de la Validate méthode :
- Indicateurs d’emplacement de schéma comme
xsi:schemaLocationouxsi:noNamespaceSchemaLocationsont ignorés. - Les schémas inline sont ignorés.
- Si des erreurs de validation de schéma se produisent lors de la validation, elles XmlDocument sont partiellement validées avec certains nœuds avec des informations de type correctes et certaines sans.
- Le processus de validation inclut la vérification de l’unicité et des contraintes de référence (
xs:ID, ,xs:IDREFxs:key,xs:keyrefetxs:unique).
S’applique à
Validate(ValidationEventHandler, XmlNode)
- Source:
- XmlDocument.cs
- Source:
- XmlDocument.cs
- Source:
- XmlDocument.cs
- Source:
- XmlDocument.cs
- Source:
- XmlDocument.cs
public:
void Validate(System::Xml::Schema::ValidationEventHandler ^ validationEventHandler, System::Xml::XmlNode ^ nodeToValidate);
public void Validate(System.Xml.Schema.ValidationEventHandler? validationEventHandler, System.Xml.XmlNode nodeToValidate);
public void Validate(System.Xml.Schema.ValidationEventHandler validationEventHandler, System.Xml.XmlNode nodeToValidate);
member this.Validate : System.Xml.Schema.ValidationEventHandler * System.Xml.XmlNode -> unit
Public Sub Validate (validationEventHandler As ValidationEventHandler, nodeToValidate As XmlNode)
Paramètres
- validationEventHandler
- ValidationEventHandler
Objet ValidationEventHandler qui reçoit des informations sur les avertissements et erreurs de validation de schéma.
- nodeToValidate
- XmlNode
Objet XmlNode créé à partir d’un XmlDocument à valider.
Exceptions
Le XmlNode paramètre d’objet n’a pas été créé à partir d’un XmlDocument.
Le XmlNode paramètre d’objet n’est pas un élément, un attribut, un fragment de document ou le nœud racine.
Un événement de validation de schéma s’est produit et aucun objet n’a ValidationEventHandler été spécifié.
Exemples
Pour obtenir un exemple de méthode Validate , consultez la Validate méthode.
Remarques
La Validate méthode valide les données XML dans l’objet XmlNode par rapport aux schémas contenus dans la Schemas propriété. La Validate méthode effectue l’augmentation de l’ensemble d’informations. Plus précisément, une fois la validation réussie, les valeurs de schéma par défaut sont appliquées, les valeurs de texte sont converties en valeurs atomiques si nécessaire, et les informations de type sont associées à des éléments d’informations validés. Le résultat est une sous-arborescence XML précédemment non typée dans l’arborescence XmlDocument remplacée par une sous-arborescence typée.
Les remarques suivantes sont importantes à prendre en compte lors de l’utilisation de la Validate méthode.
Indicateurs d’emplacement de schéma comme
xsi:schemaLocationouxsi:noNamespaceSchemaLocationsont ignorés.Les schémas inline sont ignorés.
Si des erreurs de validation de schéma se produisent lors de la validation, elles XmlDocument sont partiellement validées avec certains nœuds avec des informations de type correctes et certaines sans.
Si le nœud à valider est le nœud racine, le processus de validation inclut la vérification de l’unicité et des contraintes de référence (xs:ID, , xs:IDREF, xs:keyxs:keyrefet xs:unique) ; sinon, l’unicité et les contraintes de référence sont omises.