Aracılığıyla paylaş


XmlSchemaSet.Add Yöntem

Tanım

Verilen XML Şema tanım dili (XSD) şemasını öğesine XmlSchemaSetekler.

Aşırı Yüklemeler

Name Description
Add(XmlSchema)

verilen XmlSchema değerini öğesine XmlSchemaSetekler.

Add(XmlSchemaSet)

verilen XmlSchemaSet içindeki tüm XML Şema tanım dili (XSD) şemalarını öğesine XmlSchemaSetekler.

Add(String, String)

BELIRTILEN URL'ye XML Şema tanım dili (XSD) şemasını XmlSchemaSetekler.

Add(String, XmlReader)

içinde yer alan XML Şema tanım dili (XSD) şemasını XmlReaderXmlSchemaSetöğesine ekler.

Add(XmlSchema)

Kaynak:
XmlSchemaSet.cs
Kaynak:
XmlSchemaSet.cs
Kaynak:
XmlSchemaSet.cs
Kaynak:
XmlSchemaSet.cs
Kaynak:
XmlSchemaSet.cs

verilen XmlSchema değerini öğesine XmlSchemaSetekler.

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

Parametreler

schema
XmlSchema

XmlSchema öğesine eklenecek XmlSchemaSetnesne.

Döndürülenler

XmlSchema Şema geçerliyse bir nesne. Şema geçerli değilse ve belirtildiyse ValidationEventHandler , null döndürülür ve uygun doğrulama olayı oluşturulur. Aksi takdirde, bir XmlSchemaException atılır.

Özel durumlar

Şema geçerli değil.

XmlSchema Parametre olarak geçirilen nesne: null.

Açıklamalar

XmlSchema nesnesi içinde XmlSchemaSetAdd zaten varsa, yöntemi hiçbir şey yapmaz.

Bu yöntemin işlevselliği yöntemin işleviyle Add aynıdır.

Şunlara uygulanır

Add(XmlSchemaSet)

Kaynak:
XmlSchemaSet.cs
Kaynak:
XmlSchemaSet.cs
Kaynak:
XmlSchemaSet.cs
Kaynak:
XmlSchemaSet.cs
Kaynak:
XmlSchemaSet.cs

verilen XmlSchemaSet içindeki tüm XML Şema tanım dili (XSD) şemalarını öğesine XmlSchemaSetekler.

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)

Parametreler

schemas
XmlSchemaSet

XmlSchemaSet nesnesi.

Özel durumlar

içindeki XmlSchemaSet bir şema geçerli değil.

XmlSchemaSet Parametre olarak geçirilen nesne: null.

Örnekler

Aşağıdaki kod örneğinde, bir XmlSchemaSetöğesine şema ekleme ve yöntemini kullanarak yenisine XmlSchemaSet ekleme XmlSchemaSet gösterilmektedirAdd.

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);

Açıklamalar

Bir şemanın bir öğesine eklenebilmesi için XmlSchemaSetönce başarıyla önişlenmiş olması gerekir. Önişlem aşağıdaki temel görevleri gerçekleştirir.

  1. Şema, W3C XML Şeması kurallarına göre yapısal geçerlilik açısından denetlendi, ancak şema tam olarak doğrulanmamış.

  2. İç ve dış şema bileşenlerine başvurular çözümlenir. Başarıyla alınan içeri aktarılan veya eklenen şemalar da öğesine XmlSchemaSeteklenir. İçeri aktarılan şemalar ayrı XmlSchema nesneler olarak eklenir ve dahil edilen şemalar öğesinin XmlSchemabir parçası haline getirilir.

eklenecek öğesinin IsCompiledXmlSchemaSet özelliği ise true, eklenecek içindeki XmlSchemaSet tüm şemalar öğesine XmlSchemaSeteklenir. IsCompiled eklenecek özelliğinin XmlSchemaSet özelliği isefalse, eklenen her şema eklenmeden önce önceden işlenir. Yeni eklenen XmlSchemaSet şemalardan herhangi biri önceden işlenemezse, hiçbir şema eklenmez; bunun yerine bir XmlSchemaException oluşturulur. Sonuç olarak, aşağıdaki iki kod örneği eşdeğer değildir.

' 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);
}

Önceki iki kod örneği eşdeğer değildir. İlk örnekte, içinde schemaSet1 geçersiz bir şema varsa ve IsCompiled özelliği olarak falseayarlandıysa, öğesine schemaSethiçbir şema eklenmez. İkinci örnekte, geçersiz bir şemayla karşılaşılmadan ve özel durum oluşturmadan önce bir dizi şema eklenebilir schemaSet .

