Freigeben über


XmlSchemaCollection.Add Methode

Definition

Fügt das angegebene Schema der Schemaauflistung hinzu.

Überlädt

Add(XmlSchema)

Fügt der Auflistung das XmlSchema hinzu.

Add(XmlSchemaCollection)

Fügt dieser Auflistung alle in der angegebenen Auflistung definierten Namespaces (einschließlich der zugeordneten Schemas) hinzu.

Add(String, String)

Fügt das durch die angegebene URL angegebene Schema der Schemaauflistung hinzu.

Add(String, XmlReader)

Fügt der Schemaauflistung das im XmlReader enthaltene Schema hinzu.

Add(XmlSchema, XmlResolver)

Fügt der Auflistung das XmlSchema hinzu. Der angegebene XmlResolver wird zum Auflösen externer Verweise verwendet.

Add(String, XmlReader, XmlResolver)

Fügt der Schemaauflistung das im XmlReader enthaltene Schema hinzu. Der angegebene XmlResolver wird zum Auflösen externer Ressourcen verwendet.

Hinweise

Wichtig

Die XmlSchemaCollection Klasse ist in der .NET Framework Version 2.0 veraltet und wurde durch die XmlSchemaSet Klasse ersetzt.

Add(XmlSchema)

Fügt der Auflistung das XmlSchema hinzu.

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

Parameter

schema
XmlSchema

Der der Auflistung hinzuzufügende XmlSchema.

Gibt zurück

XmlSchema

Das XmlSchema-Objekt.

Hinweise

Das targetNamespace Attribut wird verwendet, um dieses Schema zu identifizieren.

Wenn das hinzugefügte Schema Verweise auf andere Namespaces (durch include und import Elemente) enthält, bestimmt die Vertrauensstufe der Anwendung, wie diese anderen Namespaces aufgelöst werden. (In der .NET Framework Version 1.0 wurde immer eine Standardeinstellung XmlUrlResolver verwendet).

Fully trusted code: Eine Standardeinstellung XmlUrlResolver ohne Benutzeranmeldeinformationen wird verwendet, um externe Ressourcen aufzulösen. Die Schemas für diese anderen Namespaces werden nur für Überprüfungszwecke geladen. Im Gegensatz zum ursprünglichen Schema werden diese anderen Schemas der Schemasammlung nicht explizit hinzugefügt. Daher können sie nicht über eine der Auflistungsmethoden oder -eigenschaften zugegriffen werden. Wenn sich diese externen Ressourcen in einer Netzwerkressource befinden, die eine Authentifizierung erfordert, verwenden Sie eine Überladung, die als eines XmlResolver seiner Argumente verwendet wird, und geben Sie eine XmlResolver mit den erforderlichen Anmeldeinformationen an.

Semi-trusted code: Externe Verweise werden nicht aufgelöst.

Hinweis

Wenn auf XmlSchemaCollection die XmlValidatingReader.Schemas Eigenschaft zugegriffen wird, verwendet die Add Methode die XmlResolver angegebene Eigenschaft XmlValidatingReader.XmlResolver .

Wichtig

Die XmlSchemaCollection Klasse ist in der .NET Framework Version 2.0 veraltet und wurde durch die XmlSchemaSet Klasse ersetzt.

Siehe auch

Gilt für

Add(XmlSchemaCollection)

Fügt dieser Auflistung alle in der angegebenen Auflistung definierten Namespaces (einschließlich der zugeordneten Schemas) hinzu.

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)

Parameter

schema
XmlSchemaCollection

Die XmlSchemaCollection, die dieser Auflistung hinzugefügt werden soll.

Hinweise

Wenn das hinzugefügte Schema Verweise auf andere Namespaces (durch include und import Elemente oder das x-schema Attribut) enthält, bestimmt die Vertrauensstufe der Anwendung, wie diese anderen Namespaces aufgelöst werden. (In der .NET Framework Version 1.0 wurde immer eine Standardeinstellung XmlUrlResolver verwendet).

Fully trusted code: Eine Standardeinstellung XmlUrlResolver ohne Benutzeranmeldeinformationen wird verwendet, um externe Ressourcen aufzulösen. Die Schemas für diese anderen Namespaces werden nur für Überprüfungszwecke geladen. Im Gegensatz zum ursprünglichen Schema werden diese anderen Schemas der Schemasammlung nicht explizit hinzugefügt. Daher können sie nicht über eine der Auflistungsmethoden oder -eigenschaften zugegriffen werden. Wenn sich diese externen Ressourcen in einer Netzwerkressource befinden, die eine Authentifizierung erfordert, verwenden Sie eine Überladung, die als eines XmlResolver seiner Argumente verwendet wird, und geben Sie eine XmlResolver mit den erforderlichen Anmeldeinformationen an.

Semi-trusted code: Externe Verweise werden nicht aufgelöst.

Hinweis

