XmlSchemaCollection.Add Метод

Определение

Добавляет указанную схему в коллекцию схем.

Перегрузки

Add(XmlSchema)

Добавляет XmlSchema в коллекцию.

Add(XmlSchemaCollection)

Добавляет в данную коллекцию все пространства имен, определенные в указанной коллекции (включая связанные с ними схемы).

Add(String, String)

Добавляет в коллекцию схему, находящуюся по указанному URL-адресу.

Add(String, XmlReader)

Добавляет схему, содержащуюся в XmlReader в коллекцию схем.

Add(XmlSchema, XmlResolver)

Добавляет XmlSchema в коллекцию. Заданный XmlResolver используется для опознания каких-либо внешних ссылок.

Add(String, XmlReader, XmlResolver)

Добавляет схему, содержащуюся в XmlReader в коллекцию схем. Заданный XmlResolver используется для опознания каких-либо внешних ресурсов.

Комментарии

Важно!

Класс XmlSchemaCollection устарел в платформа .NET Framework версии 2.0 и заменен классомXmlSchemaSet.

Add(XmlSchema)

Добавляет XmlSchema в коллекцию.

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

Параметры

schema
XmlSchema

Параметр XmlSchema для добавления в коллекцию.

Возвращаемое значение

XmlSchema

Объект XmlSchema.

Комментарии

Атрибут targetNamespace используется для идентификации этой схемы.

Если добавляемая схема содержит ссылки на другие пространства имен (через include и import элементы), уровень доверия приложения определяет способ разрешения этих других пространств имен. (В платформа .NET Framework версии 1.0 всегда использовалось значение по умолчаниюXmlUrlResolver.

Fully trusted code: Значение по умолчанию XmlUrlResolver без учетных данных пользователя используется для разрешения внешних ресурсов. Схемы для этих других пространств имен загружаются только для целей проверки. В отличие от исходной схемы, эти другие схемы не добавляются в коллекцию схем явным образом. В результате они недоступны с помощью каких-либо методов или свойств коллекции. Если эти внешние ресурсы находятся в сетевом ресурсе, требующего проверки подлинности, используйте перегрузку, принимающую XmlResolver в качестве одного из его аргументов, и укажите XmlResolver необходимые учетные данные.

Semi-trusted code: Внешние ссылки не разрешаются.

Примечание

XmlSchemaCollection Если доступ к объекту осуществляется с помощью XmlValidatingReader.Schemas свойства, Add метод использует указанный XmlResolver свойствомXmlValidatingReader.XmlResolver.

Важно!

Класс XmlSchemaCollection устарел в платформа .NET Framework версии 2.0 и заменен классомXmlSchemaSet.

См. также раздел

Применяется к

Add(XmlSchemaCollection)

Добавляет в данную коллекцию все пространства имен, определенные в указанной коллекции (включая связанные с ними схемы).

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)

Параметры

schema
XmlSchemaCollection

XmlSchemaCollection, которую необходимо добавить в данную коллекцию.

Комментарии

