Compartilhar via


XmlSchemaCollection.Add Método

Definição

Adiciona o esquema especificado na coleção de esquemas.

Sobrecargas

Add(XmlSchema)

Adiciona o XmlSchema à coleção.

Add(XmlSchemaCollection)

Adiciona todos os namespaces definidos na coleção fornecida (inclusive seus esquemas associados) a esta coleção.

Add(String, String)

Adiciona o esquema localizado pela URL fornecida à coleção de esquemas.

Add(String, XmlReader)

Adiciona o esquema contido no XmlReader à coleção de esquema.

Add(XmlSchema, XmlResolver)

Adiciona o XmlSchema à coleção. O XmlResolver especificado é usado para resolver todas as referências externas.

Add(String, XmlReader, XmlResolver)

Adiciona o esquema contido no XmlReader à coleção de esquema. O XmlResolver especificado é usado para resolver todos os recursos externos.

Comentários

Importante

A XmlSchemaCollection classe está obsoleta no .NET Framework versão 2.0 e foi substituída pela XmlSchemaSet classe.

Add(XmlSchema)

Adiciona o XmlSchema à coleção.

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 a adicionar à coleção.

Retornos

XmlSchema

O objeto XmlSchema.

Comentários

O targetNamespace atributo é usado para identificar esse esquema.

Se o esquema que está sendo adicionado contiver referências a outros namespaces (por meio include e import elementos), o nível de confiança do aplicativo determinará como esses outros namespaces são resolvidos. (No .NET Framework versão 1.0, um padrão XmlUrlResolver sempre foi usado).

Fully trusted code: Um padrão XmlUrlResolver sem credenciais de usuário é usado para resolver recursos externos. Os esquemas para esses outros namespaces são carregados somente para fins de validação. Ao contrário do esquema original, esses outros esquemas não são adicionados explicitamente à coleção de esquemas. Como resultado, eles não são acessíveis usando nenhum dos métodos ou propriedades da coleção. Se esses recursos externos estiverem localizados em um recurso de rede que requer autenticação, use uma sobrecarga que usa um XmlResolver como um de seus argumentos e especifique um XmlResolver com as credenciais necessárias.

Semi-trusted code: Referências externas não são resolvidas.

Observação

Se estiver XmlSchemaCollection sendo acessado usando a XmlValidatingReader.Schemas propriedade, o Add método usará o XmlResolver especificado pela XmlValidatingReader.XmlResolver propriedade.

Importante

A XmlSchemaCollection classe está obsoleta no .NET Framework versão 2.0 e foi substituída pela XmlSchemaSet classe.

Confira também

Aplica-se a

Add(XmlSchemaCollection)

Adiciona todos os namespaces definidos na coleção fornecida (inclusive seus esquemas associados) a esta coleção.

public:
 void Add(System::Xml::Schema::XmlSchemaCollection ^ schema);
public void Add (System.Xml.Schema.XmlSchemaCollection schema);
member this.Add : System.Xml.Schema.XmlSchemaCollection -> unit
Public Sub Add (schema As XmlSchemaCollection)

Parâmetros

schema
XmlSchemaCollection

O XmlSchemaCollection você deseja adicionar a esta coleção.

Comentários

Se o esquema que está sendo adicionado contiver referências a outros namespaces (por meio include e import elementos ou x-schema atributo), o nível de confiança do aplicativo determinará como esses outros namespaces são resolvidos. (No .NET Framework versão 1.0, um padrão XmlUrlResolver sempre foi usado).

Fully trusted code: Um padrão XmlUrlResolver sem credenciais de usuário é usado para resolver recursos externos. Os esquemas para esses outros namespaces são carregados somente para fins de validação. Ao contrário do esquema original, esses outros esquemas não são adicionados explicitamente à coleção de esquemas. Como resultado, eles não são acessíveis usando nenhum dos métodos ou propriedades da coleção. Se esses recursos externos estiverem localizados em um recurso de rede que requer autenticação, use uma sobrecarga que usa um XmlResolver como um de seus argumentos e especifique um XmlResolver com as credenciais necessárias.

Semi-trusted code: Referências externas não são resolvidas.

Observação

Se estiver XmlSchemaCollection sendo acessado usando a XmlValidatingReader.Schemas propriedade, o Add método usará o XmlResolver especificado pela XmlValidatingReader.XmlResolver propriedade.

