Partager via


XmlSchemaSet.Add Méthode

Définition

Ajoute le schéma en langage XSD (XML Schema Definition) XML donné à XmlSchemaSet.

Surcharges

Add(XmlSchema)

Ajoute le XmlSchema donné à XmlSchemaSet.

Add(XmlSchemaSet)

Ajoute tous les schémas en langage XSD (XML Schema Definition) XML au XmlSchemaSet donné au XmlSchemaSet.

Add(String, String)

Ajoute le schéma en langage XSD (XML Schema Definition) XML à l'URL spécifiée à XmlSchemaSet.

Add(String, XmlReader)

Ajoute le schéma en langage XSD (XML Schema Definition) XML contenu dans XmlReader à XmlSchemaSet.

Add(XmlSchema)

Source:
XmlSchemaSet.cs
Source:
XmlSchemaSet.cs
Source:
XmlSchemaSet.cs

Ajoute le XmlSchema donné à XmlSchemaSet.

public:
 System::Xml::Schema::XmlSchema ^ Add(System::Xml::Schema::XmlSchema ^ schema);
public System.Xml.Schema.XmlSchema? Add (System.Xml.Schema.XmlSchema schema);
public System.Xml.Schema.XmlSchema Add (System.Xml.Schema.XmlSchema schema);
member this.Add : System.Xml.Schema.XmlSchema -> System.Xml.Schema.XmlSchema
Public Function Add (schema As XmlSchema) As XmlSchema

Paramètres

schema
XmlSchema

Objet XmlSchema à ajouter à XmlSchemaSet.

Retours

Objet XmlSchema si le schéma est valide. Si le schéma n'est pas valide et que ValidationEventHandler est spécifié, null est retourné et l'événement de validation approprié est déclenché. Sinon, une exception XmlSchemaException est levée.

Exceptions

Le schéma n'est pas valide.

L'objet XmlSchema passé en tant que paramètre est null.

Remarques

Si l’objet XmlSchema existe déjà dans , XmlSchemaSetla Add méthode ne fait rien.

La fonctionnalité de cette méthode est identique à celle de la Add méthode .

S’applique à

Add(XmlSchemaSet)

Source:
XmlSchemaSet.cs
Source:
XmlSchemaSet.cs
Source:
XmlSchemaSet.cs

Ajoute tous les schémas en langage XSD (XML Schema Definition) XML au XmlSchemaSet donné au XmlSchemaSet.

public:
 void Add(System::Xml::Schema::XmlSchemaSet ^ schemas);
public void Add (System.Xml.Schema.XmlSchemaSet schemas);
member this.Add : System.Xml.Schema.XmlSchemaSet -> unit
Public Sub Add (schemas As XmlSchemaSet)

Paramètres

schemas
XmlSchemaSet

Objet XmlSchemaSet.

Exceptions

Un schéma dans XmlSchemaSet n'est pas valide.

L'objet XmlSchemaSet passé en tant que paramètre est null.

Exemples

L’exemple de code suivant illustre l’ajout de schémas à un XmlSchemaSet, puis l’ajout de à XmlSchemaSet un nouveau XmlSchemaSet à l’aide de la Add méthode .

Dim schemaSet1 As XmlSchemaSet = New XmlSchemaSet
schemaSet1.Add("http://www.contoso.com/retail", "http://www.contoso.com/retail.xsd")
schemaSet1.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd")
schemaSet1.Add("http://www.contoso.com/music", "http://www.contoso.com/music.xsd")

Dim schemaSet2 As XmlSchemaSet = New XmlSchemaSet
schemaSet2.Add(schemaSet1)
XmlSchemaSet schemaSet1 = new XmlSchemaSet();
schemaSet1.Add("http://www.contoso.com/retail", "http://www.contoso.com/retail.xsd");
schemaSet1.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd");
schemaSet1.Add("http://www.contoso.com/music", "http://www.contoso.com/music.xsd");

XmlSchemaSet schemaSet2 = new XmlSchemaSet();
schemaSet2.Add(schemaSet1);

