XmlSchemaSet.RemoveRecursive(XmlSchema) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
true
XmlSchema 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 childSchema1
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();
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.