Share via


XmlSchemaSet.Add Metode

Definisi

Menambahkan skema bahasa definisi Skema XML (XSD) yang diberikan ke XmlSchemaSet.

Overload

Add(XmlSchema)

Menambahkan yang diberikan XmlSchema ke XmlSchemaSet.

Add(XmlSchemaSet)

Menambahkan semua skema bahasa definisi Skema XML (XSD) dalam yang diberikan XmlSchemaSet ke XmlSchemaSet.

Add(String, String)

Menambahkan skema bahasa definisi Skema XML (XSD) di URL yang ditentukan ke XmlSchemaSet.

Add(String, XmlReader)

Menambahkan skema bahasa definisi Skema XML (XSD) yang terkandung dalam XmlReader ke XmlSchemaSet.

Add(XmlSchema)

Sumber:
XmlSchemaSet.cs
Sumber:
XmlSchemaSet.cs
Sumber:
XmlSchemaSet.cs

Menambahkan yang diberikan XmlSchema ke XmlSchemaSet.

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

Parameter

schema
XmlSchema

Objek XmlSchema yang akan ditambahkan ke XmlSchemaSet.

Mengembalikan

Objek XmlSchema jika skema valid. Jika skema tidak valid dan ValidationEventHandler ditentukan, maka null dikembalikan dan peristiwa validasi yang sesuai dinaikkan. Jika tidak, XmlSchemaException akan muncul.

Pengecualian

Skema tidak valid.

Objek XmlSchema yang diteruskan sebagai parameter adalah null.

Keterangan

XmlSchema Jika objek sudah ada di XmlSchemaSet, Add metode tidak melakukan apa pun.

Fungsionalitas metode ini identik dengan metode .Add

Berlaku untuk

Add(XmlSchemaSet)

Sumber:
XmlSchemaSet.cs
Sumber:
XmlSchemaSet.cs
Sumber:
XmlSchemaSet.cs

Menambahkan semua skema bahasa definisi Skema XML (XSD) dalam yang diberikan XmlSchemaSet ke XmlSchemaSet.

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

Parameter

schemas
XmlSchemaSet

Objek XmlSchemaSet.

Pengecualian

Skema dalam XmlSchemaSet tidak valid.

Objek XmlSchemaSet yang diteruskan sebagai parameter adalah null.

Contoh

Contoh kode berikut mengilustrasikan penambahan skema ke XmlSchemaSet, lalu menambahkan ke XmlSchemaSet yang baru XmlSchemaSet menggunakan Add metode .

Dim schemaSet1 As XmlSchemaSet = New XmlSchemaSet
schemaSet1.Add("http://www.contoso.com/retail", "http://www.contoso.com/retail.xsd")
schemaSet1.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd")
schemaSet1.Add("http://www.contoso.com/music", "http://www.contoso.com/music.xsd")

Dim schemaSet2 As XmlSchemaSet = New XmlSchemaSet
schemaSet2.Add(schemaSet1)
XmlSchemaSet schemaSet1 = new XmlSchemaSet();
schemaSet1.Add("http://www.contoso.com/retail", "http://www.contoso.com/retail.xsd");
schemaSet1.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd");
schemaSet1.Add("http://www.contoso.com/music", "http://www.contoso.com/music.xsd");

XmlSchemaSet schemaSet2 = new XmlSchemaSet();
schemaSet2.Add(schemaSet1);

Keterangan

Sebelum skema dapat ditambahkan ke XmlSchemaSet, skema harus berhasil diproseksi sebelumnya. Praproses melakukan tugas dasar berikut.

  1. Skema diperiksa untuk validitas struktural sesuai dengan aturan Skema XML W3C, tetapi skema tidak sepenuhnya divalidasi.

  2. Referensi ke komponen skema internal dan eksternal diselesaikan. Setiap skema yang diimpor atau disertakan yang berhasil diambil juga ditambahkan ke XmlSchemaSet. Skema yang diimpor ditambahkan sebagai objek terpisah XmlSchema , dan skema yang disertakan dibuat sebagai bagian dari termasuk XmlSchema.

IsCompiled Jika properti dari yang XmlSchemaSet akan ditambahkan adalah true, semua skema dalam XmlSchemaSet untuk ditambahkan ditambahkan ke XmlSchemaSet. IsCompiled Jika properti yang XmlSchemaSet akan ditambahkan adalah false, setiap skema yang ditambahkan telah diprosces sebelum ditambahkan. Jika salah satu skema dalam skema yang baru ditambahkan XmlSchemaSet gagal diproseksi sebelumnya, tidak ada skema yang ditambahkan; sebagai gantinya, akan XmlSchemaException dilemparkan. Akibatnya, dua contoh kode berikut tidak setara.

' First example
schemaSet.Add(schemaSet1)

' Second example
Dim schema As XmlSchema

For Each schema in schemaSet.Schemas()

    schemaSet.Add(schema)

Next
// First example
schemaSet.Add(schemaSet1);

// Second example
foreach(XmlSchema schema in schemaSet.Schemas())
{
    schemaSet.Add(schema);
}

