XmlSchemaSet.Add Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přidá dané schéma jazyka XSD (XML Schema Definition Language) do objektu XmlSchemaSet.
Přetížení
| Name | Description |
|---|---|
| Add(XmlSchema) |
Přidá danou XmlSchema hodnotu XmlSchemaSetdo . |
| Add(XmlSchemaSet) |
Přidá všechna schémata jazyka XSD (XML Schema Definition Language) v dané XmlSchemaSet sadě XmlSchemaSet. |
| Add(String, String) |
Přidá schéma jazyka XSD (XML Schema Definition Language) na adrese URL zadané do objektu XmlSchemaSet. |
| Add(String, XmlReader) |
Přidá schéma XSD (XML Schema Definition Language) obsažené v objektu XmlReaderXmlSchemaSet. |
Add(XmlSchema)
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
Přidá danou XmlSchema hodnotu XmlSchemaSetdo .
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
Parametry
- schema
- XmlSchema
Objekt XmlSchema , který chcete přidat do objektu XmlSchemaSet.
Návraty
Objekt XmlSchema , pokud je schéma platné. Pokud schéma není platné a ValidationEventHandler je zadáno, null vrátí se a vyvolá se příslušná ověřovací událost. V opačném případě se vyvolá XmlSchemaException.
Výjimky
Schéma není platné.
Objekt XmlSchema předaný jako parametr je null.
Poznámky
XmlSchema Pokud objekt již existuje v XmlSchemaSet, Add metoda nic nedělá.
Funkce této metody je stejná jako funkce Add metody.
Platí pro
Add(XmlSchemaSet)
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
Přidá všechna schémata jazyka XSD (XML Schema Definition Language) v dané XmlSchemaSet sadě 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)
Parametry
- schemas
- XmlSchemaSet
Objekt XmlSchemaSet
Výjimky
Schéma není XmlSchemaSet platné.
Objekt XmlSchemaSet předaný jako parametr je null.
Příklady
Následující příklad kódu ilustruje přidání schémat do objektu XmlSchemaSeta následné přidání XmlSchemaSet do nového XmlSchemaSet pomocí Add metody.
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);
Poznámky
Před přidání schématu do objektu XmlSchemaSetmusí být úspěšně předzpracováno. Předběžné zpracování provádí následující základní úlohy.
Schéma se kontroluje pro strukturální platnost podle pravidel schématu XML W3C, ale schéma není plně ověřeno.
Řeší se odkazy na interní a externí komponenty schématu. Všechna importovaná nebo zahrnutá schémata, která jsou úspěšně načtena, se také přidají do objektu XmlSchemaSet. Importovaná schémata jsou přidána jako samostatné XmlSchema objekty a zahrnutá schémata jsou součástí zahrnutí XmlSchema.
Pokud je IsCompiled vlastnost XmlSchemaSet přidat true, jsou do objektu přidána všechna schémata v XmlSchemaSet doplňku XmlSchemaSet. Pokud je IsCompiledfalsevlastnost XmlSchemaSet přidání , každé přidané schéma je před přidáním předem zpracováno. Pokud se některé ze schémat v nově přidaném XmlSchemaSet schématu nepodaří předzpracovat, nepřidají se žádná schémata. Místo toho dojde k XmlSchemaException vyvolání. V důsledku toho následující dva příklady kódu nejsou ekvivalentní.
' 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);
}
Předchozí dva příklady kódu nejsou ekvivalentní. Pokud v prvním příkladu existuje schemaSet1 neplatné schéma a jeho IsCompiled vlastnost je nastavena na false, nejsou přidána žádná schémata .schemaSet V druhém příkladu lze přidat několik schémat před schemaSet výskytem neplatného schématu a vyvolá se výjimka.
Platí pro
Add(String, String)
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
Přidá schéma jazyka XSD (XML Schema Definition Language) na adrese URL zadané do objektu 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
Parametry
- targetNamespace
- String
Vlastnost schématu targetNamespace nebo null použití zadané ve targetNamespace schématu.
- schemaUri
- String
Adresa URL, která určuje schéma, které se má načíst.
Návraty
Objekt XmlSchema , pokud je schéma platné. Pokud schéma není platné a ValidationEventHandler je zadáno, null vrátí se a vyvolá se příslušná ověřovací událost. V opačném případě se vyvolá XmlSchemaException.
Výjimky
Schéma není platné.
Adresa URL předaná jako parametr je null nebo Empty.
Příklady
Následující příklad kódu přidá http://www.contoso.com/books.xsd schéma s cílovým oborem názvů http://www.contoso.com/books do objektu 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");
Příklad používá books.xsd soubor jako vstup.
<?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>
Poznámky
Před přidání schématu do objektu XmlSchemaSetmusí být úspěšně předzpracováno. Předběžné zpracování provádí následující základní úlohy.
Schéma se kontroluje pro strukturální platnost podle pravidel schématu XML W3C, ale schéma není plně ověřeno.
Řeší se odkazy na interní a externí komponenty schématu. Všechna importovaná nebo zahrnutá schémata, která jsou úspěšně načtena, se také přidají do objektu XmlSchemaSet. Importovaná schémata jsou přidána jako samostatné XmlSchema objekty a zahrnutá schémata jsou součástí zahrnutí XmlSchema.
Při použití Add této metody je potřeba vzít v úvahu následující důležité poznámky.
Přidání schématu XmlSchemaSet do stejného cílového oboru názvů a adresy URL umístění schématu jako schéma, které již obsahuje, XmlSchemaSet vrátí původní objekt schématu.
Při úspěšném přidání nového schématu do objektu XmlSchemaSet, IsCompiled vlastnost objektu XmlSchemaSet je nastavena na
falsehodnotu .Všechny prvky zahrnutí nebo importu, ke kterým došlo ve schématu XML, se přeloží při Add zavolání metody. Při řešení potíží s zahrnutím a importem prvků dojde k upozornění na ověření schématu a pokud pro objekt nebyl zadán XmlSchemaSet žádnýValidationEventHandler, nebude toto upozornění hlášeno.
Pokud je do objektu přidáno schéma se stejným cílovým oborem názvů jako schéma, které již v objektu XmlSchemaSetXmlSchemaSetexistuje, jsou přidána obě schémata.
Poznámka:
Toto chování se liší od zastaralého XmlSchemaCollection objektu.
Metoda Add má XmlSchemaSet schopnost použít cílový obor názvů definovaný ve schématu, místo aby byl cílový obor názvů zadán jako parametr při Add zavolání metody. Zadání
nullv parametrutargetNamespaceAdd metody dává XmlSchemaSet pokyn k použití cílového oboru názvů definovaného ve schématu, jak je znázorněno v následujícím příkladu kódu.
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);
}
V příkladu kódu výše null je zadán jako targetNamespace parametr metody Add . V důsledku toho se targetNamespace použije definovaný soubor books.xml. V tomto případě by výsledek volání Add metody byl stejný, kdyby http://www.contoso.com/books byl zadán jako targetNamespace parametr.
- Schéma XML W3C umožňuje schématům bez cílového oboru názvů zahrnout schémata s definovaným cílovým oborem názvů. V tomto případě je schéma bez definovaného cílového oboru názvů převedeno do cílového oboru názvů včetně schématu. Zahrnuté schéma je považováno za to, že má definovaný cílový obor názvů. Podobně lze schémata bez cílového oboru názvů přidat do XmlSchemaSet cílového oboru názvů určeného Add metodou a převést je do cílového oboru názvů, jak je znázorněno v následujícím příkladu.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="A" type="xs:string" />
</xs:schema>
Pokud je výše uvedené schéma přidáno do XmlSchemaSet cílového oboru názvů http://www.contoso.com/new/targetnamespace (jak je znázorněno v následujícím kódu), je považováno za to, že cílový obor názvů deklarovaný ve schématu byl 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);
}
Platí pro
Add(String, XmlReader)
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
Přidá schéma XSD (XML Schema Definition Language) obsažené v objektu XmlReaderXmlSchemaSet.
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
Parametry
- targetNamespace
- String
Vlastnost schématu targetNamespace nebo null použití zadané ve targetNamespace schématu.
Návraty
Objekt XmlSchema , pokud je schéma platné. Pokud schéma není platné a ValidationEventHandler je zadáno, null vrátí se a vyvolá se příslušná ověřovací událost. V opačném případě se vyvolá XmlSchemaException.
Výjimky
Schéma není platné.
Objekt XmlReader předaný jako parametr je null.
Příklady
Následující příklad kódu přidá books.xsd schéma obsažené v XmlTextReader s cílovým oborem názvů http://www.contoso.com/books do 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");
Poznámky
Před přidání schématu do objektu XmlSchemaSetmusí být úspěšně předzpracováno. Předběžné zpracování provádí následující základní úlohy.
Schéma se kontroluje pro strukturální platnost podle pravidel schématu XML W3C, ale schéma není plně ověřeno.
Řeší se odkazy na interní a externí komponenty schématu. Všechna importovaná nebo zahrnutá schémata, která jsou úspěšně načtena, se také přidají do objektu XmlSchemaSet. Importovaná schémata jsou přidána jako samostatné XmlSchema objekty a zahrnutá schémata jsou součástí zahrnutí XmlSchema.
Při použití Add této metody je potřeba vzít v úvahu následující důležité poznámky.
Úspěšně načtená schémata importovaná nebo zahrnutá schématy obsaženými ve XmlReader schématech jsou také přidána do objektu XmlSchemaSet.
XmlReader Pokud není umístěn na kořenovém prvku, je vyvolána, XmlSchemaException pokud aktuální položka není prvek. Pokud je aktuální položka prvkem
xs:schema, dokument schématu se načte do XmlSchemaSetsouboru ; v opačném případě je vyvolán, XmlSchemaException protože schéma není platné.Pokud je umístěna XmlReader v posloupnosti uzlů XML, přidá se pouze první uzel v sekvenci.
Pokud schéma bylo vytvořeno z XmlReader.Create volání metody, hodnota ProcessInlineSchema vlastnosti je ignorována, protože vložené zpracování schématu není použito pro dokumenty schématu W3C XML.
Vlastnost XmlResolver objektu XmlReader se nepoužívá k překladu odkazů na obory názvů nebo umístění schématu v zahrnutí a importu prvků. XmlResolver Místo toho se použije vlastnost objektuXmlSchemaSet.
Metoda Add má XmlSchemaSet schopnost použít cílový obor názvů definovaný ve schématu, místo aby byl cílový obor názvů zadán jako parametr při Add zavolání metody.
nullZadání nebo String.Empty metoda Add dává pokynXmlSchemaSet, aby používal cílový obor názvů definovaný ve schématu. Příklad tohoto chování naleznete v Add metodě.
Zbývající funkce této metody jsou identické s touto metodou Add .