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.

戻り値

XmlSchema オブジェクトとそれがインポートしたすべてのスキーマが正常に削除された場合は true。それ以外の場合は falsetrue 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);  
    }  
}  

注釈

RemoveRecursiveメソッドは、指定されたスキーマとそれがインポートのすべてのスキーマを削除、XmlSchemaSetスキーマまたはそのインポートされたスキーマへの依存関係がない限り、します。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. スキーマで、インポートされたスキーマに依存関係があるかどうか、 XmlSchemaSet、何が削除されるとRemoveRecursive返しますfalseIf 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インポートchildSchema1childSchema2のみが、次のコードを削除parentSchema、インポートされたされませんが、childSchema1childSchema2スキーマ。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();  

RemoveRecursiveメソッドの状態に影響を与えません、IsCompiledプロパティ。The RemoveRecursive method has no effect on the state of the IsCompiled property.

適用対象