XmlSchemaSet.RemoveRecursive(XmlSchema) XmlSchemaSet.RemoveRecursive(XmlSchema) XmlSchemaSet.RemoveRecursive(XmlSchema) XmlSchemaSet.RemoveRecursive(XmlSchema) Method

Définition

Supprime le schéma en langage XSD (XML Schema Definition) spécifié et tous les schémas qu'il importe de XmlSchemaSet.Removes the specified XML Schema definition language (XSD) schema and all the schemas it imports from the 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 XmlSchema XmlSchema XmlSchema

Objet XmlSchema à supprimer de XmlSchemaSet.The XmlSchema object to remove from the XmlSchemaSet.

Retours

true si l'objet XmlSchema et toutes ses importations ont été supprimés ; sinon, false.true if the XmlSchema object and all its imports were successfully removed; otherwise, false.

Exceptions

XmlSchema passé en tant que paramètre est null.The XmlSchema passed as a parameter is null.

Exemples

L’exemple de code suivant illustre l’ajout de plusieurs schémas à un XmlSchemaSet, puis supprime l’un des schémas et tous les schémas importés à l’aide de la RemoveRecursive (méthode).The following code example illustrates adding multiple schemas to an XmlSchemaSet, then removing one of the schemas and all the schemas it imports using the RemoveRecursive method.

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

Le RemoveRecursive méthode supprime le schéma spécifié et tous les schémas importés à partir de la XmlSchemaSet, tant qu’il n’existe aucune dépendance sur le schéma ou ses schémas importés.The RemoveRecursive method removes the specified schema and all the schemas it imports from the XmlSchemaSet, as long as there are no dependencies on the schema or its imported schemas. S’il existe des dépendances sur le schéma ou ses schémas importés dans le XmlSchemaSet, rien n’est supprimé et RemoveRecursive retourne false.If there are dependencies on the schema or its imported schemas in the XmlSchemaSet, nothing is removed and RemoveRecursive returns false. Si false est retourné et un ValidationEventHandler est défini, un avertissement est envoyé au gestionnaire d’événements décrivant les dépendances.If false is returned and a ValidationEventHandler is defined, a warning is sent to the event handler describing the dependencies.

Si le schéma spécifié importe d’autres schémas et le schéma spécifié a été précédemment supprimé avec le Remove (méthode), le RemoveRecursive méthode ne supprimera pas les schémas importés et retournera false.If the specified schema imports other schemas and the specified schema was previously removed with the Remove method, the RemoveRecursive method will not remove the imported schemas and will return false. Par exemple, si parentSchema importe childSchema1 et childSchema2 supprime uniquement le code suivant parentSchema, mais pas importé childSchema1 et childSchema2 schémas :For example, if parentSchema imports childSchema1 and childSchema2 the following code will only remove parentSchema, but not the imported childSchema1 and childSchema2 schemas:

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 le parentSchema et les schémas importés :The following code will remove the parentSchema and the imported schemas:

XmlSchemaSet ss = new XmlSchemaSet();  
XmlSchema xs = XmlSchema.Read(XmlReader.Create("parentSchema.xsd"), null);  
ss.Add(xs);  
ss.Compile();  
ss.RemoveRecursive(xs);  
ss.Compile();  

Le RemoveRecursive méthode n’a aucun effet sur l’état de la IsCompiled propriété.The RemoveRecursive method has no effect on the state of the IsCompiled property.

S’applique à