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 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.
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é.
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 false
valeur , 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.
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é.
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 letargetNamespace
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.
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.
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é.
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
null
String.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 .