XmlSchemaSet.Add 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.
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.
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é.
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.
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é.
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
nulldans letargetNamespaceparamè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.
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.
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é.
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
nullou 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.