XmlSchemaSet.RemoveRecursive(XmlSchema) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定された XML スキーマ定義言語 (XSD) スキーマとそれがインポートしたすべてのスキーマを 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 から削除する XmlSchemaSet オブジェクト。
戻り値
XmlSchema オブジェクトとそれがインポートしたすべてのスキーマが正常に削除された場合は true
。それ以外の場合は false
。
例外
パラメーターとして渡された XmlSchema オブジェクトが null
です。
例
次のコード例は、 に複数のスキーマを XmlSchemaSet追加し、 メソッドを使用してスキーマの 1 つとインポートするすべてのスキーマを削除する方法を RemoveRecursive 示しています。
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削除します。 内のスキーマまたはそのインポートされたスキーマ XmlSchemaSetに依存関係がある場合は、何も削除され、 RemoveRecursive が返されません false
。 が返され、 ValidationEventHandler が定義されている場合false
は、依存関係を説明する警告がイベント ハンドラーに送信されます。
指定したスキーマが他のスキーマをインポートし、指定したスキーマが メソッドで Remove 以前に削除された場合、 RemoveRecursive メソッドはインポートされたスキーマを削除せず、 を返 false
します。 たとえば、parentSchema
インポートchildSchema1
とchildSchema2
次のコードでは、 のみが削除されますが、インポートされた childSchema1
スキーマとchildSchema2
スキーマは削除parentSchema
されません。
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
します。
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 影響しません。
適用対象
.NET