다음을 통해 공유


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 특성은 이 스키마를 식별하는 데 사용됩니다.

추가 되는 스키마는 다른 네임 스페이스에 대 한 참조를 포함 하는 경우 (통해 includeimport 요소), 애플리케이션의 신뢰 수준은 다른 네임 스페이스를 확인 하는 방법이 결정 됩니다. (.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입니다. 추가되는 스키마가 XDR 스키마이거나 스키마에 컴파일 오류가 있는 경우에는 null입니다.

예외

올바른 스키마가 아닌 경우

예제

다음 예제에서는 에 저장된 스키마를 사용하여 세 개의 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

샘플에서는 다음 5개의 입력 파일을 사용합니다.

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 이 경우 추가되는 스키마가 XML 스키마 Add 인 경우 ns 메서드는 XML 스키마에 정의된 스키마를 사용하여 targetNamespace 컬렉션의 스키마를 식별합니다. 추가 되는 스키마는 다른 네임 스페이스에 대 한 참조를 포함 하는 경우 (통해 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입니다. 추가되는 스키마가 XDR 스키마이거나 스키마에 컴파일 오류가 있는 경우에는 null입니다.

예외

올바른 스키마가 아닌 경우

설명

컬렉션의 다른 스키마와 이미 연결된 경우 ns 추가되는 스키마가 컬렉션의 원래 스키마를 대체합니다.

null 이 경우 추가되는 스키마가 XML 스키마 Add 인 경우 ns 메서드는 XML 스키마에 정의된 스키마를 사용하여 targetNamespace 컬렉션의 스키마를 식별합니다.

추가 되는 스키마는 다른 네임 스페이스에 대 한 참조를 포함 하는 경우 (통해 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

includeimport 요소에서 참조된 모든 네임스페이스를 확인하는 데 사용할 XmlResolver입니다. 이 해결 프로그램이 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

XmlResolverincludeimport 요소 또는 x-schema 특성(XDR 스키마)에서 참조된 네임스페이스를 확인하는 데 사용됩니다. 이 해결 프로그램이 null이면 외부 참조는 확인되지 않습니다.

반환

XmlSchema

스키마 컬렉션에 추가된 XmlSchema입니다. 추가되는 스키마가 XDR 스키마이거나 스키마에 컴파일 오류가 있는 경우에는 null입니다.

예외

올바른 스키마가 아닌 경우

설명

컬렉션의 다른 스키마와 이미 연결된 경우 ns 추가되는 스키마가 컬렉션의 원래 스키마를 대체합니다.

null 이 경우 추가되는 스키마가 XML 스키마인 경우 ns 메서드는 XML 스키마 Add 에 정의된 특성을 사용하여 targetNamespace 컬렉션의 스키마를 식별합니다.

추가되는 스키마에 다른 네임스페이스(통과 includeimport 요소 또는 x-schema 특성)에 대한 참조가 포함된 경우 이러한 다른 네임스페이스에 대한 스키마는 유효성 검사 목적으로만 로드됩니다. 원래 스키마와 달리 이러한 다른 스키마는 스키마 컬렉션에 명시적으로 추가되지 않습니다. 따라서 컬렉션 메서드 또는 속성을 사용하여 액세스할 수 없습니다.

중요

클래스는 XmlSchemaCollection .NET Framework 버전 2.0에서 사용되지 않으며 클래스로 XmlSchemaSet 대체되었습니다.

추가 정보

적용 대상