Wenn auf XmlSchemaCollection die XmlValidatingReader.Schemas Eigenschaft zugegriffen wird, verwendet die Add Methode die XmlResolver angegebene Eigenschaft XmlValidatingReader.XmlResolver .

Wichtig

Die XmlSchemaCollection Klasse ist in der .NET Framework Version 2.0 veraltet und wurde durch die XmlSchemaSet Klasse ersetzt.

Gilt für

Add(String, String)

Fügt das durch die angegebene URL angegebene Schema der Schemaauflistung hinzu.

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

Parameter

ns
String

Der Namespace-URI, der dem Schema zugeordnet ist. Bei XML-Schemas ist dies i. d. R. der targetNamespace.

uri
String

Die URL, die das zu ladende Schema angibt.

Gibt zurück

XmlSchema

Das der Schemaauflistung hinzugefügte XmlSchema. null, wenn das hinzugefügte Schema ein XDR-Schema ist oder das Schema Kompilierungsfehler aufweist.

Ausnahmen

Das Schema ist kein gültiges Schema.

Beispiele

Im folgenden Beispiel werden drei XML-Dateien mithilfe von Schemas überprüft, die in der XmlSchemaCollectionDatei gespeichert sind.

#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

Im Beispiel werden die folgenden fünf Eingabedateien verwendet:

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>

Hinweise

Wenn ns bereits ein anderes Schema in der Auflistung zugeordnet wurde, ersetzt das hinzugefügte Schema das ursprüngliche Schema in der Auflistung. Beispielsweise wird autoren.xsd im folgenden C#-Code aus der Auflistung und den Namen.xsd entfernt.

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

null Wenn ns das hinzugefügte Schema ein XML-Schema ist, verwendet die Add Methode die targetNamespace im XML-Schema definierte Methode, um das Schema in der Auflistung zu identifizieren. Wenn das hinzugefügte Schema Verweise auf andere Namespaces (durch include und import Elemente oder das x-schema Attribut) enthält, bestimmt die Vertrauensstufe der Anwendung, wie diese anderen Namespaces aufgelöst werden. (In der .NET Framework Version 1.0 wurde immer eine Standardeinstellung XmlUrlResolver verwendet).

Fully trusted code: Eine Standardeinstellung XmlUrlResolver ohne Benutzeranmeldeinformationen wird verwendet, um externe Ressourcen aufzulösen. Die Schemas für diese anderen Namespaces werden nur für Überprüfungszwecke geladen. Im Gegensatz zum ursprünglichen Schema werden diese anderen Schemas der Schemasammlung nicht explizit hinzugefügt. Daher können sie nicht über eine der Auflistungsmethoden oder -eigenschaften zugegriffen werden. Wenn sich diese externen Ressourcen in einer Netzwerkressource befinden, die eine Authentifizierung erfordert, verwenden Sie eine Überladung, die als eines XmlResolver seiner Argumente verwendet wird, und geben Sie eine XmlResolver mit den erforderlichen Anmeldeinformationen an.

Semi-trusted code: Externe Verweise werden nicht aufgelöst.

Hinweis

Wenn auf XmlSchemaCollection die XmlValidatingReader.Schemas Eigenschaft zugegriffen wird, verwendet die Add Methode die XmlResolver angegebene Eigenschaft XmlValidatingReader.XmlResolver .

Wichtig

Die XmlSchemaCollection Klasse ist in der .NET Framework Version 2.0 veraltet und wurde durch die XmlSchemaSet Klasse ersetzt.

Gilt für

Add(String, XmlReader)

Fügt der Schemaauflistung das im XmlReader enthaltene Schema hinzu.

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

Parameter

ns
String

Der Namespace-URI, der dem Schema zugeordnet ist. Bei XML-Schemas ist dies i. d. R. der targetNamespace.

reader
XmlReader

Der XmlReader, der das hinzuzufügende Schema enthält.

Gibt zurück

XmlSchema

Das der Schemaauflistung hinzugefügte XmlSchema. null, wenn das hinzugefügte Schema ein XDR-Schema ist oder das Schema Kompilierungsfehler aufweist.

Ausnahmen

Das Schema ist kein gültiges Schema.

Hinweise

Wenn ns bereits ein anderes Schema in der Auflistung zugeordnet wurde, ersetzt das hinzugefügte Schema das ursprüngliche Schema in der Auflistung.

null Wenn ns das hinzugefügte Schema ein XML-Schema ist, verwendet die Add Methode die targetNamespace im XML-Schema definierte Methode, um das Schema in der Auflistung zu identifizieren.

Wenn das hinzugefügte Schema Verweise auf andere Namespaces (durch include und import Elemente oder das x-schema Attribut) enthält, bestimmt die Vertrauensstufe der Anwendung, wie diese anderen Namespaces aufgelöst werden. (In der .NET Framework Version 1.0 wurde immer eine Standardeinstellung XmlUrlResolver verwendet).