Şunlara uygulanır

Add(String, String)

Kaynak:
XmlSchemaSet.cs
Kaynak:
XmlSchemaSet.cs
Kaynak:
XmlSchemaSet.cs
Kaynak:
XmlSchemaSet.cs
Kaynak:
XmlSchemaSet.cs

BELIRTILEN URL'ye XML Şema tanım dili (XSD) şemasını XmlSchemaSetekler.

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

Parametreler

targetNamespace
String

Şema özelliği veya null şemada targetNamespace belirtileni targetNamespace kullanmak için.

schemaUri
String

Yüklenecek şemayı belirten URL.

Döndürülenler

XmlSchema Şema geçerliyse bir nesne. Şema geçerli değilse ve belirtildiyse ValidationEventHandler , null döndürülür ve uygun doğrulama olayı oluşturulur. Aksi takdirde, bir XmlSchemaException atılır.

Özel durumlar

Şema geçerli değil.

Parametre olarak geçirilen URL veya Emptyşeklindedirnull.

Örnekler

Aşağıdaki kod örneği, hedef ad alanına http://www.contoso.com/books sahip şemayı öğesine XmlSchemaSeteklerhttp://www.contoso.com/books.xsd.

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");

Örnek, girdi olarak dosyasını kullanır books.xsd .

<?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>

Açıklamalar

Bir şemanın bir öğesine eklenebilmesi için XmlSchemaSetönce başarıyla önişlenmiş olması gerekir. Önişlem aşağıdaki temel görevleri gerçekleştirir.

  1. Şema, W3C XML Şeması kurallarına göre yapısal geçerlilik açısından denetlendi, ancak şema tam olarak doğrulanmamış.

  2. İç ve dış şema bileşenlerine başvurular çözümlenir. Başarıyla alınan içeri aktarılan veya eklenen şemalar da öğesine XmlSchemaSeteklenir. İçeri aktarılan şemalar ayrı XmlSchema nesneler olarak eklenir ve dahil edilen şemalar öğesinin XmlSchemabir parçası haline getirilir.

Yöntemi kullanırken dikkate alınması gereken önemli notlar aşağıdadır Add .

  • içinde zaten bulunan bir şemayla XmlSchemaSet aynı hedef ad alanına ve şema konumu URL'sine XmlSchemaSet şema eklemek özgün şema nesnesini döndürür.

  • 'a XmlSchemaSetyeni bir şema başarıyla eklendiğinde öğesinin IsCompiledXmlSchemaSet özelliği olarak falseayarlanır.

  • XML şemasında karşılaşılan tüm ekleme veya içeri aktarma öğeleri, yöntem çağrıldığında Add çözümlenir. Ekleme ve içeri aktarma öğelerinin çözümlenememesi şema doğrulama uyarısına XmlSchemaSet neden olur ve nesne için belirtilmemişseValidationEventHandler, bu uyarı bildirilmez.

  • içinde zaten var olan XmlSchemaSet bir şemayla aynı hedef ad alanına sahip bir şema içine eklenirse XmlSchemaSet, her iki şema da eklenir.

    Uyarı

    Bu davranış, eski XmlSchemaCollection nesneden farklıdır.

  • Add yöntemiXmlSchemaSet, yöntem çağrıldığında hedef ad alanının parametre olarak belirtilmesi yerine şemada tanımlanan hedef ad alanını kullanma özelliğine Add sahiptir. yönteminin parametresinde belirtilmesinull, aşağıdaki kod örneğinde gösterildiği gibi şemada tanımlanan hedef ad alanını kullanmasını belirtirXmlSchemaSet.targetNamespaceAdd

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);
}

Yukarıdaki kod örneğinde yönteminin nulltargetNamespace parametresi Add olarak belirtilmiştir. Sonuç olarak, targetNamespace books.xml dosyasında tanımlanan kullanılır. Bu durumda, parametresi olarak targetNamespace belirtilmişse http://www.contoso.com/books yöntemini çağırmanın Add sonucu aynı olacaktır.

  • W3C XML Şeması, hedef ad alanı olmayan şemaların, hedef ad alanı tanımlanmış şemalara eklenmesine olanak tanır. Bu durumda, tanımlı bir hedef ad alanı olmayan şema, dahil edilen şemanın hedef ad alanı içine alınır. Eklenen şema, hedef ad alanı tanımlanmış gibi değerlendirilir. Benzer şekilde, aşağıdaki örnekte gösterildiği gibi, hedef ad alanı olmayan şemalar öğesine eklenebilir XmlSchemaSet ve yöntemi tarafından Add belirtilen hedef ad alanına zorlama yapılabilir.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="A" type="xs:string" />