Remarques

Avant qu’un schéma puisse être ajouté à un XmlSchemaSet, il doit être prétraité avec succès. Le prétraitement effectue les tâches de base suivantes.

  1. La validité structurelle du schéma est vérifiée conformément aux règles du schéma XML W3C, mais le schéma n’est pas entièrement validé.

  2. Les références aux composants de schéma interne et externe sont résolues. Tous les schémas importés ou inclus qui sont récupérés avec succès sont également ajoutés à .XmlSchemaSet Les schémas importés sont ajoutés en tant qu’objets distincts XmlSchema , et les schémas inclus font partie du incluant XmlSchema.

Si la propriété du XmlSchemaSet à ajouter est true, tous les schémas de XmlSchemaSet à ajouter sont ajoutés au XmlSchemaSet.IsCompiled Si la IsCompiled propriété de à XmlSchemaSet ajouter est false, chaque schéma ajouté est prétraité avant d’être ajouté. Si l’un des schémas dans le nouvellement ajouté XmlSchemaSet ne parvient pas à être prétraité, aucun schéma n’est ajouté ; à la place, un XmlSchemaException est déclenché. Par conséquent, les deux exemples de code suivants ne sont pas équivalents.

' First example
schemaSet.Add(schemaSet1)

' Second example
Dim schema As XmlSchema

For Each schema in schemaSet.Schemas()

    schemaSet.Add(schema)

Next
// First example
schemaSet.Add(schemaSet1);

// Second example
foreach(XmlSchema schema in schemaSet.Schemas())
{
    schemaSet.Add(schema);
}

Les deux exemples de code précédents ne sont pas équivalents. Dans le premier exemple, si un schéma non valide existe dans schemaSet1 et que sa IsCompiled propriété a la falsevaleur , aucun schéma n’est ajouté à schemaSet. Dans le deuxième exemple, un certain nombre de schémas peuvent être ajoutés à schemaSet avant qu’un schéma non valide ne soit rencontré et qu’une exception soit levée.

S’applique à

Add(String, String)

Source:
XmlSchemaSet.cs
Source:
XmlSchemaSet.cs
Source:
XmlSchemaSet.cs

Ajoute le schéma en langage XSD (XML Schema Definition) XML à l'URL spécifiée à XmlSchemaSet.

public:
 System::Xml::Schema::XmlSchema ^ Add(System::String ^ targetNamespace, System::String ^ schemaUri);
public System.Xml.Schema.XmlSchema? Add (string? targetNamespace, string schemaUri);
public System.Xml.Schema.XmlSchema Add (string targetNamespace, string schemaUri);
member this.Add : string * string -> System.Xml.Schema.XmlSchema
Public Function Add (targetNamespace As String, schemaUri As String) As XmlSchema

Paramètres

targetNamespace
String

La propriété targetNamespace du schéma, ou null, pour utiliser le targetNamespace spécifié dans le schéma.

schemaUri
String

URL qui spécifie le schéma à charger.

Retours

Objet XmlSchema si le schéma est valide. Si le schéma n'est pas valide et que ValidationEventHandler est spécifié, null est retourné et l'événement de validation approprié est déclenché. Sinon, une exception XmlSchemaException est levée.

Exceptions

Le schéma n'est pas valide.

L'URL passée en tant que paramètre est null ou Empty.

Exemples

L’exemple de code suivant ajoute le http://www.contoso.com/books.xsd schéma avec un espace de noms cible de http://www.contoso.com/books à .XmlSchemaSet

Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd")
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd");

L'exemple prend le fichier books.xsd comme entrée.

<?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:unsignedShort" use="required" />
                        <xs:attribute name="ISBN" type="xs:string" use="required" />
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

Remarques

Avant qu’un schéma puisse être ajouté à un XmlSchemaSet, il doit être prétraité avec succès. Le prétraitement effectue les tâches de base suivantes.

  1. La validité structurelle du schéma est vérifiée conformément aux règles du schéma XML W3C, mais le schéma n’est pas entièrement validé.

  2. Les références aux composants de schéma interne et externe sont résolues. Tous les schémas importés ou inclus qui sont récupérés avec succès sont également ajoutés à .XmlSchemaSet Les schémas importés sont ajoutés en tant qu’objets distincts XmlSchema , et les schémas inclus font partie du incluant XmlSchema.

