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

Определение

Удаляет указанную схему языка определения схем XML (XSD) и все импортируемые ей схемы из 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

Параметры

schemaToRemove
XmlSchema XmlSchema XmlSchema XmlSchema

Объект XmlSchema, который необходимо удалить из коллекции XmlSchemaSet.The XmlSchema object to remove from the XmlSchemaSet.

Возвраты

Значение true, если объект XmlSchema и все импортируемые им объекты были успешно удалены; в противном случае — значение false.true if the XmlSchema object and all its imports were successfully removed; otherwise, false.

Исключения

XmlSchema, передаваемый в качестве параметра, равен null.The XmlSchema passed as a parameter is null.

Примеры

В следующем примере кода показано добавление нескольких схем в XmlSchemaSet, а затем удаление одной из схем и всех импортируемых схем RemoveRecursive с помощью метода.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);  
    }  
}  

Комментарии

Метод удаляет указанную схему и все схемы XmlSchemaSet, которые она импортирует, при условии, что нет зависимостей от схемы или ее импортированных схем. RemoveRecursiveThe 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. Если имеются зависимости от схемы или ее импортированных схем в XmlSchemaSet, ничего не удаляется и RemoveRecursive не возвращается false.If there are dependencies on the schema or its imported schemas in the XmlSchemaSet, nothing is removed and RemoveRecursive returns false. Если false возвращается значение ValidationEventHandler и определено, в обработчик событий, описывающий зависимости, отправляется предупреждение.If false is returned and a ValidationEventHandler is defined, a warning is sent to the event handler describing the dependencies.

Если указанная схема импортирует другие схемы, а указанная схема была ранее удалена с Remove помощью метода, RemoveRecursive то этот метод не удалит импортированные схемы и возвратит 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. parentSchema Например, если Imports childSchema1 и childSchema2 следующий код удалит только parentSchema, но не импортированные childSchema1 и childSchema2 схемы: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();  

Следующий код parentSchema удалит и импортированные схемы: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();  

Метод не влияет на состояние IsCompiled свойства. RemoveRecursiveThe RemoveRecursive method has no effect on the state of the IsCompiled property.

Применяется к