Importante

A XmlSchemaCollection classe está obsoleta no .NET Framework versão 2.0 e foi substituída pela XmlSchemaSet classe.

Aplica-se a

Add(String, String)

Adiciona o esquema localizado pela URL fornecida à coleção de esquemas.

public:
 System::Xml::Schema::XmlSchema ^ Add(System::String ^ ns, System::String ^ uri);
public System.Xml.Schema.XmlSchema? Add (string? ns, string uri);
public System.Xml.Schema.XmlSchema Add (string ns, string uri);
member this.Add : string * string -> System.Xml.Schema.XmlSchema
Public Function Add (ns As String, uri As String) As XmlSchema

Parâmetros

ns
String

O URI de namespace associado ao esquema. Para esquemas XML, isso geralmente será o targetNamespace.

uri
String

A URL que especifica o esquema a ser carregado.

Retornos

XmlSchema

O XmlSchema adicionado à coleção de esquemas; null se o esquema que está sendo adicionado for um esquema XDR ou se houver erros de compilação no esquema.

Exceções

O esquema não é válido.

Exemplos

O exemplo a XmlSchemaCollectionseguir valida três arquivos XML usando esquemas armazenados no .

#using <System.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Schema;

public ref class SchemaCollectionSample
{
private:
   XmlTextReader^ reader;
   XmlValidatingReader^ vreader;
   Boolean m_success;

public:
   SchemaCollectionSample()
   {
      reader = nullptr;
      vreader = nullptr;
      m_success = true;

      //Load the schema collection.
      XmlSchemaCollection^ xsc = gcnew XmlSchemaCollection;
      String^ schema = "books.xsd";
      String^ schema1 = "schema1.xdr";
      xsc->Add( "urn:bookstore-schema", schema ); //XSD schema
      xsc->Add( "urn:newbooks-schema", schema1 ); //XDR schema
      String^ doc1 = "booksSchema.xml";
      String^ doc2 = "booksSchemaFail.xml";
      String^ doc3 = "newbooks.xml";

      //Validate the files using schemas stored in the collection.
      Validate( doc1, xsc ); //Should pass.
      Validate( doc2, xsc ); //Should fail.   
      Validate( doc3, xsc ); //Should fail. 
   }


private:
   void Validate( String^ filename, XmlSchemaCollection^ xsc )
   {
      m_success = true;
      Console::WriteLine();
      Console::WriteLine( "Validating XML file {0}...", filename );
      reader = gcnew XmlTextReader( filename );

      //Create a validating reader.
      vreader = gcnew XmlValidatingReader( reader );

      //Validate using the schemas stored in the schema collection.
      vreader->Schemas->Add( xsc );

      //Set the validation event handler
      vreader->ValidationEventHandler += gcnew ValidationEventHandler( this, &SchemaCollectionSample::ValidationCallBack );

      //Read and validate the XML data.
      while ( vreader->Read() )
      {}

      Console::WriteLine( "Validation finished. Validation {0}", (m_success == true ? (String^)"successful" : "failed") );
      Console::WriteLine();

      //Close the reader.
      vreader->Close();
   }

   void ValidationCallBack( Object^ /*sender*/, ValidationEventArgs^ args )
   {
      m_success = false;
      Console::Write( "\r\n\tValidation error: {0}", args->Message );
   }

};

int main()
{
   gcnew SchemaCollectionSample;
}
using System;
using System.IO;
using System.Xml;
using System.Xml.Schema;

public class SchemaCollectionSample
{
  private const String doc1 = "booksSchema.xml";
  private const String doc2 = "booksSchemaFail.xml";
  private const String doc3 = "newbooks.xml";
  private const String schema = "books.xsd";
  private const String schema1 = "schema1.xdr";

  private XmlTextReader reader=null;
  private XmlValidatingReader vreader = null;
  private Boolean m_success = true;

  public SchemaCollectionSample ()
  {
    //Load the schema collection.
    XmlSchemaCollection xsc = new XmlSchemaCollection();
    xsc.Add("urn:bookstore-schema", schema);  //XSD schema
    xsc.Add("urn:newbooks-schema", schema1);  //XDR schema

    //Validate the files using schemas stored in the collection.
    Validate(doc1, xsc); //Should pass.
    Validate(doc2, xsc); //Should fail.
    Validate(doc3, xsc); //Should fail.
  }

