Aracılığıyla paylaş


XmlSchemaSet.RemoveRecursive(XmlSchema) Yöntem

Tanım

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:childSchema2childSchema1

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.

Şunlara uygulanır