Voici les remarques importantes à prendre en compte lors de l’utilisation de la Add méthode .

  • L’ajout d’un schéma à avec XmlSchemaSet la même URL d’espace de noms cible et d’emplacement de XmlSchemaSet schéma qu’un schéma déjà contenu dans retourne l’objet de schéma d’origine.

  • Lorsqu’un nouveau schéma est correctement ajouté à un XmlSchemaSet, la IsCompiled propriété de est XmlSchemaSet définie sur false.

  • Tous les éléments include ou import rencontrés dans un schéma XML sont résolus lorsque la Add méthode est appelée. L’échec de la résolution des éléments include et import entraîne un avertissement de validation de schéma et, si aucun n’a ValidationEventHandler été spécifié pour l’objet XmlSchemaSet , cet avertissement ne sera pas signalé.

  • Si un schéma avec le même espace de noms cible qu’un schéma qui existe déjà dans est XmlSchemaSet ajouté au XmlSchemaSet, les deux schémas sont ajoutés.

    Notes

    Ce comportement diffère de l’objet obsolète XmlSchemaCollection .

  • La Add méthode de a XmlSchemaSet la possibilité d’utiliser l’espace de noms cible défini dans un schéma, au lieu d’exiger que l’espace de noms cible soit spécifié en tant que paramètre lorsque la Add méthode est appelée. La spécification null dans le targetNamespace paramètre de la Add méthode indique à d’utiliser XmlSchemaSet l’espace de noms cible défini dans le schéma, comme illustré dans l’exemple de code suivant.

Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add(Nothing, "books.xsd")

Dim schema As XmlSchema
For Each schema In schemaSet.Schemas("http://www.contoso.com/books")
    schema.Write(Console.Out)
Next
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add(null, "books.xsd");

foreach(XmlSchema schema in schemaSet.Schemas("http://www.contoso.com/books"))
{
    schema.Write(Console.Out);
}

Dans l’exemple de code ci-dessus, null est spécifié en tant que targetNamespace paramètre de la Add méthode . Par conséquent, le targetNamespace défini dans le fichier books.xml est utilisé. Dans ce cas, le résultat de l’appel de la Add méthode serait identique si http://www.contoso.com/books avait été spécifié en tant que targetNamespace paramètre .

  • Le schéma XML W3C permet d’inclure des schémas sans espace de noms cible dans des schémas avec un espace de noms cible défini. Dans ce cas, le schéma sans espace de noms cible défini est entré dans l’espace de noms cible du schéma incluant. Le schéma inclus est traité comme s’il avait cet espace de noms cible défini. De même, les schémas sans espace de noms cible peuvent être ajoutés à l’espace XmlSchemaSet de noms cible spécifié par la Add méthode, comme illustré dans l’exemple suivant.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="A" type="xs:string" />
</xs:schema>

Si le schéma ci-dessus est ajouté à avec XmlSchemaSet l’espace de noms http://www.contoso.com/new/targetnamespace cible (comme indiqué dans le code ci-dessous), il est traité comme si l’espace de noms cible déclaré dans le schéma était http://www.contoso.com/new/targetnamespace.

Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add("http://www.contoso.com/new/targetnamespace", "http://www.contoso.com/targetnamespace.xsd")

Dim schema As XmlSchema

For Each schema in schemaSet.Schemas()

    Console.WriteLine(schema.TargetNamespace)

Next
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add("http://www.contoso.com/new/targetnamespace", "http://www.contoso.com/targetnamespace.xsd");
foreach(XmlSchema schema in schemaSet.Schemas())
{
    Console.WriteLine(schema.TargetNamespace);
}

S’applique à

Add(String, XmlReader)