  public static void Main ()
  {
      SchemaCollectionSample validation = new SchemaCollectionSample();
  }

  private void Validate(String filename, XmlSchemaCollection xsc)
  {

     m_success = true;
     Console.WriteLine();
     Console.WriteLine("Validating XML file {0}...", filename.ToString());
     reader = new XmlTextReader (filename);

     //Create a validating reader.
    vreader = new XmlValidatingReader (reader);

     //Validate using the schemas stored in the schema collection.
     vreader.Schemas.Add(xsc);

     //Set the validation event handler
     vreader.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack);
     //Read and validate the XML data.
     while (vreader.Read()){}
     Console.WriteLine ("Validation finished. Validation {0}", (m_success==true ? "successful" : "failed"));
     Console.WriteLine();

     //Close the reader.
     vreader.Close();
  }

  private void ValidationCallBack (object sender, ValidationEventArgs args)
  {
     m_success = false;

     Console.Write("\r\n\tValidation error: " + args.Message);
  }
}
Option Strict
Option Explicit

Imports System.IO
Imports System.Xml
Imports System.Xml.Schema

Public Class SchemaCollectionSample
    Private doc1 As String = "booksSchema.xml"
    Private doc2 As String = "booksSchemaFail.xml"
    Private doc3 As String = "newbooks.xml"
    Private schema As String = "books.xsd"
    Private schema1 As String = "schema1.xdr"
    
    Private reader As XmlTextReader = Nothing
    Private vreader As XmlValidatingReader = Nothing
    Private m_success As Boolean = True
    
    Public Sub New()

            'Load the schema collection
            Dim xsc As New XmlSchemaCollection()
            xsc.Add("urn:bookstore-schema", schema) 'XSD schema
            xsc.Add("urn:newbooks-schema", schema1) 'XDR schema

            'Validate the files using schemas stored in the collection.
            Validate(doc1, xsc) 'Should pass.
            Validate(doc2, xsc) 'Should fail.   
            Validate(doc3, xsc) 'Should fail. 
        
    End Sub
    
    Public Shared Sub Main()
        Dim validation As New SchemaCollectionSample()
    End Sub
    
    Private Sub Validate(filename As String, xsc As XmlSchemaCollection)
        
            m_success = True
            Console.WriteLine()
            Console.WriteLine("Validating XML file {0}...", filename.ToString())
            reader = New XmlTextReader(filename)
            
            'Create a validating reader.
            vreader = New XmlValidatingReader(reader)
            
            'Use the schemas stored in the schema collection.
            vreader.Schemas.Add(xsc)
            
            'Set the validation event handler.
            AddHandler vreader.ValidationEventHandler, AddressOf ValidationCallBack
            'Read and validate the XML data.
            While vreader.Read()
            End While
            Console.WriteLine("Validation finished. Validation {0}", IIf(m_success, "successful", "failed"))
            Console.WriteLine()

            'Close the reader.
            vreader.Close()

    End Sub
       
    
    Private Sub ValidationCallBack(sender As Object, args As ValidationEventArgs)
        m_success = False
        
        Console.Write((ControlChars.CrLf & ControlChars.Tab & "Validation error: " & args.Message))
    End Sub
End Class

O exemplo usa os seguintes cinco arquivos de entrada:

booksSchema.xml


<?xml version='1.0'?>
 <bookstore xmlns="urn:bookstore-schema">
   <book genre="autobiography">
     <title>The Autobiography of Benjamin Franklin</title>
     <author>
       <first-name>Benjamin</first-name>
       <last-name>Franklin</last-name>
     </author>
     <price>8.99</price>
   </book>
   <book genre="novel">
     <title>The Confidence Man</title>
     <author>
       <first-name>Herman</first-name>
       <last-name>Melville</last-name>
     </author>
     <price>11.99</price>
   </book>
 </bookstore>

booksSchemaFail.xml


<?xml version='1.0'?>
 <bookstore xmlns="urn:bookstore-schema">
   <book>
     <author>
       <first-name>Benjamin</first-name>
       <last-name>Franklin</last-name>
     </author>
   </book>
   <book genre="novel">
     <title>The Confidence Man</title>
     <author>
       <first-name>Herman</first-name>
       <last-name>Melville</last-name>
     </author>
     <price>11.99</price>
   </book>
   <book genre="philosophy">
     <title>The Gorgias</title>
     <author>
       <name>Plato</name>
     </author>
     <price>9.99</price>
   </book>
 </bookstore>