Dua contoh kode sebelumnya tidak setara. Dalam contoh pertama, jika skema yang tidak valid ada di schemaSet1 dan propertinya IsCompiled diatur ke false, tidak ada skema yang ditambahkan ke schemaSet. Dalam contoh kedua, sejumlah skema dapat ditambahkan sebelum schemaSet skema yang tidak valid ditemui dan pengecualian dilemparkan.

Berlaku untuk

Add(String, String)

Sumber:
XmlSchemaSet.cs
Sumber:
XmlSchemaSet.cs
Sumber:
XmlSchemaSet.cs

Menambahkan skema bahasa definisi Skema XML (XSD) di URL yang ditentukan ke XmlSchemaSet.

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

Parameter

targetNamespace
String

Properti skema targetNamespace , atau null untuk menggunakan yang targetNamespace ditentukan dalam skema.

schemaUri
String

URL yang menentukan skema yang akan dimuat.

Mengembalikan

Objek XmlSchema jika skema valid. Jika skema tidak valid dan ValidationEventHandler ditentukan, maka null dikembalikan dan peristiwa validasi yang sesuai dinaikkan. Jika tidak, XmlSchemaException akan muncul.

Pengecualian

Skema tidak valid.

URL yang diteruskan sebagai parameter adalah null atau Empty.

Contoh

Contoh kode berikut menambahkan http://www.contoso.com/books.xsd skema dengan namespace http://www.contoso.com/books target ke XmlSchemaSet.

Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd")
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd");

Contohnya menggunakan books.xsd file sebagai input.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.contoso.com/books" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="bookstore">
        <xs:complexType>
            <xs:sequence>
                <xs:element maxOccurs="unbounded" name="book">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="title" type="xs:string" />
                            <xs:element name="author">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element minOccurs="0" name="name" type="xs:string" />
                                        <xs:element minOccurs="0" name="first-name" type="xs:string" />
                                        <xs:element minOccurs="0" name="last-name" type="xs:string" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="price" type="xs:decimal" />
                        </xs:sequence>
                        <xs:attribute name="genre" type="xs:string" use="required" />
                        <xs:attribute name="publicationdate" type="xs:unsignedShort" use="required" />
                        <xs:attribute name="ISBN" type="xs:string" use="required" />
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

Keterangan

Sebelum skema dapat ditambahkan ke XmlSchemaSet, skema harus berhasil diproseksi sebelumnya. Praproses melakukan tugas dasar berikut.

  1. Skema diperiksa untuk validitas struktural sesuai dengan aturan Skema XML W3C, tetapi skema tidak sepenuhnya divalidasi.

  2. Referensi ke komponen skema internal dan eksternal diselesaikan. Setiap skema yang diimpor atau disertakan yang berhasil diambil juga ditambahkan ke XmlSchemaSet. Skema yang diimpor ditambahkan sebagai objek terpisah XmlSchema , dan skema yang disertakan dibuat sebagai bagian dari termasuk XmlSchema.

Berikut ini adalah catatan penting yang perlu dipertimbangkan Add saat menggunakan metode .

  • Menambahkan skema ke XmlSchemaSet dengan namespace target dan URL lokasi skema yang sama dengan skema yang sudah terkandung dalam XmlSchemaSet akan mengembalikan objek skema asli.

  • Ketika skema baru berhasil ditambahkan ke XmlSchemaSet, IsCompiled properti diatur XmlSchemaSet ke false.

  • Setiap elemen sertakan atau impor yang ditemui dalam skema XML diselesaikan saat metode dipanggil Add . Kegagalan untuk mengatasi termasuk dan mengimpor elemen menghasilkan peringatan validasi skema dan jika tidak ada ValidationEventHandler yang ditentukan untuk XmlSchemaSet objek, peringatan ini tidak akan dilaporkan.

  • Jika skema dengan namespace target yang sama dengan skema yang sudah ada di XmlSchemaSet ditambahkan ke XmlSchemaSet, kedua skema ditambahkan.

    Catatan

    Perilaku ini berbeda dari objek usang XmlSchemaCollection .

  • Metode Add memiliki XmlSchemaSet kemampuan untuk menggunakan namespace target yang ditentukan dalam skema, daripada mengharuskan namespace target ditentukan sebagai parameter ketika Add metode dipanggil. Menentukan null dalam targetNamespace parameter Add metode menginstruksikan XmlSchemaSet untuk menggunakan namespace target yang ditentukan dalam skema, seperti yang diilustrasikan dalam contoh kode berikut.

Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add(Nothing, "books.xsd")

Dim schema As XmlSchema
For Each schema In schemaSet.Schemas("http://www.contoso.com/books")
    schema.Write(Console.Out)
Next
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add(null, "books.xsd");

foreach(XmlSchema schema in schemaSet.Schemas("http://www.contoso.com/books"))
{
    schema.Write(Console.Out);
}