Если добавляемая схема содержит ссылки на другие пространства имен (посредством include и import элементами или атрибутом x-schema ), уровень доверия приложения определяет способ разрешения этих других пространств имен. (В платформа .NET Framework версии 1.0 всегда использовалось значение по умолчаниюXmlUrlResolver.

Fully trusted code: Значение по умолчанию XmlUrlResolver без учетных данных пользователя используется для разрешения внешних ресурсов. Схемы для этих других пространств имен загружаются только для целей проверки. В отличие от исходной схемы, эти другие схемы не добавляются в коллекцию схем явным образом. В результате они недоступны с помощью каких-либо методов или свойств коллекции. Если эти внешние ресурсы находятся в сетевом ресурсе, требующего проверки подлинности, используйте перегрузку, принимающую XmlResolver в качестве одного из его аргументов, и укажите XmlResolver необходимые учетные данные.

Semi-trusted code: Внешние ссылки не разрешаются.

Примечание

XmlSchemaCollection Если доступ к объекту осуществляется с помощью XmlValidatingReader.Schemas свойства, Add метод использует указанный XmlResolver свойствомXmlValidatingReader.XmlResolver.

Важно!

Класс XmlSchemaCollection устарел в платформа .NET Framework версии 2.0 и заменен классомXmlSchemaSet.

Применяется к

Add(String, String)

Добавляет в коллекцию схему, находящуюся по указанному URL-адресу.

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

Параметры

ns
String

Связанный со схемой URI пространства имен. Для XML-схем оно обычно представлено targetNamespace.

uri
String

URL-адрес, ссылающийся на схему, которую необходимо загрузить.

Возвращаемое значение

XmlSchema

XmlSchema добавлен в коллекцию схем; null, если добавляемая схема является XDR-схемой или в схеме присутствуют ошибки компиляции.

Исключения

Схема не является действительной схемой.

Примеры

В следующем примере выполняется проверка трех XML-файлов с помощью схем, хранящихся в .XmlSchemaCollection

#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

В примере используются следующие пять входных файлов:

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>

Комментарии

Если ns схема уже связана с другой схемой в коллекции, добавляемая схема заменяет исходную схему в коллекции. Например, в следующем коде C# добавляется файл authors.xsd из коллекции и names.xsd.

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

null Если ns и добавляемая схема является XML-схемой, Add метод использует targetNamespace определенный в схеме XML для идентификации схемы в коллекции. Если добавляемая схема содержит ссылки на другие пространства имен (посредством include и import элементами или атрибутом x-schema ), уровень доверия приложения определяет способ разрешения этих других пространств имен. (В платформа .NET Framework версии 1.0 всегда использовалось значение по умолчаниюXmlUrlResolver.

Fully trusted code: Значение по умолчанию XmlUrlResolver без учетных данных пользователя используется для разрешения внешних ресурсов. Схемы для этих других пространств имен загружаются только для целей проверки. В отличие от исходной схемы, эти другие схемы не добавляются в коллекцию схем явным образом. В результате они недоступны с помощью каких-либо методов или свойств коллекции. Если эти внешние ресурсы находятся в сетевом ресурсе, требующего проверки подлинности, используйте перегрузку, принимающую XmlResolver в качестве одного из его аргументов, и укажите XmlResolver необходимые учетные данные.

Semi-trusted code: Внешние ссылки не разрешаются.

Примечание

XmlSchemaCollection Если доступ к объекту осуществляется с помощью XmlValidatingReader.Schemas свойства, Add метод использует указанный XmlResolver свойствомXmlValidatingReader.XmlResolver.

Важно!

Класс XmlSchemaCollection устарел в платформа .NET Framework версии 2.0 и заменен классомXmlSchemaSet.

Применяется к

Add(String, XmlReader)

Добавляет схему, содержащуюся в XmlReader в коллекцию схем.

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

Параметры

ns
String

Связанный со схемой URI пространства имен. Для XML-схем оно обычно представлено targetNamespace.

reader
XmlReader

XmlReader, содержащий схему для добавления.

Возвращаемое значение

XmlSchema

XmlSchema добавлен в коллекцию схем; null, если добавляемая схема является XDR-схемой или в схеме присутствуют ошибки компиляции.

Исключения

Схема не является действительной схемой.

Комментарии

Если ns схема уже связана с другой схемой в коллекции, добавляемая схема заменяет исходную схему в коллекции.

null Если ns и добавляемая схема является XML-схемой, Add метод использует targetNamespace определенный в схеме XML для идентификации схемы в коллекции.

Если добавляемая схема содержит ссылки на другие пространства имен (посредством include и import элементами или атрибутом x-schema ), уровень доверия приложения определяет способ разрешения этих других пространств имен. (В платформа .NET Framework версии 1.0 всегда использовалось значение по умолчаниюXmlUrlResolver.

Fully trusted code: Значение по умолчанию XmlUrlResolver без учетных данных пользователя используется для разрешения внешних ресурсов. Схемы для этих других пространств имен загружаются только для целей проверки. В отличие от исходной схемы, эти другие схемы не добавляются в коллекцию схем явным образом. В результате они недоступны с помощью каких-либо методов или свойств коллекции. Если эти внешние ресурсы находятся в сетевом ресурсе, требующего проверки подлинности, используйте перегрузку, принимающую XmlResolver в качестве одного из его аргументов, и укажите XmlResolver необходимые учетные данные.

Semi-trusted code: Внешние ссылки не разрешаются.

Примечание

XmlSchemaCollection Если доступ к объекту осуществляется с помощью XmlValidatingReader.Schemas свойства, Add метод использует указанный XmlResolver свойствомXmlValidatingReader.XmlResolver.

Важно!

Класс XmlSchemaCollection устарел в платформа .NET Framework версии 2.0 и заменен классомXmlSchemaSet.

Применяется к

Add(XmlSchema, XmlResolver)

Добавляет XmlSchema в коллекцию. Заданный XmlResolver используется для опознания каких-либо внешних ссылок.

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

Параметры

schema
XmlSchema

Параметр XmlSchema для добавления в коллекцию.

resolver
XmlResolver

XmlResolver используется для опознания пространств имен, на которые существуют ссылки в элементах include и import. Если null, внешние ссылки не опознаются.

Возвращаемое значение

XmlSchema

XmlSchema добавлена в коллекцию схем.

Исключения

Схема не является действительной схемой.

Примеры

В следующем примере в коллекцию добавляется схема. Передается XmlUrlResolver методу Add , который задает необходимые учетные данные, необходимые для доступа ко всем внешним ресурсам, на которые ссылается схема.

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)

Комментарии

Атрибут targetNamespace используется для идентификации этой схемы.

Если схема содержит include и import элементы, ссылающиеся на другие пространства имен, схемы для этих других пространств имен загружаются только для целей проверки. В отличие от исходной схемы, эти другие схемы не добавляются в коллекцию схем явным образом. В результате они недоступны с помощью каких-либо методов или свойств коллекции.

Важно!

Класс XmlSchemaCollection устарел в платформа .NET Framework версии 2.0 и заменен классомXmlSchemaSet.

См. также раздел

Применяется к

Add(String, XmlReader, XmlResolver)

Добавляет схему, содержащуюся в XmlReader в коллекцию схем. Заданный XmlResolver используется для опознания каких-либо внешних ресурсов.

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

Параметры

ns
String

Связанный со схемой URI пространства имен. Для XML-схем оно обычно представлено targetNamespace.

reader
XmlReader

XmlReader, содержащий схему для добавления.

resolver
XmlResolver

XmlResolver используется для опознания пространства имен, на которое присутствуют ссылки в элементах include и import или атрибуте x-schema (XDR-схемы). Если null, внешние ссылки не опознаются.

Возвращаемое значение

XmlSchema

XmlSchema добавлен в коллекцию схем; null, если добавляемая схема является XDR-схемой или в схеме присутствуют ошибки компиляции.

Исключения

Схема не является действительной схемой.

Комментарии

Если ns схема уже связана с другой схемой в коллекции, добавляемая схема заменяет исходную схему в коллекции.

Если ns и null добавляемая схема является XML-схемой, метод использует targetNamespace атрибут, определенный в схеме XML, Add для идентификации схемы в коллекции.

Если добавляемая схема содержит ссылки на другие пространства имен (через include и import элементы или x-schema атрибут), схемы для этих других пространств имен загружаются только для целей проверки. В отличие от исходной схемы, эти другие схемы не добавляются в коллекцию схем явным образом. В результате они недоступны с помощью каких-либо методов или свойств коллекции.

Важно!

Класс XmlSchemaCollection устарел в платформа .NET Framework версии 2.0 и заменен классомXmlSchemaSet.

См. также раздел

Применяется к