newbooks.xml


<?xml version='1.0'?>
<bookstore xmlns="urn:newbooks-schema">
  <book genre="novel" style="hardcover">
    <title>The Handmaid's Tale</title>
    <author>
      <first-name>Margaret</first-name>
      <last-name>Atwood</last-name>
    </author>
    <price>19.95</price>
  </book>
  <book genre="novel" style="other">
    <title>The Poisonwood Bible</title>
    <author>
      <first-name>Barbara</first-name>
      <last-name>Kingsolver</last-name>
    </author>
    <price>11.99</price>
  </book>
</bookstore>

books.xsd


<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     xmlns="urn:bookstore-schema"
     elementFormDefault="qualified"
     targetNamespace="urn:bookstore-schema">
 
  <xsd:element name="bookstore" type="bookstoreType"/>
 
  <xsd:complexType name="bookstoreType">
   <xsd:sequence maxOccurs="unbounded">
    <xsd:element name="book"  type="bookType"/>
   </xsd:sequence>
  </xsd:complexType>
 
  <xsd:complexType name="bookType">
   <xsd:sequence>
    <xsd:element name="title" type="xsd:string"/>
    <xsd:element name="author" type="authorName"/>
    <xsd:element name="price"  type="xsd:decimal"/>
   </xsd:sequence>
   <xsd:attribute name="genre" type="xsd:string"/>
  </xsd:complexType>
 
  <xsd:complexType name="authorName">
   <xsd:sequence>
    <xsd:element name="first-name"  type="xsd:string"/>
    <xsd:element name="last-name" type="xsd:string"/>
   </xsd:sequence>
  </xsd:complexType>
 
 </xsd:schema>

schema1.xdr


<?xml version="1.0"?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:datatypes">
  <ElementType name="first-name" content="textOnly"/>
  <ElementType name="last-name" content="textOnly"/>
  <ElementType name="name" content="textOnly"/>
  <ElementType name="price" content="textOnly" dt:type="fixed.14.4"/>
  <ElementType name="author" content="eltOnly" order="one">
    <group order="seq">
      <element type="name"/>
    </group>
    <group order="seq">
      <element type="first-name"/>
      <element type="last-name"/>
    </group>
  </ElementType>
  <ElementType name="title" content="textOnly"/>
  <AttributeType name="genre" dt:type="string"/>
  <AttributeType name="style" dt:type="enumeration"
        dt:values="paperback hardcover"/>
  <ElementType name="book" content="eltOnly">
    <attribute type="genre" required="yes"/>
    <attribute type="style" required="yes"/>
    <element type="title"/>
    <element type="author"/>
    <element type="price"/>
  </ElementType>
  <ElementType name="bookstore" content="eltOnly">
    <element type="book"/>
  </ElementType>
</Schema>

Comentários

Se ns já tiver sido associado a outro esquema na coleção, o esquema que está sendo adicionado substituirá o esquema original na coleção. Por exemplo, no código C# a seguir, authors.xsd é removido da coleção e names.xsd é adicionado.

schemaColl.Add("urn:author", "authors.xsd");  
schemaColl.Add("urn:author", "names.xsd");  

Se ns for null e o esquema que está sendo adicionado for um esquema XML, o Add método usará o targetNamespace esquema XML definido para identificar o esquema na coleção. Se o esquema que está sendo adicionado contiver referências a outros namespaces (por meio include e import elementos ou x-schema atributo), o nível de confiança do aplicativo determinará como esses outros namespaces são resolvidos. (No .NET Framework versão 1.0, um padrão XmlUrlResolver sempre foi usado).

Fully trusted code: Um padrão XmlUrlResolver sem credenciais de usuário é usado para resolver recursos externos. Os esquemas para esses outros namespaces são carregados somente para fins de validação. Ao contrário do esquema original, esses outros esquemas não são adicionados explicitamente à coleção de esquemas. Como resultado, eles não são acessíveis usando nenhum dos métodos ou propriedades da coleção. Se esses recursos externos estiverem localizados em um recurso de rede que requer autenticação, use uma sobrecarga que usa um XmlResolver como um de seus argumentos e especifique um XmlResolver com as credenciais necessárias.

