Share via


XmlSchemaSet.RemoveRecursive(XmlSchema) Metode

Definisi

Menghapus skema bahasa definisi Skema XML (XSD) yang ditentukan dan semua skema yang diimpornya XmlSchemaSetdari .

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

Parameter

schemaToRemove
XmlSchema

Objek XmlSchema yang akan dihapus dari XmlSchemaSet.

Mengembalikan

trueXmlSchema jika objek dan semua impornya berhasil dihapus; jika tidak, false.

Pengecualian

Yang XmlSchema diteruskan sebagai parameter adalah null.

Contoh

Contoh kode berikut mengilustrasikan penambahan beberapa skema ke XmlSchemaSet, lalu menghapus salah satu skema dan semua skema yang diimpornya menggunakan RemoveRecursive metode .

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);
    }
}

Keterangan

Metode ini RemoveRecursive menghapus skema yang ditentukan dan semua skema yang diimpornya dari XmlSchemaSet, selama tidak ada dependensi pada skema atau skema yang diimpor. Jika ada dependensi pada skema atau skema yang diimpor di XmlSchemaSet, tidak ada yang dihapus dan RemoveRecursive mengembalikan false. Jika false dikembalikan dan ValidationEventHandler ditentukan, peringatan dikirim ke penanganan aktivitas yang menjelaskan dependensi.

Jika skema yang ditentukan mengimpor skema lain dan skema yang ditentukan sebelumnya dihapus dengan Remove metode , RemoveRecursive metode tidak akan menghapus skema yang diimpor dan akan mengembalikan false. Misalnya, jika impor childSchema1 dan childSchema2 kode berikut hanya akan menghapus parentSchema, tetapi bukan skema dan childSchema2 yang diimpor childSchema1parentSchema:

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();

Kode berikut akan menghapus parentSchema dan skema yang diimpor:

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

Metode RemoveRecursive ini tidak berpengaruh pada status IsCompiled properti.

Berlaku untuk