XmlSchemaSet.Add Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Adiciona o esquema XML Schema Definition Language (XSD) dado ao XmlSchemaSet.
Sobrecargas
| Name | Descrição |
|---|---|
| Add(XmlSchema) |
Adiciona o dado XmlSchema ao XmlSchemaSet. |
| Add(XmlSchemaSet) |
Adiciona todos os esquemas da linguagem de definição de esquemas XML (XSD) no dado XmlSchemaSet ao XmlSchemaSet. |
| Add(String, String) |
Adiciona o esquema XML Schema Definition Language (XSD) na URL especificada ao XmlSchemaSet. |
| Add(String, XmlReader) |
Adiciona o esquema XML Schema Definition Language (XSD) contido no XmlReaderXmlSchemaSet. |
Add(XmlSchema)
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
Adiciona o dado XmlSchema 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 XmlSchema objeto a adicionar ao XmlSchemaSet.
Devoluções
Um XmlSchema objeto se o esquema for válido. Se o esquema não for válido e a ValidationEventHandler for especificado, então null é devolvido e o evento de validação apropriado é levantado. Caso contrário, um XmlSchemaException é lançado.
Exceções
O esquema não é válido.
O XmlSchema objeto passado como parâmetro é null.
Observações
Se o XmlSchema objeto já existe no XmlSchemaSet, o Add método não faz nada.
A funcionalidade deste método é idêntica à do Add método.
Aplica-se a
Add(XmlSchemaSet)
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
Adiciona todos os esquemas da linguagem de definição de esquemas XML (XSD) no dado XmlSchemaSet ao 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 XmlSchemaSet objeto passado como parâmetro é null.
Exemplos
O exemplo de código seguinte ilustra a adição de esquemas a um XmlSchemaSet, e depois a adição dos XmlSchemaSet a 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);
Observações
Antes de um esquema poder ser adicionado a um XmlSchemaSet, tem de ser pré-processado com sucesso. O pré-processamento executa as seguintes tarefas básicas.
O esquema é verificado quanto à validade estrutural de acordo com as regras do W3C XML Schema, mas o esquema não é totalmente validado.
As referências a componentes internos e externos do esquema são resolvidas. Quaisquer esquemas importados ou incluídos que sejam recuperados com sucesso também são adicionados ao XmlSchemaSet. Os esquemas importados são adicionados como objetos separados XmlSchema , e os esquemas incluídos passam a fazer parte da inclusão XmlSchema.
Se a IsCompiled propriedade do XmlSchemaSet para adicionar é true, todos os esquemas em para XmlSchemaSet adicionar são adicionados ao XmlSchemaSet. Se a IsCompiled propriedade de adicionar XmlSchemaSet for false, cada esquema adicionado é pré-processado antes de ser adicionado. Se algum dos esquemas do recém-adicionado XmlSchemaSet não for pré-processado, nenhum esquema é adicionado; em vez disso, um XmlSchemaException é lançado. Como resultado, os dois exemplos de código seguintes 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 existir um esquema inválido em schemaSet1 e a sua IsCompiled propriedade for definida para false, nenhum esquema é adicionado a schemaSet. No segundo exemplo, um número de esquemas pode ser adicionado schemaSet antes de ser encontrado um esquema inválido e uma exceção ser lançada.
Aplica-se a
Add(String, String)
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
Adiciona o esquema XML Schema Definition Language (XSD) na URL especificada ao 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 do esquema targetNamespace , ou null para usar a targetNamespace especificada no esquema.
- schemaUri
- String
A URL que especifica o esquema a carregar.
Devoluções
Um XmlSchema objeto se o esquema for válido. Se o esquema não for válido e a ValidationEventHandler for especificado, então null é devolvido e o evento de validação apropriado é levantado. Caso contrário, um XmlSchemaException é lançado.
Exceções
O esquema não é válido.
A URL passada como parâmetro é null ou Empty.
Exemplos
O seguinte exemplo de código adiciona o http://www.contoso.com/books.xsd esquema com um namespace alvo 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 books.xsd ficheiro 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>
Observações
Antes de um esquema poder ser adicionado a um XmlSchemaSet, tem de ser pré-processado com sucesso. O pré-processamento executa as seguintes tarefas básicas.
O esquema é verificado quanto à validade estrutural de acordo com as regras do W3C XML Schema, mas o esquema não é totalmente validado.
As referências a componentes internos e externos do esquema são resolvidas. Quaisquer esquemas importados ou incluídos que sejam recuperados com sucesso também são adicionados ao XmlSchemaSet. Os esquemas importados são adicionados como objetos separados XmlSchema , e os esquemas incluídos passam a fazer parte da inclusão XmlSchema.
Seguem-se as notas importantes a considerar ao utilizar o Add método.
Adicionar um esquema ao XmlSchemaSet com o mesmo namespace de destino e URL de localização do esquema que um esquema já contido XmlSchemaSet no irá devolver o objeto de esquema original.
Quando um novo esquema é adicionado com sucesso a um XmlSchemaSet, a IsCompiled propriedade do XmlSchemaSet é definida como
false.Quaisquer elementos de inclusão ou importação encontrados num esquema XML são resolvidos quando o Add método é chamado. A falha em resolver elementos de inclusão e importação resulta num aviso de validação de esquema e, se não ValidationEventHandler tiver sido especificado para o XmlSchemaSet objeto, esses avisos não serão reportados.
Se um esquema com o mesmo namespace alvo que um esquema que já existe em XmlSchemaSet for adicionado ao XmlSchemaSet, ambos os esquemas são adicionados.
Note
Este comportamento difere do objeto obsoleto XmlSchemaCollection .
O Add método do XmlSchemaSet tem a capacidade de usar o espaço de nomes alvo definido num esquema, em vez de exigir que o espaço de nomes alvo seja especificado como parâmetro quando o Add método é chamado. Especificar
nullnotargetNamespaceparâmetro do Add método instrui o XmlSchemaSet a usar o espaço de nomes alvo definido no esquema, como ilustrado no seguinte exemplo de código.
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 do Add método. Como resultado, é utilizado o targetNamespace definido no ficheiro books.xml. Neste caso, o resultado de chamar o Add método seria idêntico se http://www.contoso.com/books tivesse sido especificado como parâmetro targetNamespace .
- O Esquema XML do W3C permite que esquemas sem namespace alvo sejam incluídos em esquemas com um namespace alvo definido. Neste caso, o esquema sem um namespace alvo definido é coagido a entrar no namespace alvo do esquema inclusivo. O esquema incluído é tratado como se tivesse esse espaço de nomes de destino definido. De forma semelhante, esquemas sem um namespace alvo podem ser adicionados ao XmlSchemaSet e coagidos para o namespace alvo especificado pelo Add método, como ilustrado no exemplo seguinte.
<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 espaço http://www.contoso.com/new/targetnamespace de nomes alvo (como mostrado no código abaixo), é tratado como se o espaço de nomes alvo 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
- Origem:
- XmlSchemaSet.cs
- Origem:
- XmlSchemaSet.cs
Adiciona o esquema XML Schema Definition Language (XSD) contido no XmlReaderXmlSchemaSet.
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 do esquema targetNamespace , ou null para usar a targetNamespace especificada no esquema.
Devoluções
Um XmlSchema objeto se o esquema for válido. Se o esquema não for válido e a ValidationEventHandler for especificado, então null é devolvido e o evento de validação apropriado é levantado. Caso contrário, um XmlSchemaException é lançado.
Exceções
O esquema não é válido.
O XmlReader objeto passado como parâmetro é null.
Exemplos
O exemplo de código seguinte adiciona o esquema books.xsd contido no XmlTextReader com um namespace alvo 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");
Observações
Antes de um esquema poder ser adicionado a um XmlSchemaSet, tem de ser pré-processado com sucesso. O pré-processamento executa as seguintes tarefas básicas.
O esquema é verificado quanto à validade estrutural de acordo com as regras do W3C XML Schema, mas o esquema não é totalmente validado.
As referências a componentes internos e externos do esquema são resolvidas. Quaisquer esquemas importados ou incluídos que sejam recuperados com sucesso também são adicionados ao XmlSchemaSet. Os esquemas importados são adicionados como objetos separados XmlSchema , e os esquemas incluídos passam a fazer parte da inclusão XmlSchema.
Seguem-se as notas importantes a considerar ao utilizar o Add método.
Esquemas recuperados com sucesso importados ou incluídos pelos esquemas contidos no XmlReader são também adicionados ao XmlSchemaSet.
Se o XmlReader não estiver posicionado no elemento raiz, um XmlSchemaException é lançado a menos que o item atual seja um elemento. Se o item atual for um
xs:schemaelemento, o documento do esquema é lido no XmlSchemaSet; caso contrário, um XmlSchemaException é lançado porque o esquema não é válido.Se o XmlReader estiver posicionado sobre uma sequência de nós XML, apenas o primeiro nó da sequência é adicionado.
Se o esquema foi criado a partir de uma XmlReader.Create chamada de método, o valor da ProcessInlineSchema propriedade é ignorado, porque o processamento de esquema inline não é aplicado para documentos de Esquema XML do W3C.
A XmlResolver propriedade de não XmlReader é usada para resolver referências a namespaces ou localizações de esquemas em elementos de incluir e importar. Em vez disso, utiliza-se a XmlResolver propriedade de .XmlSchemaSet
O Add método do XmlSchemaSet tem a capacidade de usar o espaço de nomes alvo definido num esquema, em vez de exigir que o espaço de nomes alvo seja especificado como parâmetro quando o Add método é chamado. Especificar
nullou String.Empty para o Add método instrui o XmlSchemaSet a usar o namespace de destino definido no esquema. Para um exemplo deste comportamento, veja o Add método.
A funcionalidade restante deste método é idêntica à Add do método.