XmlSchemaSet.Add Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Lägger till det angivna schemat för XML-schemadefinitionsspråk (XSD) i XmlSchemaSet.
Överlagringar
| Name | Description |
|---|---|
| Add(XmlSchema) |
Lägger till den angivna XmlSchema i XmlSchemaSet. |
| Add(XmlSchemaSet) |
Lägger till alla XSD-scheman (XML Schema Definition Language) i angivet XmlSchemaSet till XmlSchemaSet. |
| Add(String, String) |
Lägger till schemat för XML-schemadefinitionsspråk (XSD) vid den URL som anges i XmlSchemaSet. |
| Add(String, XmlReader) |
Lägger till schemat xml-schemadefinitionsspråk (XSD) som finns i XmlReader till XmlSchemaSet. |
Add(XmlSchema)
- Källa:
- XmlSchemaSet.cs
- Källa:
- XmlSchemaSet.cs
- Källa:
- XmlSchemaSet.cs
- Källa:
- XmlSchemaSet.cs
- Källa:
- XmlSchemaSet.cs
Lägger till den angivna XmlSchema i 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
Parametrar
- schema
- XmlSchema
Objektet XmlSchema som ska läggas till i XmlSchemaSet.
Returer
Ett XmlSchema objekt om schemat är giltigt. Om schemat inte är giltigt och ett ValidationEventHandler har angetts returneras det null och lämplig valideringshändelse aktiveras. Annars utlöses en XmlSchemaException.
Undantag
Schemat är inte giltigt.
Objektet XmlSchema som skickas som en parameter är null.
Kommentarer
Om objektet XmlSchema redan finns i XmlSchemaSetAdd gör metoden ingenting.
Funktionerna i den här metoden är identiska med metodens Add .
Gäller för
Add(XmlSchemaSet)
- Källa:
- XmlSchemaSet.cs
- Källa:
- XmlSchemaSet.cs
- Källa:
- XmlSchemaSet.cs
- Källa:
- XmlSchemaSet.cs
- Källa:
- XmlSchemaSet.cs
Lägger till alla XSD-scheman (XML Schema Definition Language) i angivet XmlSchemaSet till 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)
Parametrar
- schemas
- XmlSchemaSet
Objektet XmlSchemaSet.
Undantag
Ett schema i XmlSchemaSet är ogiltigt.
Objektet XmlSchemaSet som skickas som en parameter är null.
Exempel
I följande kodexempel visas hur du lägger till scheman i en XmlSchemaSetoch sedan lägger till i XmlSchemaSet en ny XmlSchemaSet med hjälp av Add -metoden.
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);
Kommentarer
Innan ett schema kan läggas till i en XmlSchemaSetmåste det förbearbetas. Förbearbetning utför följande grundläggande uppgifter.
Schemat kontrolleras för strukturell giltighet enligt reglerna i W3C XML-schema, men schemat är inte fullständigt verifierat.
Referenser till interna och externa schemakomponenter matchas. Alla importerade eller inkluderade scheman som har hämtats läggs också till i XmlSchemaSet. Importerade scheman läggs till som separata XmlSchema objekt, och inkluderade scheman görs till en del av inklusive XmlSchema.
IsCompiled Om egenskapen för att XmlSchemaSet lägga till är trueläggs alla scheman i som XmlSchemaSet ska läggas till i XmlSchemaSet.
IsCompiled Om egenskapen för att XmlSchemaSet lägga till är falseförbearbetas varje schema som läggs till innan det läggs till. Om något av schemana i det nyligen tillagda XmlSchemaSet inte kan förbearbetas läggs inga scheman till. I stället genereras ett XmlSchemaException . Därför är följande två kodexempel inte likvärdiga.
' 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);
}
De föregående två kodexemplen är inte likvärdiga. I det första exemplet, om ett ogiltigt schema finns i och dess schemaSet1 egenskap är inställd på IsCompiled, läggs inga scheman till falsei schemaSet . I det andra exemplet kan ett antal scheman läggas till schemaSet innan ett ogiltigt schema påträffas och ett undantag utlöses.
Gäller för
Add(String, String)
- Källa:
- XmlSchemaSet.cs
- Källa:
- XmlSchemaSet.cs
- Källa:
- XmlSchemaSet.cs
- Källa:
- XmlSchemaSet.cs
- Källa:
- XmlSchemaSet.cs
Lägger till schemat för XML-schemadefinitionsspråk (XSD) vid den URL som anges i 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
Parametrar
- targetNamespace
- String
targetNamespace Schemaegenskapen eller null för att använda det targetNamespace som anges i schemat.
- schemaUri
- String
Den URL som anger vilket schema som ska läsas in.
Returer
Ett XmlSchema objekt om schemat är giltigt. Om schemat inte är giltigt och ett ValidationEventHandler har angetts returneras det null och lämplig valideringshändelse aktiveras. Annars utlöses en XmlSchemaException.
Undantag
Schemat är inte giltigt.
URL:en som skickas som en parameter är null eller Empty.
Exempel
Följande kodexempel lägger till http://www.contoso.com/books.xsd schemat med ett målnamnområde http://www.contoso.com/books för till 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");
I exemplet används books.xsd filen som indata.
<?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>
Kommentarer
Innan ett schema kan läggas till i en XmlSchemaSetmåste det förbearbetas. Förbearbetning utför följande grundläggande uppgifter.
Schemat kontrolleras för strukturell giltighet enligt reglerna i W3C XML-schema, men schemat är inte fullständigt verifierat.
Referenser till interna och externa schemakomponenter matchas. Alla importerade eller inkluderade scheman som har hämtats läggs också till i XmlSchemaSet. Importerade scheman läggs till som separata XmlSchema objekt, och inkluderade scheman görs till en del av inklusive XmlSchema.
Följande är viktiga att tänka på när du använder Add metoden.
Om du lägger till ett schema i XmlSchemaSet med samma målnamnområde och schemaplats-URL som ett schema som redan finns i XmlSchemaSet returneras det ursprungliga schemaobjektet.
När ett nytt schema har lagts till i en XmlSchemaSetIsCompiled anges egenskapen för XmlSchemaSet egenskapen till
false.Alla inkluderings- eller importelement som påträffas i ett XML-schema löses när Add metoden anropas. Om det inte går att lösa inkludera och importera element resulterar det i en schemaverifieringsvarning och om inget ValidationEventHandler har angetts för XmlSchemaSet objektet rapporteras inte varningen.
Om ett schema med samma målnamnområde som ett schema som redan finns i läggs till i XmlSchemaSet läggs båda schemana till XmlSchemaSet.
Note
Det här beteendet skiljer sig från det föråldrade XmlSchemaCollection objektet.
Metoden AddXmlSchemaSet för har möjlighet att använda målnamnområdet som definierats i ett schema, i stället för att kräva att målnamnområdet anges som en parameter när Add metoden anropas. Om du anger
nullparameterntargetNamespaceAdd för metoden instrueras XmlSchemaSet att använda målnamnområdet som definierats i schemat, enligt följande kodexempel.
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);
}
I kodexemplet ovan null anges som parameter för targetNamespaceAdd metoden. Därför används den targetNamespace som definierats i books.xml-filen. I det här fallet skulle resultatet av att anropa Add metoden vara identiskt om http://www.contoso.com/books det hade angetts som parameter.targetNamespace
- Med W3C XML-schema kan scheman utan målnamnområde ingå i scheman med ett definierat målnamnområde. I det här fallet tvingas schemat utan ett definierat målnamnområde till målnamnområdet för det inkluderade schemat. Det inkluderade schemat behandlas som om det hade definierat målnamnområdet. På samma sätt kan scheman utan ett målnamnområde läggas till XmlSchemaSet i och framtvingas i målnamnområdet som anges av Add metoden, enligt följande exempel.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="A" type="xs:string" />
</xs:schema>
Om schemat ovan läggs till XmlSchemaSet i med målnamnområdet http://www.contoso.com/new/targetnamespace (som visas i koden nedan) behandlas det som om målnamnområdet som deklarerades i schemat var 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);
}
Gäller för
Add(String, XmlReader)
- Källa:
- XmlSchemaSet.cs
- Källa:
- XmlSchemaSet.cs
- Källa:
- XmlSchemaSet.cs
- Källa:
- XmlSchemaSet.cs
- Källa:
- XmlSchemaSet.cs
Lägger till schemat xml-schemadefinitionsspråk (XSD) som finns i XmlReader till 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
Parametrar
- targetNamespace
- String
targetNamespace Schemaegenskapen eller null för att använda det targetNamespace som anges i schemat.
Returer
Ett XmlSchema objekt om schemat är giltigt. Om schemat inte är giltigt och ett ValidationEventHandler har angetts returneras det null och lämplig valideringshändelse aktiveras. Annars utlöses en XmlSchemaException.
Undantag
Schemat är inte giltigt.
Objektet XmlReader som skickas som en parameter är null.
Exempel
Följande kodexempel lägger till schemat books.xsd som finns i XmlTextReader med ett målnamnområde http://www.contoso.com/books för XmlSchemaSettill .
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");
Kommentarer
Innan ett schema kan läggas till i en XmlSchemaSetmåste det förbearbetas. Förbearbetning utför följande grundläggande uppgifter.
Schemat kontrolleras för strukturell giltighet enligt reglerna i W3C XML-schema, men schemat är inte fullständigt verifierat.
Referenser till interna och externa schemakomponenter matchas. Alla importerade eller inkluderade scheman som har hämtats läggs också till i XmlSchemaSet. Importerade scheman läggs till som separata XmlSchema objekt, och inkluderade scheman görs till en del av inklusive XmlSchema.
Följande är viktiga att tänka på när du använder Add metoden.
Scheman som har importerats eller tagits med i scheman som finns i XmlReader har också lagts till i XmlSchemaSet.
XmlReader Om inte är placerat på rotelementet genereras en XmlSchemaException såvida inte det aktuella objektet är ett element. Om det aktuella objektet är ett
xs:schemaelement läses schemadokumentet in i XmlSchemaSet. Annars genereras ett XmlSchemaException eftersom schemat inte är giltigt.XmlReader Om är placerad över en sekvens med XML-noder läggs endast den första noden i sekvensen till.
Om schemat skapades från ett XmlReader.Create metodanrop ignoreras värdet ProcessInlineSchema för egenskapen eftersom infogad schemabearbetning inte tillämpas för W3C XML-schemadokument.
Egenskapen XmlResolverXmlReader för används inte för att matcha referenser till namnområden eller schemaplatser i include- och importelement. I XmlResolver stället används egenskapen för den XmlSchemaSet .
Metoden AddXmlSchemaSet för har möjlighet att använda målnamnområdet som definierats i ett schema, i stället för att kräva att målnamnområdet anges som en parameter när Add metoden anropas. Om du anger
nulleller String.Empty till Add metoden instrueras XmlSchemaSet att använda målnamnområdet som definierats i schemat. Ett exempel på det här beteendet finns i Add metoden.
Återstående funktioner i den här metoden är identiska med metodens Add .