XmlSchemaSet.RemoveRecursive(XmlSchema) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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.