XmlSchemaSet.RemoveRecursive(XmlSchema) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Remove o esquema de linguagem de definição de esquema XML (XSD) especificado e todas as importações de esquema do 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
Parâmetros
- schemaToRemove
- XmlSchema
O objeto XmlSchema a ser removido do XmlSchemaSet.
Retornos
true
se o objeto XmlSchema e todas as suas importações foram removidos com êxito; caso contrário, false
.
Exceções
O XmlSchema passado como um parâmetro é null
.
Exemplos
O exemplo de código a seguir ilustra a adição de vários esquemas a um XmlSchemaSet, removendo um dos esquemas e todos os esquemas importados usando o RemoveRecursive método .
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);
}
}
Comentários
O RemoveRecursive método remove o esquema especificado e todos os esquemas importados do XmlSchemaSet, desde que não haja dependências no esquema ou em seus esquemas importados. Se houver dependências no esquema ou em seus esquemas importados no XmlSchemaSet, nada será removido e RemoveRecursive retornará false
. Se false
for retornado e um ValidationEventHandler for definido, um aviso será enviado para o manipulador de eventos que descreve as dependências.
Se o esquema especificado importar outros esquemas e o esquema especificado tiver sido removido anteriormente com o Remove método , o RemoveRecursive método não removerá os esquemas importados e retornará false
. Por exemplo, se parentSchema
importações childSchema1
e childSchema2
o seguinte código removerão parentSchema
apenas , mas não os esquemas e childSchema2
importadoschildSchema1
:
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();
O código a seguir removerá o parentSchema
e os esquemas importados:
XmlSchemaSet ss = new XmlSchemaSet();
XmlSchema xs = XmlSchema.Read(XmlReader.Create("parentSchema.xsd"), null);
ss.Add(xs);
ss.Compile();
ss.RemoveRecursive(xs);
ss.Compile();
O RemoveRecursive método não tem efeito sobre o estado da IsCompiled propriedade.