Source:
XmlSchemaSet.cs
Source:
XmlSchemaSet.cs
Source:
XmlSchemaSet.cs

Ajoute le schéma en langage XSD (XML Schema Definition) XML contenu dans XmlReader à XmlSchemaSet.

public:
 System::Xml::Schema::XmlSchema ^ Add(System::String ^ targetNamespace, System::Xml::XmlReader ^ schemaDocument);
public System.Xml.Schema.XmlSchema? Add (string? targetNamespace, System.Xml.XmlReader schemaDocument);
public System.Xml.Schema.XmlSchema Add (string targetNamespace, System.Xml.XmlReader schemaDocument);
member this.Add : string * System.Xml.XmlReader -> System.Xml.Schema.XmlSchema
Public Function Add (targetNamespace As String, schemaDocument As XmlReader) As XmlSchema

Paramètres

targetNamespace
String

La propriété targetNamespace du schéma, ou null, pour utiliser le targetNamespace spécifié dans le schéma.

schemaDocument
XmlReader

Objet XmlReader.

Retours

Objet XmlSchema si le schéma est valide. Si le schéma n'est pas valide et que ValidationEventHandler est spécifié, null est retourné et l'événement de validation approprié est déclenché. Sinon, une exception XmlSchemaException est levée.

Exceptions

Le schéma n'est pas valide.

L'objet XmlReader passé en tant que paramètre est null.

Exemples

L’exemple de code suivant ajoute le schéma books.xsd contenu dans avec XmlTextReader un espace de noms cible de http://www.contoso.com/books à .XmlSchemaSet

Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add("http://www.contoso.com/books", New XmlTextReader("books.xsd")
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add("http://www.contoso.com/books", new XmlTextReader("books.xsd");

Remarques

Avant qu’un schéma puisse être ajouté à un XmlSchemaSet, il doit être prétraité avec succès. Le prétraitement effectue les tâches de base suivantes.

  1. La validité structurelle du schéma est vérifiée conformément aux règles du schéma XML W3C, mais le schéma n’est pas entièrement validé.

  2. Les références aux composants de schéma interne et externe sont résolues. Tous les schémas importés ou inclus qui sont récupérés avec succès sont également ajoutés à .XmlSchemaSet Les schémas importés sont ajoutés en tant qu’objets distincts XmlSchema , et les schémas inclus font partie du incluant XmlSchema.

Voici les remarques importantes à prendre en compte lors de l’utilisation de la Add méthode .

  • Les schémas correctement récupérés importés ou inclus par les schémas contenus dans sont XmlReader également ajoutés au XmlSchemaSet.

  • Si le XmlReader n’est pas positionné sur l’élément racine, une XmlSchemaException est levée, sauf si l’élément actuel est un élément. Si l’élément actif est un xs:schema élément, le document de schéma est lu dans ; XmlSchemaSetsinon, un XmlSchemaException est levée, car le schéma n’est pas valide.

  • Si est XmlReader positionné sur une séquence de nœuds XML, seul le premier nœud de la séquence est ajouté.

  • Si le schéma a été créé à partir d’un XmlReader.Create appel de méthode, la valeur de la ProcessInlineSchema propriété est ignorée, car le traitement du schéma inline n’est pas appliqué pour les documents de schéma XML W3C.

  • La XmlResolver propriété de n’est XmlReader pas utilisée pour résoudre les références aux espaces de noms ou aux emplacements de schéma dans les éléments include et import. Au lieu de cela, la XmlResolver propriété de est XmlSchemaSet utilisée.

  • La Add méthode de a XmlSchemaSet la possibilité d’utiliser l’espace de noms cible défini dans un schéma, au lieu d’exiger que l’espace de noms cible soit spécifié en tant que paramètre lorsque la Add méthode est appelée. La spécification ou nullString.Empty de la Add méthode indique à d’utiliser XmlSchemaSet l’espace de noms cible défini dans le schéma. Pour obtenir un exemple de ce comportement, consultez la Add méthode .

Les fonctionnalités restantes de cette méthode sont identiques à celles de la Add méthode .

S’applique à