XmlSchemaSet.RemoveRecursive(XmlSchema) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirtilen XML Şeması tanım dili (XSD) şemasını ve öğesinden XmlSchemaSetiçeri aktarıldığı tüm şemaları kaldırır.
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
Parametreler
- schemaToRemove
- XmlSchema
XmlSchema öğesinden XmlSchemaSetkaldırılacak nesne.
Döndürülenler
true
XmlSchema nesnesi ve tüm içeri aktarmaları başarıyla kaldırıldıysa; aksi takdirde , false
.
Özel durumlar
XmlSchema Parametre olarak geçirilen parametresidirnull
.
Örnekler
Aşağıdaki kod örneği, bir XmlSchemaSetöğesine birden çok şema eklemeyi ve ardından yöntemini kullanarak içeri aktarmış olduğu şemalardan birini ve tüm şemaları kaldırmayı RemoveRecursive gösterir.
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);
}
}
Açıklamalar
yöntemi, RemoveRecursive şemaya veya içeri aktarılan şemalarına bağımlılık olmadığı sürece belirtilen şemayı ve öğesinden XmlSchemaSetiçeri aktarmış olduğu tüm şemaları kaldırır. içinde şemaya veya içeri aktarılan şemalarına bağımlılıklar XmlSchemaSetvarsa, hiçbir şey kaldırılmaz ve RemoveRecursive döndürür false
. döndürülür ve bir ValidationEventHandler tanımlanırsafalse
, bağımlılıkları açıklayan olay işleyicisine bir uyarı gönderilir.
Belirtilen şema diğer şemaları içeri aktarırsa ve belirtilen şema daha önce yöntemiyle Remove kaldırıldıysa, RemoveRecursive yöntemi içeri aktarılan şemaları kaldırmaz ve döndürür false
. Örneğin, içeri aktarmalar ve aşağıdaki kod yalnızca öğesini kaldırır, parentSchema
ancak içeri aktarılan childSchema1
ve childSchema2
şemaları kaldırmazparentSchema
:childSchema2
childSchema1
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();
Aşağıdaki kod ve içeri aktarılan şemaları kaldırır 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 yönteminin özelliğin IsCompiled durumu üzerinde hiçbir etkisi yoktur.