XmlSchemaSet.Add Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee voegt u het opgegeven XSD-schema (XML Schema Definition Language) toe aan het XmlSchemaSet.
Overloads
| Name | Description |
|---|---|
| Add(XmlSchema) |
Voegt de opgegeven XmlSchema toe aan de XmlSchemaSet. |
| Add(XmlSchemaSet) |
Hiermee worden alle XSD-schema's (XML Schema Definition Language) toegevoegd aan de XmlSchemaSetopgegeven XmlSchemaSet schema's. |
| Add(String, String) |
Hiermee voegt u het XSD-schema (XML Schema Definition Language) toe aan de URL die is opgegeven aan de XmlSchemaSet. |
| Add(String, XmlReader) |
Hiermee voegt u het XSD-schema (XML Schema Definition Language) toe dat is opgenomen in de XmlReaderXmlSchemaSet. |
Add(XmlSchema)
Voegt de opgegeven XmlSchema toe aan de XmlSchemaSet.
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
Parameters
- schema
- XmlSchema
Het XmlSchema object dat moet worden toegevoegd aan de XmlSchemaSet.
Retouren
Een XmlSchema object als het schema geldig is. Als het schema ongeldig is en er een ValidationEventHandler is opgegeven, null wordt deze geretourneerd en wordt de juiste validatiegebeurtenis gegenereerd. Anders wordt een XmlSchemaException gegooid.
Uitzonderingen
Het schema is ongeldig.
Het XmlSchema object dat als parameter wordt doorgegeven, is null.
Opmerkingen
Als het XmlSchema object al in het XmlSchemaSetobject bestaat, doet de Add methode niets.
De functionaliteit van deze methode is identiek aan die van de Add methode.
Van toepassing op
Add(XmlSchemaSet)
Hiermee worden alle XSD-schema's (XML Schema Definition Language) toegevoegd aan de XmlSchemaSetopgegeven XmlSchemaSet schema's.
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)
Parameters
- schemas
- XmlSchemaSet
Het XmlSchemaSet-object.
Uitzonderingen
Een schema in het XmlSchemaSet is ongeldig.
Het XmlSchemaSet object dat als parameter wordt doorgegeven, is null.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u schema's toevoegt aan een XmlSchemaSetschema en de schema's vervolgens toevoegt XmlSchemaSet aan een nieuwe XmlSchemaSet met behulp van de Add methode.
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);
Opmerkingen
Voordat een schema aan een XmlSchemaSetschema kan worden toegevoegd, moet het vooraf worden verwerkt. Voorverwerking voert de volgende basistaken uit.
Het schema wordt gecontroleerd op structurele geldigheid volgens de regels van het W3C XML-schema, maar het schema is niet volledig gevalideerd.
Verwijzingen naar interne en externe schemaonderdelen worden opgelost. Geïmporteerde of opgenomen schema's die zijn opgehaald, worden ook toegevoegd aan de XmlSchemaSet. Geïmporteerde schema's worden toegevoegd als afzonderlijke XmlSchema objecten en opgenomen schema's maken deel uit van de inbegrepen XmlSchema.
Als de eigenschap van de IsCompiledXmlSchemaSet toe te voegen eigenschap is true, worden alle schema's in de XmlSchemaSet toe te voegen aan de XmlSchemaSet. Als de eigenschap van de IsCompiledXmlSchemaSet toe te voegen eigenschap is false, wordt elk toegevoegd schema vooraf verwerkt voordat deze wordt toegevoegd. Als een van de schema's in de zojuist toegevoegde XmlSchemaSet schema's niet vooraf kan worden verwerkt, worden er geen schema's toegevoegd. In plaats daarvan wordt er een XmlSchemaException gegenereerd. Als gevolg hiervan zijn de volgende twee codevoorbeelden niet gelijkwaardig.
' 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 vorige twee codevoorbeelden zijn niet gelijkwaardig. Als er in het eerste voorbeeld een ongeldig schema bestaat schemaSet1 en IsCompiled de eigenschap is ingesteld op false, worden er geen schema's toegevoegd aan schemaSet. In het tweede voorbeeld kunnen een aantal schema's worden toegevoegd schemaSet voordat er een ongeldig schema wordt aangetroffen en er een uitzondering wordt gegenereerd.
Van toepassing op
Add(String, String)
Hiermee voegt u het XSD-schema (XML Schema Definition Language) toe aan de URL die is opgegeven aan de XmlSchemaSet.
public:
System::Xml::Schema::XmlSchema ^ Add(System::String ^ targetNamespace, System::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
Parameters
- targetNamespace
- String
De schema-eigenschap targetNamespace of null om de targetNamespace opgegeven in het schema te gebruiken.
- schemaUri
- String
De URL die het schema aangeeft dat moet worden geladen.
Retouren
Een XmlSchema object als het schema geldig is. Als het schema ongeldig is en er een ValidationEventHandler is opgegeven, null wordt deze geretourneerd en wordt de juiste validatiegebeurtenis gegenereerd. Anders wordt een XmlSchemaException gegooid.
Uitzonderingen
Het schema is ongeldig.
De URL die als parameter wordt doorgegeven, is null of Empty.
Voorbeelden
In het volgende codevoorbeeld wordt het http://www.contoso.com/books.xsd schema met een doelnaamruimte toegevoegd http://www.contoso.com/books aan de 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");
In het voorbeeld wordt het books.xsd bestand als invoer gebruikt.
<?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>
Opmerkingen
Voordat een schema aan een XmlSchemaSetschema kan worden toegevoegd, moet het vooraf worden verwerkt. Voorverwerking voert de volgende basistaken uit.
Het schema wordt gecontroleerd op structurele geldigheid volgens de regels van het W3C XML-schema, maar het schema is niet volledig gevalideerd.
Verwijzingen naar interne en externe schemaonderdelen worden opgelost. Geïmporteerde of opgenomen schema's die zijn opgehaald, worden ook toegevoegd aan de XmlSchemaSet. Geïmporteerde schema's worden toegevoegd als afzonderlijke XmlSchema objecten en opgenomen schema's maken deel uit van de inbegrepen XmlSchema.
Hier volgen belangrijke opmerkingen bij het gebruik van de Add methode.
Als u een schema toevoegt aan dezelfde XmlSchemaSet doelnaamruimte en schemalocatie-URL als een schema dat al in het XmlSchemaSet schema is opgenomen, wordt het oorspronkelijke schemaobject geretourneerd.
Wanneer een nieuw schema is toegevoegd aan een XmlSchemaSetschema, wordt de IsCompiled eigenschap van het XmlSchemaSet schema ingesteld op
false.Eventuele insluitings- of importelementen in een XML-schema worden omgezet wanneer de Add methode wordt aangeroepen. Het oplossen van insluitings- en importelementen resulteert niet in een schemavalidatiewaarschuwing en als er geen ValidationEventHandler is opgegeven voor het XmlSchemaSet object, wordt deze waarschuwing niet gerapporteerd.
Als een schema met dezelfde doelnaamruimte als een schema dat al in het XmlSchemaSet schema bestaat, wordt toegevoegd aan de XmlSchemaSetschema's, worden beide schema's toegevoegd.
Note
Dit gedrag verschilt van het verouderde XmlSchemaCollection object.
De Add methode van de XmlSchemaSet methode heeft de mogelijkheid om de doelnaamruimte te gebruiken die is gedefinieerd in een schema, in plaats van dat de doelnaamruimte moet worden opgegeven als een parameter wanneer de Add methode wordt aangeroepen.
nullAls u opgeeft in detargetNamespaceparameter van de Add methode, verwijst u naar XmlSchemaSet het gebruik van de doelnaamruimte die in het schema is gedefinieerd, zoals wordt geïllustreerd in het volgende codevoorbeeld.
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);
}
In het bovenstaande null codevoorbeeld wordt opgegeven als de targetNamespace parameter voor de Add methode. Als gevolg hiervan wordt de targetNamespace gedefinieerde in het books.xml-bestand gebruikt. In dit geval is het resultaat van het aanroepen van de Add methode identiek als http://www.contoso.com/books deze als parameter targetNamespace is opgegeven.
- Met W3C XML-schema kunnen schema's zonder doelnaamruimte worden opgenomen in schema's met een doelnaamruimte die is gedefinieerd. In dit geval wordt het schema zonder een doelnaamruimte die is gedefinieerd, gecodeerd in de doelnaamruimte van het inclusief schema. Het opgenomen schema wordt behandeld alsof deze doelnaamruimte is gedefinieerd. Op dezelfde manier kunnen schema's zonder doelnaamruimte worden toegevoegd aan de XmlSchemaSet doelnaamruimte die is opgegeven door de Add methode, zoals wordt geïllustreerd in het volgende voorbeeld.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="A" type="xs:string" />
</xs:schema>
Als het bovenstaande schema wordt toegevoegd aan de XmlSchemaSet doelnaamruimte http://www.contoso.com/new/targetnamespace (zoals weergegeven in de onderstaande code), wordt het behandeld alsof de doelnaamruimte die in het schema is http://www.contoso.com/new/targetnamespacegedeclareerd.
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);
}
Van toepassing op
Add(String, XmlReader)
Hiermee voegt u het XSD-schema (XML Schema Definition Language) toe dat is opgenomen in de 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);
member this.Add : string * System.Xml.XmlReader -> System.Xml.Schema.XmlSchema
Public Function Add (targetNamespace As String, schemaDocument As XmlReader) As XmlSchema
Parameters
- targetNamespace
- String
De schema-eigenschap targetNamespace of null om de targetNamespace opgegeven in het schema te gebruiken.
Retouren
Een XmlSchema object als het schema geldig is. Als het schema ongeldig is en er een ValidationEventHandler is opgegeven, null wordt deze geretourneerd en wordt de juiste validatiegebeurtenis gegenereerd. Anders wordt een XmlSchemaException gegooid.
Uitzonderingen
Het schema is ongeldig.
Het XmlReader object dat als parameter wordt doorgegeven, is null.
Voorbeelden
In het volgende codevoorbeeld wordt het books.xsd-schema in de XmlTextReader met een doelnaamruimte van http://www.contoso.com/books de XmlSchemaSetmap toegevoegd.
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");
Opmerkingen
Voordat een schema aan een XmlSchemaSetschema kan worden toegevoegd, moet het vooraf worden verwerkt. Voorverwerking voert de volgende basistaken uit.
Het schema wordt gecontroleerd op structurele geldigheid volgens de regels van het W3C XML-schema, maar het schema is niet volledig gevalideerd.
Verwijzingen naar interne en externe schemaonderdelen worden opgelost. Geïmporteerde of opgenomen schema's die zijn opgehaald, worden ook toegevoegd aan de XmlSchemaSet. Geïmporteerde schema's worden toegevoegd als afzonderlijke XmlSchema objecten en opgenomen schema's maken deel uit van de inbegrepen XmlSchema.
Hier volgen belangrijke opmerkingen bij het gebruik van de Add methode.
Het ophalen van schema's die zijn geïmporteerd of opgenomen in de schema's in de XmlReader schema's, worden ook toegevoegd aan de XmlSchemaSet.
Als het XmlReader element niet op het hoofdelement staat, wordt er een XmlSchemaException gegenereerd, tenzij het huidige item een element is. Als het huidige item een
xs:schemaelement is, wordt het schemadocument in het XmlSchemaSetdocument gelezen; anders wordt er een XmlSchemaException gegenereerd omdat het schema niet geldig is.Als de XmlReader positie is over een reeks XML-knooppunten, wordt alleen het eerste knooppunt in de reeks toegevoegd.
Als het schema is gemaakt op basis van een XmlReader.Create methode-aanroep, wordt de waarde van de ProcessInlineSchema eigenschap genegeerd, omdat inlineschemaverwerking niet wordt toegepast op W3C XML-schemadocumenten.
De XmlResolver eigenschap van de eigenschap XmlReader wordt niet gebruikt om verwijzingen naar naamruimten of schemalocaties in insluitings- en importelementen op te lossen. In plaats daarvan wordt de XmlResolver eigenschap van de XmlSchemaSet eigenschap gebruikt.
De Add methode van de XmlSchemaSet methode heeft de mogelijkheid om de doelnaamruimte te gebruiken die is gedefinieerd in een schema, in plaats van dat de doelnaamruimte moet worden opgegeven als een parameter wanneer de Add methode wordt aangeroepen.
nullAls u de methode opgeeft of String.Empty aangeeftAdd, verwijst XmlSchemaSet u naar het gebruik van de doelnaamruimte die in het schema is gedefinieerd. Zie de Add methode voor een voorbeeld van dit gedrag.
De resterende functionaliteit van deze methode is identiek aan die van de Add methode.