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 .XmlSchemaSet
Přetížení
Add(XmlSchema) |
Přidá danou XmlSchema hodnotu do XmlSchemaSet. |
Add(XmlSchemaSet) |
Přidá všechna schémata jazyka XSD (Xml Schema Definition Language) v daném XmlSchemaSet objektu XmlSchemaSetdo . |
Add(String, String) |
Přidá schéma jazyka XSD (XML Schema Definition Language) na adresu URL zadanou do .XmlSchemaSet |
Add(String, XmlReader) |
Přidá schéma jazyka XSD (XML Schema Definition Language) obsažené v objektu XmlReaderXmlSchemaSetdo . |
Add(XmlSchema)
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
Přidá danou XmlSchema hodnotu do 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
Parametry
- schema
- XmlSchema
Objekt XmlSchema , který se má přidat do objektu XmlSchemaSet.
Návraty
Objekt XmlSchema , pokud je schéma platné. Pokud schéma není platné a ValidationEventHandler je zadána hodnota , null
vrátí se a vyvolá se příslušná událost ověření. V opačném XmlSchemaException případě je vyvolán objekt .
Výjimky
Schéma není platné.
Objekt XmlSchema předaný jako parametr je null
.
Poznámky
XmlSchema Pokud objekt již existuje v objektu XmlSchemaSet, Add metoda neprovede nic.
Funkce této metody je shodná Add s funkcí metody .
Platí pro
Add(XmlSchemaSet)
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
Přidá všechna schémata jazyka XSD (Xml Schema Definition Language) v daném XmlSchemaSet objektu XmlSchemaSetdo .
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 v souboru XmlSchemaSet není platné.
Objekt XmlSchemaSet předaný jako parametr je null
.
Příklady
Následující příklad kódu ukazuje přidání schémat do objektu XmlSchemaSeta pak 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 XmlSchemaSetje nutné ho úspěšně předzpracovat. Předběžné zpracování provádí následující základní úlohy.
Kontroluje se strukturální platnost schématu podle pravidel schématu XML W3C, ale schéma není plně ověřeno.
Přeloží se odkazy na interní a externí součásti schématu. Všechna importovaná nebo zahrnutá schémata, která se úspěšně načtou, se také přidají do XmlSchemaSet. Importovaná schémata jsou přidána jako samostatné XmlSchema objekty a zahrnutá schémata jsou součástí včetně XmlSchema.
IsCompiled Pokud je true
vlastnost objektu XmlSchemaSet , všechna schémata v objektuXmlSchemaSet, který chcete přidat, se přidají do objektu XmlSchemaSet.
IsCompiled Pokud je false
vlastnost XmlSchemaSet přidat , před přidáním se před přidáním předzpracuje každé přidané schéma. Pokud se některé schéma v nově přidaném XmlSchemaSet schématu nepodaří předzpracovat, nepřidají se žádná schémata. XmlSchemaException Místo toho se vyvolá chyba . 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 neplatné schéma a schemaSet1
jeho IsCompiled vlastnost je nastavená na false
, do se nepřidají schemaSet
žádná schémata. V druhém příkladu lze před výskytem neplatného schématu přidat schemaSet
několik schémat a vyvolání výjimky.
Platí pro
Add(String, String)
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
- Zdroj:
- XmlSchemaSet.cs
Přidá schéma jazyka XSD (XML Schema Definition Language) na adresu URL zadanou do .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žít targetNamespace
vlastnost zadanou ve 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ána hodnota , null
vrátí se a vyvolá se příslušná událost ověření. V opačném XmlSchemaException případě je vyvolán objekt .
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 http://www.contoso.com/books
názvů do 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");
V příkladu se books.xsd
jako vstup použije soubor .
<?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 XmlSchemaSetje nutné ho úspěšně předzpracovat. Předběžné zpracování provádí následující základní úlohy.
Kontroluje se strukturální platnost schématu podle pravidel schématu XML W3C, ale schéma není plně ověřeno.
Přeloží se odkazy na interní a externí součásti schématu. Všechna importovaná nebo zahrnutá schémata, která se úspěšně načtou, se také přidají do XmlSchemaSet. Importovaná schémata jsou přidána jako samostatné XmlSchema objekty a zahrnutá schémata jsou součástí včetně XmlSchema.
Při použití metody je potřeba vzít v úvahu následující důležité poznámky Add .
Přidání schématu do objektu XmlSchemaSet se stejným cílovým oborem názvů a adresou URL umístění schématu, jako je schéma již obsažené v objektu XmlSchemaSet , vrátí původní objekt schématu.
Po úspěšném přidání nového schématu do objektu XmlSchemaSetje IsCompiled vlastnost objektu nastavena XmlSchemaSet na
false
hodnotu .Všechny prvky zahrnutí nebo importu zjištěné ve schématu XML jsou vyřešeny při Add zavolání metody. Selhání překladu elementů zahrnutí a importu má za následek upozornění ověření schématu, a pokud pro XmlSchemaSet objekt není zadáno žádnéValidationEventHandler, nebudou tato upozornění hlášena.
Pokud se do objektu přidá schéma se stejným cílovým oborem názvů jako schéma, které již existuje v XmlSchemaSet objektu XmlSchemaSet, přidají se obě schémata.
Poznámka
Toto chování se liší od zastaralého XmlSchemaCollection objektu.
Metoda AddXmlSchemaSet objektu má možnost použít cílový obor názvů definovaný ve schématu, místo aby při zavolání metody musel být cílový obor názvů zadán jako parametr Add . Zadání
null
v parametrutargetNamespace
Add metody dává pokyn XmlSchemaSet 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);
}
Ve výše uvedeném null
příkladu kódu je zadaný jako targetNamespace
parametr Add metody . V důsledku toho targetNamespace
se použije soubor definovaný v souboru books.xml. V tomto případě by byl výsledek volání Add metody identický, pokud http://www.contoso.com/books
by byl zadán jako targetNamespace
parametr .
- Schéma W3C XML umožňuje zahrnout schémata bez cílového oboru názvů do schémat s definovaným cílovým oborem názvů. V tomto případě se schéma bez definovaného cílového oboru názvů převede do cílového oboru názvů zahrnutého schématu. Se zahrnutým schématem se zachází, jako by měl definovaný cílový obor názvů. Podobně schémata bez cílového oboru názvů mohou být přidány do objektu XmlSchemaSet a převedeny do cílového oboru názvů určeného Add metodou, 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 se výše uvedené schéma přidá do objektu XmlSchemaSet s cílovým oborem názvů http://www.contoso.com/new/targetnamespace
(jak je znázorněno v následujícím kódu), považuje se 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
Přidá schéma jazyka XSD (XML Schema Definition Language) obsažené v objektu XmlReaderXmlSchemaSetdo .
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žít targetNamespace
vlastnost zadanou ve schématu.
Návraty
Objekt XmlSchema , pokud je schéma platné. Pokud schéma není platné a ValidationEventHandler je zadána hodnota , null
vrátí se a vyvolá se příslušná událost ověření. V opačném XmlSchemaException případě je vyvolán objekt .
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á schéma books.xsd obsažené v objektu 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 XmlSchemaSetje nutné ho úspěšně předzpracovat. Předběžné zpracování provádí následující základní úlohy.
Kontroluje se strukturální platnost schématu podle pravidel schématu XML W3C, ale schéma není plně ověřeno.
Přeloží se odkazy na interní a externí součásti schématu. Všechna importovaná nebo zahrnutá schémata, která se úspěšně načtou, se také přidají do XmlSchemaSet. Importovaná schémata jsou přidána jako samostatné XmlSchema objekty a zahrnutá schémata jsou součástí včetně XmlSchema.
Při použití metody je potřeba vzít v úvahu následující důležité poznámky Add .
Úspěšně načtená schémata importovaná nebo zahrnutá schématy obsažená v objektu XmlReader jsou také přidána XmlSchemaSetdo .
XmlReader Pokud není umístěn na kořenovém elementu, je vyvolána, XmlSchemaException pokud aktuální položka není prvek. Pokud je aktuální položka element,
xs:schema
je dokument schématu načten do XmlSchemaSet. V opačném případě je vyvolán, XmlSchemaException protože schéma není platné.XmlReader Pokud je umístěna nad sekvenci uzlů XML, přidá se pouze první uzel v sekvenci.
Pokud bylo schéma vytvořeno voláním XmlReader.Create metody, hodnota ProcessInlineSchema vlastnosti je ignorována, protože zpracování vloženého schématu není použito pro dokumenty schématu W3C XML.
Vlastnost XmlResolverXmlReader se nepoužívá k překladu odkazů na obory názvů nebo umístění schématu v elementech zahrnutí a importu. Místo toho se XmlResolver použije vlastnost .XmlSchemaSet
Metoda AddXmlSchemaSet objektu má možnost použít cílový obor názvů definovaný ve schématu, místo aby při zavolání metody musel být cílový obor názvů zadán jako parametr Add . Zadáním
null
metody nebo String.EmptyAdd dáváte pokyn XmlSchemaSet k použití cílového oboru názvů definovaného ve schématu. Příklad tohoto chování najdete v Add metodě .
Zbývající funkce této metody jsou stejné jako Add funkce metody .