Semi-trusted code: Referências externas não são resolvidas.

Observação

Se estiver XmlSchemaCollection sendo acessado usando a XmlValidatingReader.Schemas propriedade, o Add método usará o XmlResolver especificado pela XmlValidatingReader.XmlResolver propriedade.

Importante

A XmlSchemaCollection classe está obsoleta no .NET Framework versão 2.0 e foi substituída pela XmlSchemaSet classe.

Aplica-se a

Add(String, XmlReader)

Adiciona o esquema contido no XmlReader à coleção de esquema.

public:
 System::Xml::Schema::XmlSchema ^ Add(System::String ^ ns, System::Xml::XmlReader ^ reader);
public System.Xml.Schema.XmlSchema? Add (string? ns, System.Xml.XmlReader reader);
public System.Xml.Schema.XmlSchema Add (string ns, System.Xml.XmlReader reader);
member this.Add : string * System.Xml.XmlReader -> System.Xml.Schema.XmlSchema
Public Function Add (ns As String, reader As XmlReader) As XmlSchema

Parâmetros

ns
String

O URI de namespace associado ao esquema. Para esquemas XML, isso geralmente será o targetNamespace.

reader
XmlReader

XmlReader contendo o esquema a adicionar.

Retornos

XmlSchema

O XmlSchema adicionado à coleção de esquemas; null se o esquema que está sendo adicionado for um esquema XDR ou se houver erros de compilação no esquema.

Exceções

O esquema não é válido.

Comentários

Se ns já tiver sido associado a outro esquema na coleção, o esquema que está sendo adicionado substituirá o esquema original na coleção.

Se ns for null e o esquema que está sendo adicionado for um esquema XML, o Add método usará o targetNamespace esquema XML definido para identificar o esquema na coleção.

Se o esquema que está sendo adicionado contiver referências a outros namespaces (por meio include e import elementos ou x-schema atributo), o nível de confiança do aplicativo determinará como esses outros namespaces são resolvidos. (No .NET Framework versão 1.0, um padrão XmlUrlResolver sempre foi usado).

Fully trusted code: Um padrão XmlUrlResolver sem credenciais de usuário é usado para resolver recursos externos. Os esquemas para esses outros namespaces são carregados somente para fins de validação. Ao contrário do esquema original, esses outros esquemas não são adicionados explicitamente à coleção de esquemas. Como resultado, eles não são acessíveis usando nenhum dos métodos ou propriedades da coleção. Se esses recursos externos estiverem localizados em um recurso de rede que requer autenticação, use uma sobrecarga que usa um XmlResolver como um de seus argumentos e especifique um XmlResolver com as credenciais necessárias.

Semi-trusted code: Referências externas não são resolvidas.

Observação

Se estiver XmlSchemaCollection sendo acessado usando a XmlValidatingReader.Schemas propriedade, o Add método usará o XmlResolver especificado pela XmlValidatingReader.XmlResolver propriedade.

Importante

A XmlSchemaCollection classe está obsoleta no .NET Framework versão 2.0 e foi substituída pela XmlSchemaSet classe.

Aplica-se a

Add(XmlSchema, XmlResolver)

Adiciona o XmlSchema à coleção. O XmlResolver especificado é usado para resolver todas as referências externas.

public:
 System::Xml::Schema::XmlSchema ^ Add(System::Xml::Schema::XmlSchema ^ schema, System::Xml::XmlResolver ^ resolver);
public System.Xml.Schema.XmlSchema? Add (System.Xml.Schema.XmlSchema schema, System.Xml.XmlResolver? resolver);
public System.Xml.Schema.XmlSchema Add (System.Xml.Schema.XmlSchema schema, System.Xml.XmlResolver resolver);
member this.Add : System.Xml.Schema.XmlSchema * System.Xml.XmlResolver -> System.Xml.Schema.XmlSchema
Public Function Add (schema As XmlSchema, resolver As XmlResolver) As XmlSchema

Parâmetros

schema
XmlSchema

O XmlSchema a adicionar à coleção.

resolver
XmlResolver

O XmlResolver usado para resolver os namespaces referenciados em elementos include e import. Se este for null, as referências externas não serão resolvidas.

Retornos

XmlSchema

O XmlSchema adicionado à coleção de esquema.

Exceções

O esquema não é válido.