Fully trusted code: Eine Standardeinstellung XmlUrlResolver ohne Benutzeranmeldeinformationen wird verwendet, um externe Ressourcen aufzulösen. Die Schemas für diese anderen Namespaces werden nur für Überprüfungszwecke geladen. Im Gegensatz zum ursprünglichen Schema werden diese anderen Schemas der Schemasammlung nicht explizit hinzugefügt. Daher können sie nicht über eine der Auflistungsmethoden oder -eigenschaften zugegriffen werden. Wenn sich diese externen Ressourcen in einer Netzwerkressource befinden, die eine Authentifizierung erfordert, verwenden Sie eine Überladung, die als eines XmlResolver seiner Argumente verwendet wird, und geben Sie eine XmlResolver mit den erforderlichen Anmeldeinformationen an.

Semi-trusted code: Externe Verweise werden nicht aufgelöst.

Hinweis

Wenn auf XmlSchemaCollection die XmlValidatingReader.Schemas Eigenschaft zugegriffen wird, verwendet die Add Methode die XmlResolver angegebene Eigenschaft XmlValidatingReader.XmlResolver .

Wichtig

Die XmlSchemaCollection Klasse ist in der .NET Framework Version 2.0 veraltet und wurde durch die XmlSchemaSet Klasse ersetzt.

Gilt für

Add(XmlSchema, XmlResolver)

Fügt der Auflistung das XmlSchema hinzu. Der angegebene XmlResolver wird zum Auflösen externer Verweise verwendet.

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

Parameter

schema
XmlSchema

Der der Auflistung hinzuzufügende XmlSchema.

resolver
XmlResolver

Der XmlResolver, der zum Auflösen von Namespaces verwendet wird, auf die im include-Element und import-Element verwiesen wird. Bei null werden externe Verweise nicht aufgelöst.

Gibt zurück

XmlSchema

Das der Schemaauflistung hinzugefügte XmlSchema.

Ausnahmen

Das Schema ist kein gültiges Schema.

Beispiele

Im folgenden Beispiel wird der Auflistung ein Schema hinzugefügt. Es XmlUrlResolver wird an die Add Methode übergeben, die die erforderlichen Anmeldeinformationen festlegt, um auf externe Ressourcen zuzugreifen, auf die im Schema verwiesen wird.

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)

Hinweise

Das targetNamespace Attribut wird verwendet, um dieses Schema zu identifizieren.

Wenn das Schema auf include import andere Namespaces verweist, werden die Schemas für diese anderen Namespaces nur für Überprüfungszwecke geladen. Im Gegensatz zum ursprünglichen Schema werden diese anderen Schemas der Schemasammlung nicht explizit hinzugefügt. Daher können sie nicht über eine der Auflistungsmethoden oder -eigenschaften zugegriffen werden.

Wichtig

Die XmlSchemaCollection Klasse ist in der .NET Framework Version 2.0 veraltet und wurde durch die XmlSchemaSet Klasse ersetzt.

Siehe auch

Gilt für

Add(String, XmlReader, XmlResolver)

Fügt der Schemaauflistung das im XmlReader enthaltene Schema hinzu. Der angegebene XmlResolver wird zum Auflösen externer Ressourcen verwendet.

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

Parameter

ns
String

Der Namespace-URI, der dem Schema zugeordnet ist. Bei XML-Schemas ist dies i. d. R. der targetNamespace.

reader
XmlReader

Der XmlReader, der das hinzuzufügende Schema enthält.

resolver
XmlResolver

Der XmlResolver, der zum Auflösen von Namespaces verwendet wird, auf die im include-Element und im import-Element oder im x-schema-Attribut (XDR-Schemas) verwiesen wird. Bei null werden externe Verweise nicht aufgelöst.

Gibt zurück

XmlSchema

Das der Schemaauflistung hinzugefügte XmlSchema. null, wenn das hinzugefügte Schema ein XDR-Schema ist oder das Schema Kompilierungsfehler aufweist.

Ausnahmen

Das Schema ist kein gültiges Schema.

Hinweise

Wenn ns bereits einem anderen Schema in der Auflistung zugeordnet wurde, ersetzt das hinzugefügte Schema das ursprüngliche Schema in der Auflistung.

null Wenn ns das hinzugefügte Schema ein XML-Schema ist, verwendet die Add Methode das attribut, das im XML-Schema definiert ist, um das targetNamespace Schema in der Auflistung zu identifizieren.

Wenn das hinzugefügte Schema Verweise auf andere Namespaces (durch include und Elemente oder import Attribut x-schema ) enthält, werden die Schemas für diese anderen Namespaces nur für Überprüfungszwecke geladen. Im Gegensatz zum ursprünglichen Schema werden diese anderen Schemas nicht explizit zur Schemasammlung hinzugefügt. Daher können sie keine der Auflistungsmethoden oder -eigenschaften verwenden.

Wichtig

Die XmlSchemaCollection Klasse ist in der .NET Framework Version 2.0 veraltet und wurde durch die XmlSchemaSet Klasse ersetzt.

Siehe auch

Gilt für