XmlSchemaSet.RemoveRecursive(XmlSchema) 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.
Supprime le schéma en langage XSD (XML Schema Definition) spécifié et tous les schémas qu'il importe de XmlSchemaSet.
public:
bool RemoveRecursive(System::Xml::Schema::XmlSchema ^ schemaToRemove);
public bool RemoveRecursive (System.Xml.Schema.XmlSchema schemaToRemove);
member this.RemoveRecursive : System.Xml.Schema.XmlSchema -> bool
Public Function RemoveRecursive (schemaToRemove As XmlSchema) As Boolean
Paramètres
- schemaToRemove
- XmlSchema
Objet XmlSchema à supprimer de XmlSchemaSet.
Retours
true
si l'objet XmlSchema et toutes ses importations ont été supprimés ; sinon, false
.
Exceptions
XmlSchema passé en tant que paramètre est null
.
Exemples
L’exemple de code suivant illustre l’ajout de plusieurs schémas à un XmlSchemaSet, puis la suppression de l’un des schémas et de tous les schémas importés à l’aide de la RemoveRecursive méthode .
Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add("http://www.contoso.com/retail", "http://www.contoso.com/retail.xsd")
schemaSet.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd")
schemaSet.Add("http://www.contoso.com/music", "http://www.contoso.com/music.xsd")
Dim schema As XmlSchema
For Each schema In schemaSet.Schemas()
If schema.TargetNamespace = "http://www.contoso.com/music" Then
schemaSet.RemoveRecursive(schema)
End If
Next
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add("http://www.contoso.com/retail", "http://www.contoso.com/retail.xsd");
schemaSet.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd");
schemaSet.Add("http://www.contoso.com/music", "http://www.contoso.com/music.xsd");
foreach (XmlSchema schema in schemaSet.Schemas())
{
if (schema.TargetNamespace == "http://www.contoso.com/music")
{
schemaSet.RemoveRecursive(schema);
}
}
Remarques
La RemoveRecursive méthode supprime le schéma spécifié et tous les schémas qu’elle importe du XmlSchemaSet, tant qu’il n’existe aucune dépendance sur le schéma ou ses schémas importés. S’il existe des dépendances sur le schéma ou ses schémas importés dans , XmlSchemaSetrien n’est supprimé et RemoveRecursive retourne false
. Si false
est retourné et qu’un ValidationEventHandler est défini, un avertissement est envoyé au gestionnaire d’événements décrivant les dépendances.
Si le schéma spécifié importe d’autres schémas et que le schéma spécifié a été précédemment supprimé avec la Remove méthode, la RemoveRecursive méthode ne supprime pas les schémas importés et retourne false
. Par exemple, si parentSchema
importe childSchema1
et childSchema2
que le code suivant supprime parentSchema
uniquement , mais pas les schémas et childSchema2
importés childSchema1
:
XmlSchemaSet ss = new XmlSchemaSet();
XmlSchema xs = XmlSchema.Read(XmlReader.Create("parentSchema.xsd"), null);
ss.Add(xs);
ss.Compile();
ss.Remove(xs);
ss.Compile();
ss.RemoveRecursive(xs);
ss.Compile();
Le code suivant supprime les parentSchema
schémas importés et :
XmlSchemaSet ss = new XmlSchemaSet();
XmlSchema xs = XmlSchema.Read(XmlReader.Create("parentSchema.xsd"), null);
ss.Add(xs);
ss.Compile();
ss.RemoveRecursive(xs);
ss.Compile();
La RemoveRecursive méthode n’a aucun effet sur l’état de la IsCompiled propriété.