Exemplos

O exemplo a seguir adiciona um esquema à coleção. Um XmlUrlResolver é passado para o Add método que define as credenciais necessárias necessárias para acessar todos os recursos externos referenciados no esquema.

XmlSchemaCollection^ sc = gcnew XmlSchemaCollection;
sc->ValidationEventHandler += gcnew ValidationEventHandler( Sample::ValidationCallBack );

// Create a resolver with the necessary credentials.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
System::Net::NetworkCredential^ nc;
nc = gcnew System::Net::NetworkCredential( UserName,SecurelyStoredPassword,Domain );
resolver->Credentials = nc;

// Add the new schema to the collection.
sc->Add( nullptr, gcnew XmlTextReader( "sample.xsd" ), resolver );
XmlSchemaCollection sc = new XmlSchemaCollection();
sc.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);

// Create a resolver with the necessary credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;

// Add the new schema to the collection.
sc.Add("", new XmlTextReader("sample.xsd"), resolver);
Dim sc As XmlSchemaCollection = New XmlSchemaCollection()
AddHandler sc.ValidationEventHandler, AddressOf ValidationCallBack

' Create a resolver with the necessary credentials.
Dim resolver As XmlUrlResolver = New XmlUrlResolver()
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials

' Add the new schema to the collection.
sc.Add("", New XmlTextReader("sample.xsd"), resolver)

Comentários

O targetNamespace atributo é usado para identificar esse esquema.

Se o esquema contiver include e import elementos que fazem referência a outros namespaces, os esquemas para esses outros namespaces serão carregados somente para fins de validação. Ao contrário do esquema original, esses outros esquemas não são adicionados explicitamente à coleção de esquemas. Como resultado, eles não são acessíveis usando nenhum dos métodos ou propriedades da coleção.

Importante

A XmlSchemaCollection classe está obsoleta no .NET Framework versão 2.0 e foi substituída pela XmlSchemaSet classe.

Confira também

Aplica-se a

Add(String, XmlReader, XmlResolver)

Adiciona o esquema contido no XmlReader à coleção de esquema. O XmlResolver especificado é usado para resolver todos os recursos externos.

public:
 System::Xml::Schema::XmlSchema ^ Add(System::String ^ ns, System::Xml::XmlReader ^ reader, System::Xml::XmlResolver ^ resolver);
public System.Xml.Schema.XmlSchema? Add (string? ns, System.Xml.XmlReader reader, System.Xml.XmlResolver? resolver);
public System.Xml.Schema.XmlSchema Add (string ns, System.Xml.XmlReader reader, System.Xml.XmlResolver resolver);
member this.Add : string * System.Xml.XmlReader * System.Xml.XmlResolver -> System.Xml.Schema.XmlSchema
Public Function Add (ns As String, reader As XmlReader, resolver As XmlResolver) As XmlSchema

Parâmetros

ns
String

O URI de namespace associado ao esquema. Para esquemas XML, isso geralmente será o targetNamespace.

reader
XmlReader

XmlReader contendo o esquema a adicionar.

resolver
XmlResolver

O XmlResolver usado para resolver os namespaces referenciados em elementos include e import ou no atributo x-schema (esquemas XDR). Se este for null, as referências externas não serão resolvidas.

Retornos

XmlSchema

O XmlSchema adicionado à coleção de esquemas; null se o esquema que está sendo adicionado for um esquema XDR ou se houver erros de compilação no esquema.

Exceções

O esquema não é válido.

Comentários

Se ns já tiver sido associado a outro esquema na coleção, o esquema que está sendo adicionado substituirá o esquema original na coleção.

Se ns for null e o esquema que está sendo adicionado for um esquema XML, o Add método usará o targetNamespace atributo definido no esquema XML para identificar o esquema na coleção.

Se o esquema que está sendo adicionado contiver referências a outros namespaces (por meio include e import elementos ou x-schema atributo), os esquemas para esses outros namespaces serão carregados somente para fins de validação. Ao contrário do esquema original, esses outros esquemas não são adicionados explicitamente à coleção de esquemas. Como resultado, eles não são acessíveis usando nenhum dos métodos ou propriedades da coleção.

Importante

A XmlSchemaCollection classe está obsoleta no .NET Framework versão 2.0 e foi substituída pela XmlSchemaSet classe.

Confira também

Aplica-se a