XmlSchemaSet.RemoveRecursive(XmlSchema) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rimuove lo schema XSD (XML Schema Definition Language) specificato e tutti gli schemi importati dalla classe 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
Parametri
- schemaToRemove
- XmlSchema
Oggetto XmlSchema da rimuovere dalla classe XmlSchemaSet.
Restituisce
true
se XmlSchema e tutte le relative importazioni sono stati rimossi; in caso contrario, restituisce false
.
Eccezioni
L'oggetto XmlSchema passato come parametro è null
.
Esempio
Nell'esempio di codice seguente viene illustrato l'aggiunta di più schemi a un XmlSchemaSetoggetto , quindi la rimozione di uno degli schemi e tutti gli schemi importati usando il RemoveRecursive metodo .
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);
}
}
Commenti
Il RemoveRecursive metodo rimuove lo schema specificato e tutti gli schemi importati da XmlSchemaSet, purché non siano presenti dipendenze sullo schema o sui relativi schemi importati. Se sono presenti dipendenze dello schema o dei relativi schemi importati in XmlSchemaSet, non viene rimosso e RemoveRecursive restituisce false
. Se false
viene restituito e viene definito un avviso, viene inviato un ValidationEventHandler avviso al gestore eventi che descrive le dipendenze.
Se lo schema specificato importa altri schemi e lo schema specificato è stato rimosso in precedenza con il Remove metodo, il RemoveRecursive metodo non rimuoverà gli schemi importati e restituirà false
. Ad esempio, se parentSchema
importa childSchema1
e childSchema2
il codice seguente rimuoverà parentSchema
solo , ma non gli schemi importati childSchema1
e 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();
Il codice seguente rimuoverà gli parentSchema
schemi e gli schemi importati:
XmlSchemaSet ss = new XmlSchemaSet();
XmlSchema xs = XmlSchema.Read(XmlReader.Create("parentSchema.xsd"), null);
ss.Add(xs);
ss.Compile();
ss.RemoveRecursive(xs);
ss.Compile();
Il RemoveRecursive metodo non ha alcun effetto sullo stato della IsCompiled proprietà.