Aracılığıyla paylaş


XmlSchemaSet.Add Yöntem

Tanım

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

Aşırı Yüklemeler

Add(XmlSchema)

verilen XmlSchema öğesini öğesine XmlSchemaSetekler.

Add(XmlSchemaSet)

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

Add(String, String)

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

Add(String, XmlReader)

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

Add(XmlSchema)

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

verilen XmlSchema öğesini öğ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 nesne. Şema geçerli değilse ve belirtildiyse ValidationEventHandlernull , döndürülür ve uygun doğrulama olayı oluşturulur. Aksi takdirde, bir XmlSchemaException oluşturulur.

Ö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

verilen XmlSchemaSet içindeki tüm XML Şeması 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ği, bir XmlSchemaSetöğesine şema eklemeyi ve yöntemini kullanarak Add yenisine XmlSchemaSet eklemeyi XmlSchemaSet gösterir.

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 XmlSchemaSetöğesine eklenebilmesi için önce başarıyla ön işleme alınması gerekir. Ön işleme 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 denetlense de şema tam olarak doğrulanmaz.

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

IsCompiled eklenecek özelliğinin XmlSchemaSet özelliği isetrue, 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 schemaSet ve bir özel durum oluşturmadan önce bir dizi şema eklenebilir.

Şunlara uygulanır

Add(String, String)

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

BELIRTILEN URL'ye XML Şeması 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 belirtilen öğesini targetNamespace kullanmak için.

schemaUri
String

Yükecek şemayı belirten URL.

Döndürülenler

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

Ö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ı XmlSchemaSetöğesine eklerhttp://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, giriş 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 XmlSchemaSetöğesine eklenebilmesi için önce başarıyla ön işleme alınması gerekir. Ön işleme 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 denetlense de şema tam olarak doğrulanmaz.

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

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

  • 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 XmlSchemaSetIsCompiled yeni bir şema başarıyla eklendiğinde özelliğinin XmlSchemaSet ayarı olarak ayarlanırfalse.

  • Bir 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.

    Not

    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 yeteneğine Add sahiptir. yönteminin parametresinde belirtilmesinull, aşağıdaki kod örneğinde gösterildiği gibi şemasında 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 tanımlanmış bir hedef ad alanına sahip şemalara eklenmesini sağlar. Bu durumda, tanımlı bir hedef ad alanı olmayan şema, dahil edilen şemanın hedef ad alanında zorunludur. 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

içinde bulunan XML Şeması 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 belirtilen öğesini targetNamespace kullanmak için.

schemaDocument
XmlReader

XmlReader nesnesi.

Döndürülenler

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

Ö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 XmlSchemaSetöğesine eklenebilmesi için önce başarıyla ön işleme alınması gerekir. Ön işleme 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 denetlense de şema tam olarak doğrulanmaz.

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

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

  • İçeri aktarılan veya içinde bulunan XmlReader şemalar tarafından eklenen 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 içine XmlSchemaSetokunur; aksi takdirde, şema geçerli olmadığından bir XmlSchemaException oluşturulur.

  • XmlReader bir XML düğümleri dizisi üzerine konumlandırıldıysa, 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ğiXmlReader, ekleme ve içeri aktarma öğelerindeki ad alanlarına veya şema konumlarına yapılan başvuruları çözümlemek için kullanılmaz. Bunun yerine, XmlResolver özelliği XmlSchemaSet 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 yeteneğine Add sahiptir. yöntemine Add veya String.Empty belirtilmesinull, öğesinin XmlSchemaSet şemada tanımlanan hedef ad alanını kullanmasını ister. Bu davranışa bir örnek için yöntemine Add bakın.

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

Şunlara uygulanır