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

Definición

Quita el esquema del lenguaje de definición de esquemas XML (XSD) especificado y todos los esquemas que importa 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

Parámetros

schemaToRemove
XmlSchema XmlSchema XmlSchema XmlSchema

Objeto XmlSchema que se va a quitar de XmlSchemaSet.The XmlSchema object to remove from the XmlSchemaSet.

Devoluciones

true si el objeto XmlSchema y todas sus importaciones se han eliminado correctamente; de lo contrario, devuelve false.true if the XmlSchema object and all its imports were successfully removed; otherwise, false.

Excepciones

El objeto XmlSchema que se pasa como parámetro es null.The XmlSchema passed as a parameter is null.

Ejemplos

En el ejemplo de código siguiente se ilustra cómo agregar varios esquemas a un XmlSchemaSet, a continuación, quitar uno de los esquemas y todos los esquemas importa mediante el RemoveRecursive método.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);  
    }  
}  

Comentarios

El RemoveRecursive método quita el esquema especificado y todos los esquemas que importa desde el XmlSchemaSet, siempre y cuando no hay ninguna dependencia en el esquema o sus esquemas importados.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. Si existen dependencias en el esquema o sus esquemas importados en el XmlSchemaSet, nada se quita y RemoveRecursive devuelve false.If there are dependencies on the schema or its imported schemas in the XmlSchemaSet, nothing is removed and RemoveRecursive returns false. Si false se devuelve y una ValidationEventHandler está definido, se envía una advertencia al controlador de eventos que describen las dependencias.If false is returned and a ValidationEventHandler is defined, a warning is sent to the event handler describing the dependencies.

Si el esquema especificado importa otros esquemas y el esquema especificado se quitó anteriormente con el Remove método, el RemoveRecursive método no quitará los esquemas importados y devolverá 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. Por ejemplo, si parentSchema importa childSchema1 y childSchema2 solo quitará el código siguiente parentSchema, pero no importados childSchema1 y childSchema2 esquemas: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();  

El código siguiente se quitará el parentSchema y los esquemas importados: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();  

El RemoveRecursive método no tiene ningún efecto sobre el estado de la IsCompiled propiedad.The RemoveRecursive method has no effect on the state of the IsCompiled property.

Se aplica a