XmlSchemaSet.RemoveRecursive(XmlSchema) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Entfernt das angegebene XSD-Schema (XML Schema Definition Language) und alle Schemas, die aus dem XmlSchemaSet importiert werden.
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
Das aus der XmlSchema zu entfernende XmlSchemaSet-Objekt.
Gibt zurück
true
, wenn das XmlSchema-Objekt und alle zugehörigen Importe erfolgreich entfernt wurden, andernfalls false
.
Ausnahmen
Der als Parameter übergebene XmlSchema entspricht null
.
Beispiele
Im folgenden Codebeispiel wird das Hinzufügen mehrerer Schemas zu einem XmlSchemaSetveranschaulicht. Anschließend wird eines der Schemas und alle Schemas entfernt, die mithilfe der RemoveRecursive -Methode importiert werden.
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);
}
}
Hinweise
Die RemoveRecursive -Methode entfernt das angegebene Schema und alle schemas, die sie aus importiert XmlSchemaSet, solange keine Abhängigkeiten vom Schema oder den importierten Schemas bestehen. Wenn Abhängigkeiten vom Schema oder seinen importierten Schemas in vorhanden XmlSchemaSetsind, wird nichts entfernt und RemoveRecursive gibt zurück false
. Wenn false
zurückgegeben und ein ValidationEventHandler definiert ist, wird eine Warnung an den Ereignishandler gesendet, der die Abhängigkeiten beschreibt.
Wenn das angegebene Schema andere Schemas importiert und das angegebene Schema zuvor mit der Remove -Methode entfernt wurde, entfernt die RemoveRecursive Methode die importierten Schemas nicht und gibt zurück false
. Beispielsweise, wenn parentSchema
Importe childSchema1
und childSchema2
der folgende Code nur entfernt parentSchema
, aber nicht die importierten childSchema1
Schemas und childSchema2
:
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();
Der folgende Code entfernt die parentSchema
und die importierten Schemas:
XmlSchemaSet ss = new XmlSchemaSet();
XmlSchema xs = XmlSchema.Read(XmlReader.Create("parentSchema.xsd"), null);
ss.Add(xs);
ss.Compile();
ss.RemoveRecursive(xs);
ss.Compile();
Die RemoveRecursive -Methode hat keine Auswirkungen auf den Zustand der IsCompiled Eigenschaft.