XmlSchemaSet.Add Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Fügt das angegebene XSD-Schema (XML Schema Definition Language) dem XmlSchemaSet.
Überlädt
| Name | Beschreibung |
|---|---|
| Add(XmlSchema) |
Fügt die angegebene Dem XmlSchemaSet.XmlSchema |
| Add(XmlSchemaSet) |
Fügt alle XSD-Schemaschemas (XML Schema Definition Language) im angegebenen XmlSchemaSet Schema hinzu.XmlSchemaSet |
| Add(String, String) |
Fügt das XML-Schema der Schemadefinitionssprache (XSD) an der URL hinzu, die der XmlSchemaSetURL angegeben ist. |
| Add(String, XmlReader) |
Fügt das im XML-Schema enthaltene Schemadefinitionssprache (XSD)-Schema hinzu, das in der XmlReaderXmlSchemaSetDatei enthalten ist. |
Add(XmlSchema)
- Quelle:
- XmlSchemaSet.cs
- Quelle:
- XmlSchemaSet.cs
- Quelle:
- XmlSchemaSet.cs
- Quelle:
- XmlSchemaSet.cs
- Quelle:
- XmlSchemaSet.cs
Fügt die angegebene Dem XmlSchemaSet.XmlSchema
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
Parameter
- schema
- XmlSchema
Das XmlSchema Objekt, das dem XmlSchemaSetObjekt hinzugefügt werden soll.
Gibt zurück
Ein XmlSchema Objekt, wenn das Schema gültig ist. Wenn das Schema ungültig ist und ein ValidationEventHandler Wert angegeben wird, null wird das entsprechende Überprüfungsereignis zurückgegeben, und das entsprechende Überprüfungsereignis wird ausgelöst. Andernfalls wird eine XmlSchemaException ausgelöst.
Ausnahmen
Das Schema ist ungültig.
Das XmlSchema als Parameter übergebene Objekt ist null.
Hinweise
Wenn das XmlSchema Objekt bereits in der XmlSchemaSetMethode vorhanden ist, führt die Add Methode nichts aus.
Die Funktionalität dieser Methode ist identisch mit der Add der Methode.
Gilt für:
Add(XmlSchemaSet)
- Quelle:
- XmlSchemaSet.cs
- Quelle:
- XmlSchemaSet.cs
- Quelle:
- XmlSchemaSet.cs
- Quelle:
- XmlSchemaSet.cs
- Quelle:
- XmlSchemaSet.cs
Fügt alle XSD-Schemaschemas (XML Schema Definition Language) im angegebenen XmlSchemaSet Schema hinzu.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)
Parameter
- schemas
- XmlSchemaSet
Das XmlSchemaSet-Objekt.
Ausnahmen
Ein Schema in der Datei XmlSchemaSet ist ungültig.
Das XmlSchemaSet als Parameter übergebene Objekt ist null.
Beispiele
Das folgende Codebeispiel veranschaulicht das Hinzufügen von Schemas zu einem XmlSchemaSetund anschließendes Hinzufügen des XmlSchemaSet Schemas zu einer neuen XmlSchemaSet Mithilfe der 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);
Hinweise
Bevor ein Schema zu einem XmlSchemaSetSchema hinzugefügt werden kann, muss es erfolgreich vorverarbeitet werden. Die Vorverarbeitung führt die folgenden grundlegenden Aufgaben aus.
Das Schema wird nach den Regeln des W3C-XML-Schemas auf strukturelle Gültigkeit überprüft, aber das Schema wird nicht vollständig überprüft.
Verweise auf interne und externe Schemakomponenten werden aufgelöst. Alle importierten oder enthaltenen Schemas, die erfolgreich abgerufen werden, werden ebenfalls dem XmlSchemaSethinzugefügt. Importierte Schemas werden als separate XmlSchema Objekte hinzugefügt, und enthaltene Schemas werden als Teil des einschließenden XmlSchemaObjekts erstellt.
Wenn die IsCompiled Eigenschaft des XmlSchemaSet hinzuzufügenden Objekts lautet true, werden alle Schemas im XmlSchemaSet hinzuzufügenden Objekt dem XmlSchemaSetHinzugefügten hinzugefügt. Wenn die IsCompiled Eigenschaft des XmlSchemaSet hinzuzufügenden Objekts lautet false, wird jedes hinzugefügte Schema vor dem Hinzufügen vorverarbeitet. Wenn eines der Schemas in der neu hinzugefügten XmlSchemaSet Datei nicht vorverarbeitet werden kann, werden keine Schemas hinzugefügt. Stattdessen wird ein XmlSchemaException Fehler ausgelöst. Daher sind die folgenden beiden Codebeispiele nicht gleichwertig.
' 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);
}
Die beiden vorherigen Codebeispiele sind nicht gleichwertig. Wenn im ersten Beispiel ein ungültiges Schema vorhanden schemaSet1 ist und seine IsCompiled Eigenschaft auf festgelegt falseist, werden keine Schemas hinzugefügt schemaSet. Im zweiten Beispiel können eine Reihe von Schemas hinzugefügt schemaSet werden, bevor ein ungültiges Schema gefunden wird und eine Ausnahme ausgelöst wird.
Gilt für:
Add(String, String)
- Quelle:
- XmlSchemaSet.cs
- Quelle:
- XmlSchemaSet.cs
- Quelle:
- XmlSchemaSet.cs
- Quelle:
- XmlSchemaSet.cs
- Quelle:
- XmlSchemaSet.cs
Fügt das XML-Schema der Schemadefinitionssprache (XSD) an der URL hinzu, die der XmlSchemaSetURL angegeben ist.
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
Parameter
- targetNamespace
- String
Die Schemaeigenschaft targetNamespace oder null die im Schema angegebene Eigenschaft zu verwenden targetNamespace .
- schemaUri
- String
Die URL, die das zu ladende Schema angibt.
Gibt zurück
Ein XmlSchema Objekt, wenn das Schema gültig ist. Wenn das Schema ungültig ist und ein ValidationEventHandler Wert angegeben wird, null wird das entsprechende Überprüfungsereignis zurückgegeben, und das entsprechende Überprüfungsereignis wird ausgelöst. Andernfalls wird eine XmlSchemaException ausgelöst.
Ausnahmen
Das Schema ist ungültig.
Die als Parameter übergebene URL ist null oder Empty.
Beispiele
Im folgenden Codebeispiel wird das http://www.contoso.com/books.xsd Schema mit einem Zielnamespace http://www.contoso.com/books der 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");
Im Beispiel wird die books.xsd Datei als Eingabe verwendet.
<?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>
Hinweise
Bevor ein Schema zu einem XmlSchemaSetSchema hinzugefügt werden kann, muss es erfolgreich vorverarbeitet werden. Die Vorverarbeitung führt die folgenden grundlegenden Aufgaben aus.
Das Schema wird nach den Regeln des W3C-XML-Schemas auf strukturelle Gültigkeit überprüft, aber das Schema wird nicht vollständig überprüft.
Verweise auf interne und externe Schemakomponenten werden aufgelöst. Alle importierten oder enthaltenen Schemas, die erfolgreich abgerufen werden, werden ebenfalls dem XmlSchemaSethinzugefügt. Importierte Schemas werden als separate XmlSchema Objekte hinzugefügt, und enthaltene Schemas werden als Teil des einschließenden XmlSchemaObjekts erstellt.
Im Folgenden finden Sie wichtige Hinweise, die Sie bei der Verwendung der Add Methode berücksichtigen sollten.
Wenn Sie der XmlSchemaSet gleichen Zielnamespace- und Schemaspeicherort-URL ein Schema hinzufügen, das bereits im XmlSchemaSet Schema enthalten ist, wird das ursprüngliche Schemaobjekt zurückgegeben.
Wenn ein neues Schema erfolgreich zu einer XmlSchemaSetHinzugefügt wird, wird die IsCompiled Eigenschaft des XmlSchemaSet Objekts auf
false.Alle in einem XML-Schema aufgetretenen Include- oder Importelemente werden aufgelöst, wenn die Add Methode aufgerufen wird. Fehler beim Beheben von Einschluss- und Importelementen führt zu einer Schemaüberprüfungswarnung, und wenn keines ValidationEventHandler für das XmlSchemaSet Objekt angegeben wurde, wird diese Warnung nicht gemeldet.
Wenn ein Schema mit demselben Zielnamespace wie ein Schema, das bereits in der XmlSchemaSetXmlSchemaSetDatei vorhanden ist, dem hinzugefügt wird, werden beide Schemas hinzugefügt.
Hinweis
Dieses Verhalten unterscheidet sich vom veralteten XmlSchemaCollection Objekt.
Die Add Methode der XmlSchemaSet Methode hat die Möglichkeit, den in einem Schema definierten Zielnamespace zu verwenden, anstatt den Zielnamespace als Parameter anzugeben, wenn die Add Methode aufgerufen wird. Die Angabe
nullimtargetNamespaceParameter der Add Methode weist die XmlSchemaSet Verwendung des im Schema definierten Zielnamespaces an, wie im folgenden Codebeispiel veranschaulicht.
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);
}
Im obigen null Codebeispiel wird als targetNamespace Parameter für die Add Methode angegeben. Daher wird die targetNamespace in der books.xml Datei definierte Datei verwendet. In diesem Fall wäre das Ergebnis des Aufrufs der Add Methode identisch, wenn http://www.contoso.com/books sie als targetNamespace Parameter angegeben wurde.
- Das W3C-XML-Schema ermöglicht Schemas, ohne dass ein Zielnamespace in Schemas mit einem definierten Zielnamespace eingeschlossen werden kann. In diesem Fall wird das Schema ohne einen definierten Zielnamespace in den Zielnamespace des einschließlich Schemas umgewandelt. Das enthaltene Schema wird so behandelt, als hätte er diesen Zielnamespace definiert. Ebenso können Schemas ohne Zielnamespace dem XmlSchemaSet durch die Methode angegebenen Zielnamespace hinzugefügt und in den durch die Add Methode angegebenen Zielnamespace umgewandelt werden, wie im folgenden Beispiel veranschaulicht.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="A" type="xs:string" />
</xs:schema>
Wenn das obige Schema dem XmlSchemaSet Mit dem Zielnamespace hinzugefügt wird (wie im folgenden Code dargestellt), wird es so behandelt, als ob der im Schema http://www.contoso.com/new/targetnamespacedeklarierte Zielnamespace http://www.contoso.com/new/targetnamespace lautete.
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);
}
Gilt für:
Add(String, XmlReader)
- Quelle:
- XmlSchemaSet.cs
- Quelle:
- XmlSchemaSet.cs
- Quelle:
- XmlSchemaSet.cs
- Quelle:
- XmlSchemaSet.cs
- Quelle:
- XmlSchemaSet.cs
Fügt das im XML-Schema enthaltene Schemadefinitionssprache (XSD)-Schema hinzu, das in der XmlReaderXmlSchemaSetDatei enthalten ist.
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
Parameter
- targetNamespace
- String
Die Schemaeigenschaft targetNamespace oder null die im Schema angegebene Eigenschaft zu verwenden targetNamespace .
Gibt zurück
Ein XmlSchema Objekt, wenn das Schema gültig ist. Wenn das Schema ungültig ist und ein ValidationEventHandler Wert angegeben wird, null wird das entsprechende Überprüfungsereignis zurückgegeben, und das entsprechende Überprüfungsereignis wird ausgelöst. Andernfalls wird eine XmlSchemaException ausgelöst.
Ausnahmen
Das Schema ist ungültig.
Das XmlReader als Parameter übergebene Objekt ist null.
Beispiele
Im folgenden Codebeispiel wird das "books.xsd"-Schema hinzugefügt, das XmlTextReader im mit einem Zielnamespace enthalten http://www.contoso.com/books ist.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");
Hinweise
Bevor ein Schema zu einem XmlSchemaSetSchema hinzugefügt werden kann, muss es erfolgreich vorverarbeitet werden. Die Vorverarbeitung führt die folgenden grundlegenden Aufgaben aus.
Das Schema wird nach den Regeln des W3C-XML-Schemas auf strukturelle Gültigkeit überprüft, aber das Schema wird nicht vollständig überprüft.
Verweise auf interne und externe Schemakomponenten werden aufgelöst. Alle importierten oder enthaltenen Schemas, die erfolgreich abgerufen werden, werden ebenfalls dem XmlSchemaSethinzugefügt. Importierte Schemas werden als separate XmlSchema Objekte hinzugefügt, und enthaltene Schemas werden als Teil des einschließenden XmlSchemaObjekts erstellt.
Im Folgenden finden Sie wichtige Hinweise, die Sie bei der Verwendung der Add Methode berücksichtigen sollten.
Erfolgreich abgerufene Schemas, die von den in der XmlReader Datei enthaltenen Schemas importiert oder eingeschlossen wurden, werden ebenfalls dem XmlSchemaSethinzugefügt.
Wenn das XmlReader Element nicht im Stammelement positioniert ist, wird ein XmlSchemaException Element ausgelöst, es sei denn, das aktuelle Element ist ein Element. Wenn es sich bei dem aktuellen Element um ein
xs:schemaElement handelt, wird das Schemadokument in das XmlSchemaSetSchema gelesen. Andernfalls wird ein XmlSchemaException Fehler ausgelöst, da das Schema ungültig ist.Wenn die XmlReader Position über einer Sequenz von XML-Knoten erfolgt, wird nur der erste Knoten in der Sequenz hinzugefügt.
Wenn das Schema aus einem XmlReader.Create Methodenaufruf erstellt wurde, wird der Wert der ProcessInlineSchema Eigenschaft ignoriert, da die Inlineschemaverarbeitung nicht für W3C-XML-Schemadokumente angewendet wird.
Die XmlResolver Eigenschaft der XmlReader Eigenschaft wird nicht verwendet, um Verweise auf Namespaces oder Schemaspeicherorte in include- und import-Elemente aufzulösen. Stattdessen wird die XmlResolver Eigenschaft der XmlSchemaSet Eigenschaft verwendet.
Die Add Methode der XmlSchemaSet Methode hat die Möglichkeit, den in einem Schema definierten Zielnamespace zu verwenden, anstatt den Zielnamespace als Parameter anzugeben, wenn die Add Methode aufgerufen wird. Die Angabe
nulloder String.Empty die Add Methode weist die XmlSchemaSet Verwendung des im Schema definierten Zielnamespaces an. Ein Beispiel für dieses Verhalten finden Sie in der Add Methode.
Die verbleibende Funktionalität dieser Methode ist identisch mit der Add der Methode.