Dalam contoh kode di atas, null ditentukan sebagai targetNamespace parameter untuk Add metode . Akibatnya, yang targetNamespace ditentukan dalam file books.xml digunakan. Dalam hal ini, hasil pemanggilan Add metode akan identik jika http://www.contoso.com/books telah ditentukan sebagai targetNamespace parameter .

  • Skema XML W3C memungkinkan skema tanpa namespace target untuk disertakan dalam skema dengan namespace target yang ditentukan. Dalam hal ini, skema tanpa namespace layanan target yang ditentukan dipaksa ke dalam namespace layanan target dari skema termasuk. Skema yang disertakan diperlakukan seolah-olah memiliki namespace target yang ditentukan. Demikian pula, skema tanpa namespace target dapat ditambahkan ke XmlSchemaSet dan dipaksa ke dalam namespace layanan target yang ditentukan oleh Add metode , seperti yang diilustrasikan dalam contoh berikut.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="A" type="xs:string" />
</xs:schema>

Jika skema di atas ditambahkan ke XmlSchemaSet dengan namespace http://www.contoso.com/new/targetnamespace target (seperti yang ditunjukkan pada kode di bawah), skema diperlakukan seolah-olah namespace layanan target yang dinyatakan dalam skema adalah http://www.contoso.com/new/targetnamespace.

Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add("http://www.contoso.com/new/targetnamespace", "http://www.contoso.com/targetnamespace.xsd")

Dim schema As XmlSchema

For Each schema in schemaSet.Schemas()

    Console.WriteLine(schema.TargetNamespace)

Next
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add("http://www.contoso.com/new/targetnamespace", "http://www.contoso.com/targetnamespace.xsd");
foreach(XmlSchema schema in schemaSet.Schemas())
{
    Console.WriteLine(schema.TargetNamespace);
}

Berlaku untuk

Add(String, XmlReader)

Sumber:
XmlSchemaSet.cs
Sumber:
XmlSchemaSet.cs
Sumber:
XmlSchemaSet.cs

Menambahkan skema bahasa definisi Skema XML (XSD) yang terkandung dalam XmlReader ke XmlSchemaSet.

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

Parameter

targetNamespace
String

Properti skema targetNamespace , atau null untuk menggunakan yang targetNamespace ditentukan dalam skema.

schemaDocument
XmlReader

Objek XmlReader.

Mengembalikan

Objek XmlSchema jika skema valid. Jika skema tidak valid dan ValidationEventHandler ditentukan, maka null dikembalikan dan peristiwa validasi yang sesuai dinaikkan. Jika tidak, XmlSchemaException akan muncul.

Pengecualian

Skema tidak valid.

Objek XmlReader yang diteruskan sebagai parameter adalah null.

Contoh

Contoh kode berikut menambahkan skema books.xsd yang terkandung dalam XmlTextReader dengan namespace http://www.contoso.com/books target ke XmlSchemaSet.

Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add("http://www.contoso.com/books", New XmlTextReader("books.xsd")
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add("http://www.contoso.com/books", new XmlTextReader("books.xsd");

Keterangan

Sebelum skema dapat ditambahkan ke XmlSchemaSet, skema harus berhasil diproseksi sebelumnya. Praproses melakukan tugas dasar berikut.

  1. Skema diperiksa untuk validitas struktural sesuai dengan aturan Skema XML W3C, tetapi skema tidak sepenuhnya divalidasi.

  2. Referensi ke komponen skema internal dan eksternal diselesaikan. Setiap skema yang diimpor atau disertakan yang berhasil diambil juga ditambahkan ke XmlSchemaSet. Skema yang diimpor ditambahkan sebagai objek terpisah XmlSchema , dan skema yang disertakan dibuat sebagai bagian dari termasuk XmlSchema.

Berikut ini adalah catatan penting yang perlu dipertimbangkan Add saat menggunakan metode .

  • Berhasil mengambil skema yang diimpor atau disertakan oleh skema yang terkandung dalam XmlReader juga ditambahkan ke XmlSchemaSet.

  • XmlReader Jika tidak diposisikan pada elemen akar, akan XmlSchemaException dilemparkan kecuali item saat ini adalah elemen . Jika item saat ini adalah xs:schema elemen, dokumen skema dibaca ke dalam XmlSchemaSet; jika tidak, XmlSchemaException dilemparkan karena skema tidak valid.

  • XmlReader Jika diposisikan di atas urutan simpul XML, hanya simpul pertama dalam urutan yang ditambahkan.

  • Jika skema dibuat dari XmlReader.Create panggilan metode, nilai ProcessInlineSchema properti diabaikan, karena pemrosesan skema sebaris tidak diterapkan untuk dokumen Skema XML W3C.

  • XmlResolver Properti tidak XmlReader digunakan untuk mengatasi referensi ke namespace layanan atau lokasi skema dalam elemen serta impor. Sebagai gantinya XmlResolver , properti dari XmlSchemaSet digunakan.

  • Metode Add memiliki XmlSchemaSet kemampuan untuk menggunakan namespace target yang ditentukan dalam skema, daripada mengharuskan namespace target ditentukan sebagai parameter ketika Add metode dipanggil. Menentukan null atau String.Empty ke Add metode menginstruksikan XmlSchemaSet untuk menggunakan namespace target yang ditentukan dalam skema. Untuk contoh perilaku ini, lihat Add metode .

Fungsionalitas yang tersisa dari metode ini identik dengan metode .Add

Berlaku untuk