XmlSchemaSet.RemoveRecursive(XmlSchema) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Odebere zadané schéma jazyka XSD (Xml Schema Definition Language) a všechna schémata importovaná z objektu 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
Parametry
- schemaToRemove
- XmlSchema
Objekt XmlSchema , který se má odebrat z objektu XmlSchemaSet.
Návraty
true
pokud se XmlSchema objekt a všechny jeho importy úspěšně odebraly, false
v opačném případě .
Výjimky
Předaný XmlSchema jako parametr je null
.
Příklady
Následující příklad kódu ukazuje přidání více schémat do objektu XmlSchemaSeta pak odebrání jednoho ze schémat a všech schémat importovaných pomocí RemoveRecursive metody .
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);
}
}
Poznámky
Metoda RemoveRecursive odebere zadané schéma a všechna schémata importovaná z objektu XmlSchemaSet, pokud neexistují žádné závislosti na schématu nebo jeho importovaných schématech. Pokud existují závislosti na schématu nebo importovaných schématech v XmlSchemaSet, nic se neodebere a RemoveRecursive vrátí false
. Pokud false
se vrátí a ValidationEventHandler je definována hodnota , obslužné rutině události se odešle upozornění popisující závislosti.
Pokud zadané schéma importuje jiná schémata a zadané schéma bylo dříve odebráno metodou Remove , RemoveRecursive metoda importovaná schémata neodebere a vrátí false
. Pokud například parentSchema
import childSchema1
a childSchema2
následující kód odebere parentSchema
jenom , ale ne importovaná childSchema1
schémata a 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();
Následující kód odebere parentSchema
importovaná schémata a :
XmlSchemaSet ss = new XmlSchemaSet();
XmlSchema xs = XmlSchema.Read(XmlReader.Create("parentSchema.xsd"), null);
ss.Add(xs);
ss.Compile();
ss.RemoveRecursive(xs);
ss.Compile();
Metoda RemoveRecursive nemá žádný vliv na stav IsCompiled vlastnosti.