XmlSchemaSet.Add 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.
Adiciona o esquema de linguagem de definição de esquema XML (XSD) fornecido ao XmlSchemaSet.
Sobrecargas
Add(XmlSchema) |
Adiciona o XmlSchema especificado ao XmlSchemaSet. |
Add(XmlSchemaSet) |
Adiciona todos os esquemas XSD (linguagem de definição de esquema XML) no XmlSchemaSet determinado para o XmlSchemaSet. |
Add(String, String) |
Adiciona o esquema XSD (linguagem de definição de esquema XML) à URL especificada para o XmlSchemaSet. |
Add(String, XmlReader) |
Adiciona o esquema XSD (linguagem de definição de esquema XML) contido no XmlReader ao XmlSchemaSet. |
Add(XmlSchema)
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
Adiciona o XmlSchema especificado ao XmlSchemaSet.
public:
System::Xml::Schema::XmlSchema ^ Add(System::Xml::Schema::XmlSchema ^ schema);
public System.Xml.Schema.XmlSchema? Add (System.Xml.Schema.XmlSchema schema);
public System.Xml.Schema.XmlSchema Add (System.Xml.Schema.XmlSchema schema);
member this.Add : System.Xml.Schema.XmlSchema -> System.Xml.Schema.XmlSchema
Public Function Add (schema As XmlSchema) As XmlSchema
Parâmetros
- schema
- XmlSchema
O objeto XmlSchema a ser adicionado ao XmlSchemaSet.
Retornos
Um objeto XmlSchema se o esquema for válido. Se o esquema não for válido e um ValidationEventHandler for especificado, null
será retornado e o evento de validação apropriado será acionado. Caso contrário, um XmlSchemaException será gerado.
Exceções
O esquema não é válido.
O objeto XmlSchema passado como um parâmetro é null
.
Comentários
Se o XmlSchema objeto já existir no XmlSchemaSet, o Add método não fará nada.
A funcionalidade desse método é idêntica à do Add método .
Aplica-se a
Add(XmlSchemaSet)
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
Adiciona todos os esquemas XSD (linguagem de definição de esquema XML) no XmlSchemaSet determinado para o XmlSchemaSet.
public:
void Add(System::Xml::Schema::XmlSchemaSet ^ schemas);
public void Add (System.Xml.Schema.XmlSchemaSet schemas);
member this.Add : System.Xml.Schema.XmlSchemaSet -> unit
Public Sub Add (schemas As XmlSchemaSet)
Parâmetros
- schemas
- XmlSchemaSet
O objeto XmlSchemaSet.
Exceções
Um esquema no XmlSchemaSet não é válido.
O objeto XmlSchemaSet passado como um parâmetro é null
.
Exemplos
O exemplo de código a seguir ilustra a adição de esquemas a um XmlSchemaSete, em seguida, a adição de a XmlSchemaSet um novo XmlSchemaSet usando o Add método .
Dim schemaSet1 As XmlSchemaSet = New XmlSchemaSet
schemaSet1.Add("http://www.contoso.com/retail", "http://www.contoso.com/retail.xsd")
schemaSet1.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd")
schemaSet1.Add("http://www.contoso.com/music", "http://www.contoso.com/music.xsd")
Dim schemaSet2 As XmlSchemaSet = New XmlSchemaSet
schemaSet2.Add(schemaSet1)
XmlSchemaSet schemaSet1 = new XmlSchemaSet();
schemaSet1.Add("http://www.contoso.com/retail", "http://www.contoso.com/retail.xsd");
schemaSet1.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd");
schemaSet1.Add("http://www.contoso.com/music", "http://www.contoso.com/music.xsd");
XmlSchemaSet schemaSet2 = new XmlSchemaSet();
schemaSet2.Add(schemaSet1);
Comentários
Antes que um esquema possa ser adicionado a um XmlSchemaSet, ele precisa ser pré-processado com êxito. O pré-processamento executa as seguintes tarefas básicas.
O esquema é verificado quanto à validade estrutural de acordo com as regras do esquema XML W3C, mas o esquema não é totalmente validado.
As referências a componentes de esquema internos e externos são resolvidas. Todos os esquemas importados ou incluídos recuperados com êxito também são adicionados ao XmlSchemaSet. Os esquemas importados são adicionados como objetos separados XmlSchema e os esquemas incluídos fazem parte do incluindo XmlSchema.
Se a propriedade do XmlSchemaSet a ser adicionado for true
, todos os esquemas no XmlSchemaSet a ser adicionado serão adicionados ao XmlSchemaSet.IsCompiled Se a IsCompiled propriedade do XmlSchemaSet a ser adicionada for false
, cada esquema adicionado será pré-processado antes de ser adicionado. Se qualquer um dos esquemas no recém-adicionado XmlSchemaSet não for pré-processado, nenhum esquema será adicionado; em vez disso, um XmlSchemaException será gerado. Como resultado, os dois exemplos de código a seguir não são equivalentes.
' First example
schemaSet.Add(schemaSet1)
' Second example
Dim schema As XmlSchema
For Each schema in schemaSet.Schemas()
schemaSet.Add(schema)
Next
// First example
schemaSet.Add(schemaSet1);
// Second example
foreach(XmlSchema schema in schemaSet.Schemas())
{
schemaSet.Add(schema);
}
Os dois exemplos de código anteriores não são equivalentes. No primeiro exemplo, se um esquema inválido existir no schemaSet1
e sua IsCompiled propriedade for definida false
como , nenhum esquema será adicionado a schemaSet
. No segundo exemplo, um número de esquemas pode ser adicionado a schemaSet
antes que um esquema inválido seja encontrado e uma exceção seja gerada.
Aplica-se a
Add(String, String)
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
Adiciona o esquema XSD (linguagem de definição de esquema XML) à URL especificada para o XmlSchemaSet.
public:
System::Xml::Schema::XmlSchema ^ Add(System::String ^ targetNamespace, System::String ^ schemaUri);
public System.Xml.Schema.XmlSchema? Add (string? targetNamespace, string schemaUri);
public System.Xml.Schema.XmlSchema Add (string targetNamespace, string schemaUri);
member this.Add : string * string -> System.Xml.Schema.XmlSchema
Public Function Add (targetNamespace As String, schemaUri As String) As XmlSchema
Parâmetros
- targetNamespace
- String
A propriedade targetNamespace
do esquema ou null
para usar o targetNamespace
especificado no esquema.
- schemaUri
- String
A URL que especifica o esquema a ser carregado.
Retornos
Um objeto XmlSchema se o esquema for válido. Se o esquema não for válido e um ValidationEventHandler for especificado, null
será retornado e o evento de validação apropriado será acionado. Caso contrário, um XmlSchemaException será gerado.
Exceções
O esquema não é válido.
A URL passada como um parâmetro é null
ou Empty.
Exemplos
O exemplo de código a seguir adiciona o http://www.contoso.com/books.xsd
esquema com um namespace de destino de http://www.contoso.com/books
ao XmlSchemaSet.
Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd")
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd");
O exemplo usa o arquivo books.xsd
como entrada.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.contoso.com/books" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="bookstore">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" />
<xs:element name="author">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="name" type="xs:string" />
<xs:element minOccurs="0" name="first-name" type="xs:string" />
<xs:element minOccurs="0" name="last-name" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="price" type="xs:decimal" />
</xs:sequence>
<xs:attribute name="genre" type="xs:string" use="required" />
<xs:attribute name="publicationdate" type="xs:unsignedShort" use="required" />
<xs:attribute name="ISBN" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Comentários
Antes que um esquema possa ser adicionado a um XmlSchemaSet, ele precisa ser pré-processado com êxito. O pré-processamento executa as seguintes tarefas básicas.
O esquema é verificado quanto à validade estrutural de acordo com as regras do esquema XML W3C, mas o esquema não é totalmente validado.
As referências a componentes de esquema internos e externos são resolvidas. Todos os esquemas importados ou incluídos recuperados com êxito também são adicionados ao XmlSchemaSet. Os esquemas importados são adicionados como objetos separados XmlSchema e os esquemas incluídos fazem parte do incluindo XmlSchema.
Veja a seguir observações importantes a serem consideradas ao usar o Add método .
Adicionar um esquema ao XmlSchemaSet com o mesmo namespace de destino e a URL de local do esquema que um esquema já contido no XmlSchemaSet retornará o objeto de esquema original.
Quando um novo esquema é adicionado com êxito a um XmlSchemaSet, a IsCompiled propriedade do XmlSchemaSet é definida
false
como .Todos os elementos de inclusão ou importação encontrados em um esquema XML são resolvidos quando o Add método é chamado. A falha em resolve incluir e importar elementos resulta em um aviso de validação de esquema e, se nenhum ValidationEventHandler tiver sido especificado para o XmlSchemaSet objeto, esses avisos não serão relatados.
Se um esquema com o mesmo namespace de destino que um esquema que já existe no XmlSchemaSet for adicionado ao XmlSchemaSet, ambos os esquemas serão adicionados.
Observação
Esse comportamento difere do objeto obsoleto XmlSchemaCollection .
O Add método do tem a capacidade de usar o namespace de destino definido em um esquema, em vez de XmlSchemaSet exigir que o namespace de destino seja especificado como um parâmetro quando o Add método é chamado. Especificar
null
notargetNamespace
parâmetro do Add método instrui o XmlSchemaSet a usar o namespace de destino definido no esquema, conforme ilustrado no exemplo de código a seguir.
Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add(Nothing, "books.xsd")
Dim schema As XmlSchema
For Each schema In schemaSet.Schemas("http://www.contoso.com/books")
schema.Write(Console.Out)
Next
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add(null, "books.xsd");
foreach(XmlSchema schema in schemaSet.Schemas("http://www.contoso.com/books"))
{
schema.Write(Console.Out);
}
No exemplo de código acima, null
é especificado como o targetNamespace
parâmetro para o Add método . Como resultado, o targetNamespace
definido no arquivo books.xml é usado. Nesse caso, o resultado da chamada do Add método seria idêntico se http://www.contoso.com/books
tivesse sido especificado como o targetNamespace
parâmetro .
- O esquema XML W3C permite que esquemas sem um namespace de destino sejam incluídos em esquemas com um namespace de destino definido. Nesse caso, o esquema sem um namespace de destino definido é coagido para o namespace de destino do esquema incluído. O esquema incluído é tratado como se tivesse esse namespace de destino definido. Da mesma forma, esquemas sem um namespace de destino podem ser adicionados ao XmlSchemaSet e forçados ao namespace de destino especificado pelo Add método , conforme ilustrado no exemplo a seguir.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="A" type="xs:string" />
</xs:schema>
Se o esquema acima for adicionado ao XmlSchemaSet com o namespace http://www.contoso.com/new/targetnamespace
de destino (conforme mostrado no código abaixo), ele será tratado como se o namespace de destino declarado no esquema fosse http://www.contoso.com/new/targetnamespace
.
Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add("http://www.contoso.com/new/targetnamespace", "http://www.contoso.com/targetnamespace.xsd")
Dim schema As XmlSchema
For Each schema in schemaSet.Schemas()
Console.WriteLine(schema.TargetNamespace)
Next
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add("http://www.contoso.com/new/targetnamespace", "http://www.contoso.com/targetnamespace.xsd");
foreach(XmlSchema schema in schemaSet.Schemas())
{
Console.WriteLine(schema.TargetNamespace);
}
Aplica-se a
Add(String, XmlReader)
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
Adiciona o esquema XSD (linguagem de definição de esquema XML) contido no XmlReader ao XmlSchemaSet.
public:
System::Xml::Schema::XmlSchema ^ Add(System::String ^ targetNamespace, System::Xml::XmlReader ^ schemaDocument);
public System.Xml.Schema.XmlSchema? Add (string? targetNamespace, System.Xml.XmlReader schemaDocument);
public System.Xml.Schema.XmlSchema Add (string targetNamespace, System.Xml.XmlReader schemaDocument);
member this.Add : string * System.Xml.XmlReader -> System.Xml.Schema.XmlSchema
Public Function Add (targetNamespace As String, schemaDocument As XmlReader) As XmlSchema
Parâmetros
- targetNamespace
- String
A propriedade targetNamespace
do esquema ou null
para usar o targetNamespace
especificado no esquema.
Retornos
Um objeto XmlSchema se o esquema for válido. Se o esquema não for válido e um ValidationEventHandler for especificado, null
será retornado e o evento de validação apropriado será acionado. Caso contrário, um XmlSchemaException será gerado.
Exceções
O esquema não é válido.
O objeto XmlReader passado como um parâmetro é null
.
Exemplos
O exemplo de código a seguir adiciona o esquema books.xsd contido no XmlTextReader com um namespace de destino de http://www.contoso.com/books
ao XmlSchemaSet.
Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add("http://www.contoso.com/books", New XmlTextReader("books.xsd")
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add("http://www.contoso.com/books", new XmlTextReader("books.xsd");
Comentários
Antes que um esquema possa ser adicionado a um XmlSchemaSet, ele precisa ser pré-processado com êxito. O pré-processamento executa as seguintes tarefas básicas.
O esquema é verificado quanto à validade estrutural de acordo com as regras do esquema XML W3C, mas o esquema não é totalmente validado.
As referências a componentes de esquema internos e externos são resolvidas. Todos os esquemas importados ou incluídos recuperados com êxito também são adicionados ao XmlSchemaSet. Os esquemas importados são adicionados como objetos separados XmlSchema e os esquemas incluídos fazem parte do incluindo XmlSchema.
Veja a seguir observações importantes a serem consideradas ao usar o Add método .
Esquemas recuperados com êxito importados ou incluídos pelos esquemas contidos no XmlReader também são adicionados ao XmlSchemaSet.
Se o XmlReader não estiver posicionado no elemento raiz, um XmlSchemaException será gerado, a menos que o item atual seja um elemento . Se o item atual for um
xs:schema
elemento , o documento de esquema será lido no XmlSchemaSet; caso contrário, um XmlSchemaException será gerado porque o esquema não é válido.Se o XmlReader estiver posicionado sobre uma sequência de nós XML, somente o primeiro nó na sequência será adicionado.
Se o esquema tiver sido criado a partir de uma XmlReader.Create chamada de método, o valor da ProcessInlineSchema propriedade será ignorado, pois o processamento de esquema embutido não é aplicado a documentos de esquema XML W3C.
A XmlResolver propriedade do XmlReader não é usada para resolve referências a namespaces ou locais de esquema em elementos de inclusão e importação. Em vez disso, a XmlResolver propriedade do XmlSchemaSet é usada.
O Add método do tem a capacidade de usar o namespace de destino definido em um esquema, em vez de XmlSchemaSet exigir que o namespace de destino seja especificado como um parâmetro quando o Add método é chamado. Especificar
null
ou String.Empty para o Add método instrui o XmlSchemaSet a usar o namespace de destino definido no esquema. Para obter um exemplo desse comportamento, consulte o Add método .
A funcionalidade restante desse método é idêntica à do Add método .