XmlSchemaSet.RemoveRecursive(XmlSchema) Methode

Definitie

Hiermee verwijdert u het opgegeven XSD-schema (XML Schema Definition Language) en alle schema's die worden geïmporteerd uit de 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

Parameters

schemaToRemove
XmlSchema

Het XmlSchema object dat moet worden verwijderd uit de XmlSchemaSet.

Retouren

true als het XmlSchema object en alle bijbehorende importbewerkingen zijn verwijderd; falseanders .

Uitzonderingen

De XmlSchema doorgegeven als parameter is null.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u meerdere schema's toevoegt aan een XmlSchemaSetschema en vervolgens een van de schema's en alle schema's verwijdert die worden geïmporteerd met behulp van de RemoveRecursive methode.

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

Opmerkingen

De RemoveRecursive methode verwijdert het opgegeven schema en alle schema's die het importeert uit de XmlSchemaSet, zolang er geen afhankelijkheden zijn van het schema of de geïmporteerde schema's. Als er afhankelijkheden zijn van het schema of de geïmporteerde schema's in het XmlSchemaSetschema, wordt er niets verwijderd en RemoveRecursive geretourneerd false. Als false deze wordt geretourneerd en er een ValidationEventHandler is gedefinieerd, wordt er een waarschuwing verzonden naar de gebeurtenis-handler die de afhankelijkheden beschrijft.

Als met het opgegeven schema andere schema's worden geïmporteerd en het opgegeven schema eerder met de Remove methode is verwijderd, worden de RemoveRecursive geïmporteerde schema's niet verwijderd en worden deze geretourneerd false. Als parentSchema bijvoorbeeld importeren childSchema1 en childSchema2 de volgende code alleen worden verwijderd parentSchema, maar niet de geïmporteerde childSchema1 en childSchema2 schema's:

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

Met de volgende code worden de parentSchema en de geïmporteerde schema's verwijderd:

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

De RemoveRecursive methode heeft geen invloed op de status van de IsCompiled eigenschap.

Van toepassing op