XmlSchema 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.
Représentation en mémoire d’un schéma XML, comme spécifié dans la partie 1 du schéma XML W3C (World Wide Web Consortium) : Structures et Schéma XML Partie 2 : Types de données].
public ref class XmlSchema
public ref class XmlSchema : System::Xml::Schema::XmlSchemaObject
public class XmlSchema
public class XmlSchema : System.Xml.Schema.XmlSchemaObject
type XmlSchema = class
type XmlSchema = class
inherit XmlSchemaObject
Public Class XmlSchema
Public Class XmlSchema
Inherits XmlSchemaObject
- Héritage
-
XmlSchema
- Héritage
Exemples
L’exemple suivant crée une définition de schéma.
using System;
using System.Xml;
using System.Xml.Schema;
class XMLSchemaExamples
{
public static void Main()
{
XmlSchema schema = new XmlSchema();
// <xs:element name="cat" type="xs:string"/>
XmlSchemaElement elementCat = new XmlSchemaElement();
schema.Items.Add(elementCat);
elementCat.Name = "cat";
elementCat.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="dog" type="xs:string"/>
XmlSchemaElement elementDog = new XmlSchemaElement();
schema.Items.Add(elementDog);
elementDog.Name = "dog";
elementDog.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="redDog" substitutionGroup="dog" />
XmlSchemaElement elementRedDog = new XmlSchemaElement();
schema.Items.Add(elementRedDog);
elementRedDog.Name = "redDog";
elementRedDog.SubstitutionGroup = new XmlQualifiedName("dog");
// <xs:element name="brownDog" substitutionGroup ="dog" />
XmlSchemaElement elementBrownDog = new XmlSchemaElement();
schema.Items.Add(elementBrownDog);
elementBrownDog.Name = "brownDog";
elementBrownDog.SubstitutionGroup = new XmlQualifiedName("dog");
// <xs:element name="pets">
XmlSchemaElement elementPets = new XmlSchemaElement();
schema.Items.Add(elementPets);
elementPets.Name = "pets";
// <xs:complexType>
XmlSchemaComplexType complexType = new XmlSchemaComplexType();
elementPets.SchemaType = complexType;
// <xs:choice minOccurs="0" maxOccurs="unbounded">
XmlSchemaChoice choice = new XmlSchemaChoice();
complexType.Particle = choice;
choice.MinOccurs = 0;
choice.MaxOccursString = "unbounded";
// <xs:element ref="cat"/>
XmlSchemaElement catRef = new XmlSchemaElement();
choice.Items.Add(catRef);
catRef.RefName = new XmlQualifiedName("cat");
// <xs:element ref="dog"/>
XmlSchemaElement dogRef = new XmlSchemaElement();
choice.Items.Add(dogRef);
dogRef.RefName = new XmlQualifiedName("dog");
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.ValidationEventHandler += new ValidationEventHandler(ValidationCallbackOne);
schemaSet.Add(schema);
schemaSet.Compile();
XmlSchema compiledSchema = null;
foreach (XmlSchema schema1 in schemaSet.Schemas())
{
compiledSchema = schema1;
}
XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
compiledSchema.Write(Console.Out, nsmgr);
}
public static void ValidationCallbackOne(object sender, ValidationEventArgs args)
{
Console.WriteLine(args.Message);
}
}
Option Explicit On
Option Strict On
Imports System.Xml
Imports System.Xml.Schema
Class XMLSchemaExamples
Public Shared Sub Main()
Dim schema As New XmlSchema()
' <xs:element name="cat" type="xs:string"/>
Dim elementCat As New XmlSchemaElement()
schema.Items.Add(elementCat)
elementCat.Name = "cat"
elementCat.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:element name="dog" type="xs:string"/>
Dim elementDog As New XmlSchemaElement()
schema.Items.Add(elementDog)
elementDog.Name = "dog"
elementDog.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:element name="redDog" substitutionGroup="dog" />
Dim elementRedDog As New XmlSchemaElement()
schema.Items.Add(elementRedDog)
elementRedDog.Name = "redDog"
elementRedDog.SubstitutionGroup = New XmlQualifiedName("dog")
' <xs:element name="brownDog" substitutionGroup ="dog" />
Dim elementBrownDog As New XmlSchemaElement()
schema.Items.Add(elementBrownDog)
elementBrownDog.Name = "brownDog"
elementBrownDog.SubstitutionGroup = New XmlQualifiedName("dog")
' <xs:element name="pets">
Dim elementPets As New XmlSchemaElement()
schema.Items.Add(elementPets)
elementPets.Name = "pets"
' <xs:complexType>
Dim complexType As New XmlSchemaComplexType()
elementPets.SchemaType = complexType
' <xs:choice minOccurs="0" maxOccurs="unbounded">
Dim choice As New XmlSchemaChoice()
complexType.Particle = choice
choice.MinOccurs = 0
choice.MaxOccursString = "unbounded"
' <xs:element ref="cat"/>
Dim catRef As New XmlSchemaElement()
choice.Items.Add(catRef)
catRef.RefName = New XmlQualifiedName("cat")
' <xs:element ref="dog"/>
Dim dogRef As New XmlSchemaElement()
choice.Items.Add(dogRef)
dogRef.RefName = New XmlQualifiedName("dog")
Dim schemaSet As New XmlSchemaSet()
AddHandler schemaSet.ValidationEventHandler, AddressOf ValidationCallbackOne
schemaSet.Add(schema)
schemaSet.Compile()
Dim compiledSchema As XmlSchema = Nothing
For Each schema1 As XmlSchema In schemaSet.Schemas()
compiledSchema = schema1
Next
Dim nsmgr As New XmlNamespaceManager(New NameTable())
nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema")
compiledSchema.Write(Console.Out, nsmgr)
End Sub
Public Shared Sub ValidationCallbackOne(ByVal sender As Object, ByVal args As ValidationEventArgs)
Console.WriteLine(args.Message)
End Sub
End Class
Le fichier XML suivant est généré pour l’exemple de code précédent.
<?xml version="1.0" encoding="IBM437"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="cat" type="xs:string"/>
<xs:element name="dog" type="xs:string"/>
<xs:element name="redDog" type="xs:string" substitutionGroup="dog"/>
<xs:element name="brownDog" type="xs:string" substitutionGroup ="dog" />
<xs:element name="pets">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="cat"/>
<xs:element ref="dog"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Remarques
Important
- N’utilisez pas de schémas provenant de sources ou d’emplacements inconnus ou non approuvés. Cela compromettra la sécurité de votre code.
- Les schémas XML (y compris les schémas inline) sont intrinsèquement vulnérables aux attaques par déni de service ; ne les acceptent pas dans des scénarios non approuvés.
- Les exceptions levées suite à l’utilisation de la XmlSchema classe, telles que la XmlSchemaException classe, peuvent contenir des informations sensibles qui ne doivent pas être exposées dans des scénarios non approuvés. Par exemple, la SourceUri propriété d’un XmlSchemaException retourne le chemin URI vers le fichier de schéma à l'origine de l’exception. La propriété SourceUri ne doit pas être exposée dans des scénarios non fiables. Les exceptions doivent être gérées correctement afin que ces informations sensibles ne soient pas exposées dans des scénarios non approuvés.
Constructeurs
| Nom | Description |
|---|---|
| XmlSchema() |
Initialise une nouvelle instance de la classe XmlSchema. |
Champs
| Nom | Description |
|---|---|
| InstanceNamespace |
Espace de noms d’instance de schéma XML. Ce champ est constant. |
| Namespace |
Espace de noms de schéma XML. Ce champ est constant. |
Propriétés
| Nom | Description |
|---|---|
| AttributeFormDefault |
Obtient ou définit le formulaire pour les attributs déclarés dans l’espace de noms cible du schéma. |
| AttributeGroups |
Obtient la valeur de compilation post-schéma de tous les groupes d’attributs globaux dans le schéma. |
| Attributes |
Obtient la valeur de compilation post-schéma pour tous les attributs du schéma. |
| BlockDefault |
Obtient ou définit l’attribut |
| ElementFormDefault |
Obtient ou définit le formulaire pour les éléments déclarés dans l’espace de noms cible du schéma. |
| Elements |
Obtient la valeur post-compilation du schéma pour tous les éléments du schéma. |
| FinalDefault |
Obtient ou définit l’attribut |
| Groups |
Obtient la valeur de compilation post-schéma de tous les groupes du schéma. |
| Id |
Obtient ou définit l’ID de chaîne. |
| Includes |
Obtient la collection de schémas inclus et importés. |
| IsCompiled |
Indique si le schéma a été compilé. |
| Items |
Obtient la collection d’éléments de schéma dans le schéma et est utilisée pour ajouter de nouveaux types d’éléments au niveau de l’élément |
| LineNumber |
Obtient ou définit le numéro de ligne dans le fichier auquel l’élément |
| LinePosition |
Obtient ou définit la position de ligne dans le fichier auquel l’élément |
| Namespaces |
Obtient ou définit l’utilisation XmlSerializerNamespaces avec cet objet de schéma. (Hérité de XmlSchemaObject) |
| Notations |
Obtient la valeur de compilation post-schéma pour toutes les notations du schéma. |
| Parent |
Obtient ou définit le parent de ce XmlSchemaObject. (Hérité de XmlSchemaObject) |
| SchemaTypes |
Obtient la valeur post-compilation du schéma de tous les types de schémas dans le schéma. |
| SourceUri |
Obtient ou définit l’emplacement source du fichier qui a chargé le schéma. (Hérité de XmlSchemaObject) |
| TargetNamespace |
Obtient ou définit l’URI (Uniform Resource Identifier) de l’espace de noms cible du schéma. |
| UnhandledAttributes |
Obtient ou définit les attributs qualifiés qui n’appartiennent pas à l’espace de noms cible du schéma. |
| Version |
Obtient ou définit la version du schéma. |
Méthodes
| Nom | Description |
|---|---|
| Compile(ValidationEventHandler, XmlResolver) |
Obsolète.
Obsolète.
Obsolète.
Compile le modèle objet de schéma XML (SOM) en informations de schéma à des fins de validation. Permet de vérifier la structure syntaxique et sémantique du SOM généré par programmation. La vérification de la validation sémantique est effectuée pendant la compilation. |
| Compile(ValidationEventHandler) |
Obsolète.
Obsolète.
Obsolète.
Compile le modèle objet de schéma XML (SOM) en informations de schéma à des fins de validation. Permet de vérifier la structure syntaxique et sémantique du SOM généré par programmation. La vérification de la validation sémantique est effectuée pendant la compilation. |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| Read(Stream, ValidationEventHandler) |
Lit un schéma XML à partir du flux fourni. |
| Read(TextReader, ValidationEventHandler) |
Lit un schéma XML à partir du schéma fourni TextReader. |
| Read(XmlReader, ValidationEventHandler) |
Lit un schéma XML à partir du schéma fourni XmlReader. |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
| Write(Stream, XmlNamespaceManager) |
Écrit le schéma XML dans le schéma fourni Stream à l’aide de l’élément XmlNamespaceManager spécifié. |
| Write(Stream) |
Écrit le schéma XML dans le flux de données fourni. |
| Write(TextWriter, XmlNamespaceManager) |
Écrit le schéma XML dans le schéma fourni TextWriter. |
| Write(TextWriter) |
Écrit le schéma XML dans le schéma fourni TextWriter. |
| Write(XmlWriter, XmlNamespaceManager) |
Écrit le schéma XML dans le schéma fourni XmlWriter. |
| Write(XmlWriter) |
Écrit le schéma XML dans le schéma fourni XmlWriter. |