Partager via


XmlSchemaSet.Add Méthode

Définition

Ajoute le schéma XSD (Xml Schema Definition Language) donné à l’objet XmlSchemaSet.

Surcharges

Nom Description
Add(XmlSchema)

Ajoute l’élément donné XmlSchema au XmlSchemaSet.

Add(XmlSchemaSet)

Ajoute tous les schémas XSD (XML Schema Definition Language) dans le XmlSchemaSetfichier donnéXmlSchemaSet.

Add(String, String)

Ajoute le schéma XSD (XML Schema Definition Language) à l’URL spécifiée dans le XmlSchemaSet.

Add(String, XmlReader)

Ajoute le schéma XSD (XML Schema Definition Language) contenu dans le XmlReaderXmlSchemaSetfichier .

Add(XmlSchema)

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

Ajoute l’élément donné XmlSchema au 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 au XmlSchemaSet.

Retours

Objet XmlSchema si le schéma est valide. Si le schéma n’est pas valide et qu’il ValidationEventHandler est spécifié, null il est retourné et l’événement de validation approprié est déclenché. Dans le cas contraire, un XmlSchemaException est déclenché.

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 le XmlSchemaSet, la 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
Source:
XmlSchemaSet.cs
Source:
XmlSchemaSet.cs

Ajoute tous les schémas XSD (XML Schema Definition Language) dans le XmlSchemaSetfichier donné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 le XmlSchemaSet fichier 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 XmlSchemaSet d’un nouveau XmlSchemaSet schéma à 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 XmlSchemaSetschéma, il doit être correctement prétraité. Le prétraitement effectue les tâches de base suivantes.

  1. Le schéma est vérifié pour la validité structurelle en fonction des 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 correctement récupérés sont également ajoutés au XmlSchemaSet. Les schémas importés sont ajoutés en tant qu’objets distincts XmlSchema et les schémas inclus font partie de l’inclusion XmlSchema.

Si la IsCompiled propriété de l’ajout XmlSchemaSet est true, tous les schémas de l’ajout XmlSchemaSet sont ajoutés à l’objet XmlSchemaSet. Si la IsCompiled propriété de l’ajout XmlSchemaSet est false, chaque schéma ajouté est prétraité avant d’être ajouté. Si l’un des schémas dans le nouveau XmlSchemaSet schéma n’a pas été prétraité, aucun schéma n’est ajouté ; à la place, un XmlSchemaException schéma est levée. 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 schemaSet1 et que sa IsCompiled propriété est définie falsesur , 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 soit rencontré et qu’une exception soit levée.

S’applique à

Add(String, String)

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

Ajoute le schéma XSD (XML Schema Definition Language) à l’URL spécifiée dans le 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

Propriété de schéma targetNamespace ou null utilisation de la targetNamespace propriété spécifiée 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 qu’il ValidationEventHandler est spécifié, null il est retourné et l’événement de validation approprié est déclenché. Dans le cas contraire, un XmlSchemaException est déclenché.

Exceptions

Le schéma n’est pas valide.

L’URL transmise 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 à http://www.contoso.com/books l’objet 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 utilise le books.xsd fichier 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 XmlSchemaSetschéma, il doit être correctement prétraité. Le prétraitement effectue les tâches de base suivantes.

  1. Le schéma est vérifié pour la validité structurelle en fonction des 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 correctement récupérés sont également ajoutés au XmlSchemaSet. Les schémas importés sont ajoutés en tant qu’objets distincts XmlSchema et les schémas inclus font partie de l’inclusion XmlSchema.

Les remarques suivantes sont importantes à prendre en compte lors de l’utilisation de la Add méthode.

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

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

  • 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 résolution d’inclure et d’importer des éléments entraîne un avertissement de validation de schéma et, si aucun n’a été spécifié pour l’objetXmlSchemaSet, cet avertissement ne ValidationEventHandler sera pas signalé.

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

    Note

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

  • La Add méthode de l’objet XmlSchemaSet a la possibilité d’utiliser l’espace de noms cible défini dans un schéma, plutôt que d’exiger que l’espace de noms cible soit spécifié comme 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é comme targetNamespace paramètre de la Add méthode. Par conséquent, le targetNamespace fichier 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 s’il http://www.contoso.com/books avait été spécifié comme targetNamespace paramètre.

  • Le schéma XML W3C permet aux schémas sans espace de noms cible d’être inclus dans les schémas avec un espace de noms cible défini. Dans ce cas, le schéma sans espace de noms cible défini est coéché dans l’espace de noms cible du schéma inclus. 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é à l’espace XmlSchemaSet 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
Source:
XmlSchemaSet.cs
Source:
XmlSchemaSet.cs

Ajoute le schéma XSD (XML Schema Definition Language) contenu dans le XmlReaderXmlSchemaSetfichier .

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

Propriété de schéma targetNamespace ou null utilisation de la targetNamespace propriété spécifiée 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 qu’il ValidationEventHandler est spécifié, null il est retourné et l’événement de validation approprié est déclenché. Dans le cas contraire, un XmlSchemaException est déclenché.

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 l’espace XmlTextReader de noms cible du http://www.contoso.com/booksXmlSchemaSetfichier .

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 XmlSchemaSetschéma, il doit être correctement prétraité. Le prétraitement effectue les tâches de base suivantes.

  1. Le schéma est vérifié pour la validité structurelle en fonction des 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 correctement récupérés sont également ajoutés au XmlSchemaSet. Les schémas importés sont ajoutés en tant qu’objets distincts XmlSchema et les schémas inclus font partie de l’inclusion XmlSchema.

Les remarques suivantes sont importantes à prendre en compte lors de l’utilisation de la Add méthode.

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

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

  • Si la XmlReader valeur est positionnée 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 de schéma inline n’est pas appliqué pour les documents de schéma XML W3C.

  • La XmlResolver propriété du fichier XmlReader n’est 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 l’objet XmlSchemaSet est utilisée.

  • La Add méthode de l’objet XmlSchemaSet a la possibilité d’utiliser l’espace de noms cible défini dans un schéma, plutôt que d’exiger que l’espace de noms cible soit spécifié comme paramètre lorsque la Add méthode est appelée. La spécification null ou String.Empty la Add méthode indique à 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.

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

S’applique à