</xs:schema>

Yukarıdaki şema hedef ad alanıyla http://www.contoso.com/new/targetnamespace öğesine eklenirse XmlSchemaSet (aşağıdaki kodda gösterildiği gibi), şemada bildirilen hedef ad alanı olarak http://www.contoso.com/new/targetnamespacedeğerlendirilir.

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);
}

Şunlara uygulanır

Add(String, XmlReader)

Kaynak:
XmlSchemaSet.cs
Kaynak:
XmlSchemaSet.cs
Kaynak:
XmlSchemaSet.cs
Kaynak:
XmlSchemaSet.cs
Kaynak:
XmlSchemaSet.cs

içinde yer alan XML Şema tanım dili (XSD) şemasını XmlReaderXmlSchemaSetöğesine ekler.

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

Parametreler

targetNamespace
String

Şema özelliği veya null şemada targetNamespace belirtileni targetNamespace kullanmak için.

schemaDocument
XmlReader

XmlReader nesnesi.

Döndürülenler

XmlSchema Şema geçerliyse bir nesne. Şema geçerli değilse ve belirtildiyse ValidationEventHandler , null döndürülür ve uygun doğrulama olayı oluşturulur. Aksi takdirde, bir XmlSchemaException atılır.

Özel durumlar

Şema geçerli değil.

XmlReader Parametre olarak geçirilen nesne: null.

Örnekler

Aşağıdaki kod örneği, hedef ad alanı ile içinde bulunan XmlTextReader books.xsd şemasını http://www.contoso.com/books öğesine XmlSchemaSetekler.

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");

Açıklamalar

Bir şemanın bir öğesine eklenebilmesi için XmlSchemaSetönce başarıyla önişlenmiş olması gerekir. Önişlem aşağıdaki temel görevleri gerçekleştirir.

  1. Şema, W3C XML Şeması kurallarına göre yapısal geçerlilik açısından denetlendi, ancak şema tam olarak doğrulanmamış.

  2. İç ve dış şema bileşenlerine başvurular çözümlenir. Başarıyla alınan içeri aktarılan veya eklenen şemalar da öğesine XmlSchemaSeteklenir. İçeri aktarılan şemalar ayrı XmlSchema nesneler olarak eklenir ve dahil edilen şemalar öğesinin XmlSchemabir parçası haline getirilir.

Yöntemi kullanırken dikkate alınması gereken önemli notlar aşağıdadır Add .

  • İçeri aktarılan veya içinde yer alan XmlReader şemalar tarafından başarıyla alınan şemalar da öğesine XmlSchemaSeteklenir.

  • XmlReader kök öğesinde konumlandırılmazsa, XmlSchemaException geçerli öğe bir öğe olmadığı sürece bir oluşturulur. Geçerli öğe bir xs:schema öğeyse, şema belgesi öğesine XmlSchemaSetokunur; aksi takdirde, şema geçerli olmadığından bir XmlSchemaException oluşturulur.

  • XmlReader bir XML düğümleri dizisinin üzerine yerleştirilirse, yalnızca dizideki ilk düğüm eklenir.

  • Şema bir XmlReader.Create yöntem çağrısından oluşturulduysa, W3C XML Şeması belgelerine satır içi şema işleme uygulanmadığından özelliğin değeri ProcessInlineSchema yoksayılır.

  • XmlResolver özelliğinin XmlReader özelliği, öğeleri dahil etme ve içeri aktarma içindeki ad alanlarına veya şema konumlarına yapılan başvuruları çözümlemek için kullanılmaz. Bunun yerine özelliği XmlResolverXmlSchemaSet kullanılır.

  • Add yöntemiXmlSchemaSet, yöntem çağrıldığında hedef ad alanının parametre olarak belirtilmesi yerine şemada tanımlanan hedef ad alanını kullanma özelliğine Add sahiptir. veya yönteminin Add belirtilmesinull, öğesine şemada tanımlanan hedef ad alanını kullanmasını belirtirXmlSchemaSet.String.Empty Bu davranışa bir örnek için yöntemine Add bakın.

Bu yöntemin kalan işlevselliği yöntemin işleviyle Add aynıdır.

Şunlara uygulanır