XmlSchemaSet.Add XmlSchemaSet.Add XmlSchemaSet.Add XmlSchemaSet.Add Method

定義

指定された XML スキーマ定義言語 (XSD) スキーマを XmlSchemaSet に追加します。Adds the given XML Schema definition language (XSD) schema to the XmlSchemaSet.

オーバーロード

Add(XmlSchema) Add(XmlSchema) Add(XmlSchema) Add(XmlSchema)

指定された XmlSchemaXmlSchemaSet に追加します。Adds the given XmlSchema to the XmlSchemaSet.

Add(XmlSchemaSet) Add(XmlSchemaSet) Add(XmlSchemaSet) Add(XmlSchemaSet)

指定された XmlSchemaSet 内のすべての XML スキーマ定義言語 (XSD) スキーマを XmlSchemaSet に追加します。Adds all the XML Schema definition language (XSD) schemas in the given XmlSchemaSet to the XmlSchemaSet.

Add(String, String) Add(String, String) Add(String, String) Add(String, String)

指定された URL の XML スキーマ定義言語 (XSD) スキーマを XmlSchemaSet に追加します。Adds the XML Schema definition language (XSD) schema at the URL specified to the XmlSchemaSet.

Add(String, XmlReader) Add(String, XmlReader) Add(String, XmlReader) Add(String, XmlReader)

XmlReader に格納されている XML スキーマ定義言語 (XSD) スキーマを XmlSchemaSet に追加します。Adds the XML Schema definition language (XSD) schema contained in the XmlReader to the XmlSchemaSet.

Add(XmlSchema) Add(XmlSchema) Add(XmlSchema) Add(XmlSchema)

指定された XmlSchemaXmlSchemaSet に追加します。Adds the given XmlSchema to the 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

パラメーター

schema
XmlSchema XmlSchema XmlSchema XmlSchema

XmlSchemaSet に追加する XmlSchema オブジェクト。The XmlSchema object to add to the XmlSchemaSet.

戻り値

スキーマが有効な場合は XmlSchema オブジェクト。An XmlSchema object if the schema is valid. スキーマが無効で ValidationEventHandler が指定されている場合は、null が返され、該当する検証イベントが発生します。If the schema is not valid and a ValidationEventHandler is specified, then null is returned and the appropriate validation event is raised. それ以外の場合は、XmlSchemaException がスローされます。Otherwise, an XmlSchemaException is thrown.

例外

スキーマが有効ではありません。The schema is not valid.

パラメーターとして渡される XmlSchema オブジェクトは null です。The XmlSchema object passed as a parameter is null.

注釈

場合、XmlSchemaオブジェクトは既に、 XmlSchemaSetAddメソッドは何も行いません。If the XmlSchema object already exists in the XmlSchemaSet, the Add method does nothing.

このメソッドの機能のと同じですが、Addメソッド。The functionality of this method is identical to that of the Add method.

Add(XmlSchemaSet) Add(XmlSchemaSet) Add(XmlSchemaSet) Add(XmlSchemaSet)

指定された XmlSchemaSet 内のすべての XML スキーマ定義言語 (XSD) スキーマを XmlSchemaSet に追加します。Adds all the XML Schema definition language (XSD) schemas in the given XmlSchemaSet to the 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)

パラメーター

schemas
XmlSchemaSet XmlSchemaSet XmlSchemaSet XmlSchemaSet

XmlSchemaSet オブジェクト。The XmlSchemaSet object.

例外

XmlSchemaSet のスキーマが有効ではありません。A schema in the XmlSchemaSet is not valid.

パラメーターとして渡される XmlSchemaSet オブジェクトは null です。The XmlSchemaSet object passed as a parameter is null.

次のコード例を追加するスキーマを示しています、XmlSchemaSetを追加し、XmlSchemaSetを新しいXmlSchemaSetを使用して、Addメソッド。The following code example illustrates adding schemas to an XmlSchemaSet, then adding the XmlSchemaSet to a new XmlSchemaSet using the Add method.

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);  

注釈

スキーマに追加できる前に、 XmlSchemaSet、正常に前処理する必要があります。Before a schema can be added to an XmlSchemaSet, it has to be successfully preprocessed. 前処理は、次の基本的なタスクを実行します。Preprocessing performs the following basic tasks.

  1. W3C XML スキーマの規則に従って構造型の有効性がチェック、スキーマがスキーマには完全には検証されません。The schema is checked for structural validity according to the rules of W3C XML Schema, but the schema is not fully validated.

  2. 内部および外部のスキーマ コンポーネントへの参照が解決されます。References to internal and external schema components are resolved. 正常に取得されるすべてのインポートまたはインクルード対象スキーマに追加されます、XmlSchemaSetします。Any imported or included schemas that are successfully retrieved are also added to the XmlSchemaSet. インポートされたスキーマは、個別として追加XmlSchemaオブジェクト、および含まれているスキーマなどの一部となるXmlSchemaします。Imported schemas are added as separate XmlSchema objects, and included schemas are made a part of the including XmlSchema.

場合、IsCompiledのプロパティ、XmlSchemaSetを追加するはtrue、すべてのスキーマ、XmlSchemaSetを追加するに追加されます、XmlSchemaSetします。If the IsCompiled property of the XmlSchemaSet to add is true, all schemas in the XmlSchemaSet to add are added to the XmlSchemaSet. 場合、IsCompiledのプロパティ、XmlSchemaSetを追加するのにはfalse、追加された各スキーマが追加される前に前処理します。If the IsCompiled property of the XmlSchemaSet to add is false, each schema added is preprocessed before being added. 新しく追加したスキーマのいずれかXmlSchemaSet前処理されるが失敗したスキーマは追加されません。 代わりに、、XmlSchemaExceptionがスローされます。If any of the schemas in the newly added XmlSchemaSet fails to be preprocessed, no schemas are added; instead, an XmlSchemaException is thrown. その結果、次の 2 つのコード例は同じではありません。As a result, the following two code example are not equivalent.

' 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);  
}  

前の 2 つのコード例は同じではありません。The previous two code examples are not equivalent. 無効なスキーマが存在する場合、最初の例ではschemaSet1とそのIsCompiledプロパティに設定されてfalseにスキーマが追加されていないschemaSetします。In the first example, if an invalid schema exists in schemaSet1 and its IsCompiled property is set to false, no schemas are added to schemaSet. 2 番目の例では、スキーマの数に追加できるschemaSet前に、無効なスキーマが検出され、例外がスローされます。In the second example, a number of schemas can be added to schemaSet before an invalid schema is encountered and an exception is thrown.

Add(String, String) Add(String, String) Add(String, String) Add(String, String)

指定された URL の XML スキーマ定義言語 (XSD) スキーマを XmlSchemaSet に追加します。Adds the XML Schema definition language (XSD) schema at the URL specified to the 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

パラメーター

targetNamespace
String String String String

スキーマの targetNamespace プロパティ。またはスキーマの指定された targetNamespace を使用する場合は nullThe schema targetNamespace property, or null to use the targetNamespace specified in the schema.

schemaUri
String String String String

読み込むスキーマを指定する URL。The URL that specifies the schema to load.

戻り値

スキーマが有効な場合は XmlSchema オブジェクト。An XmlSchema object if the schema is valid. スキーマが無効で ValidationEventHandler が指定されている場合は、null が返され、該当する検証イベントが発生します。If the schema is not valid and a ValidationEventHandler is specified, then null is returned and the appropriate validation event is raised. それ以外の場合は、XmlSchemaException がスローされます。Otherwise, an XmlSchemaException is thrown.

例外

スキーマが有効ではありません。The schema is not valid.

パラメーターとして渡された URL が null または Empty です。The URL passed as a parameter is null or Empty.

次のコード例を追加、http://www.contoso.com/books.xsdスキーマのターゲット名前空間を持つhttp://www.contoso.com/booksをXmlSchemaSetします。The following code example adds the http://www.contoso.com/books.xsd schema with a target namespace of http://www.contoso.com/books to the 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");  

この例は、books.xsd ファイルを入力として使用します。The example uses the books.xsd file as input.

<?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>

注釈

スキーマに追加できる前に、 XmlSchemaSet、正常に前処理する必要があります。Before a schema can be added to an XmlSchemaSet, it has to be successfully preprocessed. 前処理は、次の基本的なタスクを実行します。Preprocessing performs the following basic tasks.

  1. W3C XML スキーマの規則に従って構造型の有効性がチェック、スキーマがスキーマには完全には検証されません。The schema is checked for structural validity according to the rules of W3C XML Schema, but the schema is not fully validated.

  2. 内部および外部のスキーマ コンポーネントへの参照が解決されます。References to internal and external schema components are resolved. 正常に取得されるすべてのインポートまたはインクルード対象スキーマに追加されます、XmlSchemaSetします。Any imported or included schemas that are successfully retrieved are also added to the XmlSchemaSet. インポートされたスキーマは、個別として追加XmlSchemaオブジェクト、および含まれているスキーマなどの一部となるXmlSchemaします。Imported schemas are added as separate XmlSchema objects, and included schemas are made a part of the including XmlSchema.

使用する場合に考慮すべき重要な注意事項を次に、Addメソッド。The following are important notes to consider when using the Add method.

  • スキーマの追加、XmlSchemaSet内に既に含まれているスキーマと名前空間とスキーマの場所の URL をターゲットと同じ、XmlSchemaSetは元のスキーマ オブジェクトを返します。Adding a schema to the XmlSchemaSet with the same target namespace and schema location URL as a schema already contained within the XmlSchemaSet will return the original schema object.

  • 新しいスキーマが正常に追加されたときに、 XmlSchemaSetIsCompiledのプロパティ、XmlSchemaSetに設定されているfalseします。When a new schema is successfully added to an XmlSchemaSet, the IsCompiled property of the XmlSchemaSet is set to false.

  • XML スキーマで発生したすべてのインクルードまたはインポート要素が解決されるときに、Addメソッドが呼び出されます。Any include or import elements encountered in an XML schema are resolved when the Add method is called. エラーを解決するのを含めるし、インポート要素にスキーマ検証警告が表示されていない場合ValidationEventHandlerが指定されている、XmlSchemaSetオブジェクトは、この警告は報告されません。Failure to resolve include and import elements results in a schema validation warning and if no ValidationEventHandler has been specified for the XmlSchemaSet object, these warning will not be reported.

  • 既に存在するスキーマと同じターゲット名前空間を持つスキーマ、XmlSchemaSetに追加されます、 XmlSchemaSet、両方のスキーマが追加されます。If a schema with the same target namespace as a schema that already exists in the XmlSchemaSet is added to the XmlSchemaSet, both schemas are added.

    注意

    この動作は廃止されたXmlSchemaCollectionオブジェクト。This behavior differs from the obsolete XmlSchemaCollection object.

  • Addのメソッド、XmlSchemaSetをパラメーターとして指定するターゲットの名前空間を必要とするのではなく、スキーマで定義されているターゲットの名前空間を使用することのできるときに、Addメソッドが呼び出されます。The Add method of the XmlSchemaSet has the ability to use the target namespace defined in a schema, rather than requiring the target namespace be specified as a parameter when the Add method is called. 指定するnullで、targetNamespaceのパラメーター、Addメソッドに指示、XmlSchemaSet次のコード例に示すように、スキーマで定義されているターゲットの名前空間を使用します。Specifying null in the targetNamespace parameter of the Add method instructs the XmlSchemaSet to use the target namespace defined in the schema, as illustrated in the following code example.

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);  
}  

上記のコード例でnullとして指定されて、targetNamespaceパラメーターをAddメソッド。In the code example above, null is specified as the targetNamespace parameter to the Add method. 結果として、targetNamespace定義で、books.xml ファイルを使用します。As a result, the targetNamespace defined in the books.xml file is used. この場合、呼び出しの結果、Addメソッドは同一になる場合http://www.contoso.com/booksとして指定されている、targetNamespaceパラメーター。In this case, the result of calling the Add method would be identical if http://www.contoso.com/books had been specified as the targetNamespace parameter.

  • W3C XML スキーマでは、ターゲット名前空間が定義されているスキーマに含まれるターゲット名前空間のないスキーマを使用します。W3C XML Schema allows schemas without a target namespace to be included in schemas with a target namespace defined. この場合は、インクルードするスキーマのターゲット名前空間に定義されているターゲット名前空間のないスキーマが強制変換されます。In this case, the schema without a target namespace defined is coerced into the target namespace of the including schema. インクルードされるスキーマは、そのターゲット名前空間が定義されている必要があるかのように扱われます。The included schema is treated as if it had that target namespace defined. 同様に、ターゲット名前空間のないスキーマを追加できる、XmlSchemaSetで指定されたターゲット名前空間に強制して、Addメソッドは、次の例に示すようにします。Similarly, schemas without a target namespace can be added to the XmlSchemaSet and coerced into the target namespace specified by the Add method, as illustrated in the following example.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">  
    <xs:element name="A" type="xs:string" />  
</xs:schema>  

上記のスキーマに追加する場合、XmlSchemaSetターゲット名前空間を持つhttp://www.contoso.com/new/targetnamespace(示すように次のコードで)、そのとして扱われます、スキーマで宣言されたターゲットの名前空間がhttp://www.contoso.com/new/targetnamespaceします。If the schema above is added to the XmlSchemaSet with the target namespace http://www.contoso.com/new/targetnamespace (as shown in the code below), it is treated as if the target namespace declared in the schema was 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);  
}  

Add(String, XmlReader) Add(String, XmlReader) Add(String, XmlReader) Add(String, XmlReader)

XmlReader に格納されている XML スキーマ定義言語 (XSD) スキーマを XmlSchemaSet に追加します。Adds the XML Schema definition language (XSD) schema contained in the XmlReader to the 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);
member this.Add : string * System.Xml.XmlReader -> System.Xml.Schema.XmlSchema
Public Function Add (targetNamespace As String, schemaDocument As XmlReader) As XmlSchema

パラメーター

targetNamespace
String String String String

スキーマの targetNamespace プロパティ。またはスキーマの指定された targetNamespace を使用する場合は nullThe schema targetNamespace property, or null to use the targetNamespace specified in the schema.

schemaDocument
XmlReader XmlReader XmlReader XmlReader

XmlReader オブジェクト。The XmlReader object.

戻り値

スキーマが有効な場合は XmlSchema オブジェクト。An XmlSchema object if the schema is valid. スキーマが無効で ValidationEventHandler が指定されている場合は、null が返され、該当する検証イベントが発生します。If the schema is not valid and a ValidationEventHandler is specified, then null is returned and the appropriate validation event is raised. それ以外の場合は、XmlSchemaException がスローされます。Otherwise, an XmlSchemaException is thrown.

例外

スキーマが有効ではありません。The schema is not valid.

パラメーターとして渡される XmlReader オブジェクトは null です。The XmlReader object passed as a parameter is null.

次のコード例に含まれる books.xsd スキーマの追加、XmlTextReaderのターゲット名前空間を持つhttp://www.contoso.com/booksをXmlSchemaSetします。The following code example adds the books.xsd schema contained in the XmlTextReader with a target namespace of http://www.contoso.com/books to the 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");  

注釈

スキーマに追加できる前に、 XmlSchemaSet、正常に前処理する必要があります。Before a schema can be added to an XmlSchemaSet, it has to be successfully preprocessed. 前処理は、次の基本的なタスクを実行します。Preprocessing performs the following basic tasks.

  1. W3C XML スキーマの規則に従って構造型の有効性がチェック、スキーマがスキーマには完全には検証されません。The schema is checked for structural validity according to the rules of W3C XML Schema, but the schema is not fully validated.

  2. 内部および外部のスキーマ コンポーネントへの参照が解決されます。References to internal and external schema components are resolved. 正常に取得されるすべてのインポートまたはインクルード対象スキーマに追加されます、XmlSchemaSetします。Any imported or included schemas that are successfully retrieved are also added to the XmlSchemaSet. インポートされたスキーマは、個別として追加XmlSchemaオブジェクト、および含まれているスキーマなどの一部となるXmlSchemaします。Imported schemas are added as separate XmlSchema objects, and included schemas are made a part of the including XmlSchema.

使用する場合に考慮すべき重要な注意事項を次に、Addメソッド。The following are important notes to consider when using the Add method.

  • 正常に取得されたスキーマに含まれるスキーマによってインポートまたはインクルード、XmlReaderにも追加されて、XmlSchemaSetします。Successfully retrieved schemas imported or included by the schemas contained in the XmlReader are also added to the XmlSchemaSet.

  • 場合、 XmlReader 、ルート要素に配置されていない、XmlSchemaException現在の項目が要素でない限りがスローされます。If the XmlReader is not positioned on the root element, an XmlSchemaException is thrown unless the current item is an element. 現在の項目がある場合、xs:schemaスキーマ ドキュメントは、要素に読み込ま、 XmlSchemaSet、それ以外のXmlSchemaExceptionスキーマが有効でないためがスローされます。If the current item is an xs:schema element, the schema document is read into the XmlSchemaSet; otherwise, an XmlSchemaException is thrown because the schema is not valid.

  • 場合、XmlReaderが配置されている XML ノードのシーケンスのシーケンスの最初のノードのみが追加されます。If the XmlReader is positioned over a sequence of XML nodes, only the first node in the sequence is added.

  • スキーマが作成された場合、XmlReader.Createの値は、メソッドの呼び出し、 ProcessInlineSchema W3C XML スキーマ ドキュメントのインライン スキーマの処理が適用されていないため、プロパティは無視されます。If the schema was created from a XmlReader.Create method call, the value of the ProcessInlineSchema property is ignored, because inline schema processing is not applied for W3C XML Schema documents.

  • XmlResolverのプロパティ、XmlReaderを含めるし、要素をインポートする名前空間またはスキーマの場所への参照を解決するのには使用されません。The XmlResolver property of the XmlReader is not used to resolve references to namespaces or schema locations in include and import elements. 代わりに、XmlResolverのプロパティ、XmlSchemaSet使用されます。Instead, the XmlResolver property of the XmlSchemaSet is used.

  • Addのメソッド、XmlSchemaSetをパラメーターとして指定するターゲットの名前空間を必要とするのではなく、スキーマで定義されているターゲットの名前空間を使用することのできるときに、Addメソッドが呼び出されます。The Add method of the XmlSchemaSet has the ability to use the target namespace defined in a schema, rather than requiring the target namespace be specified as a parameter when the Add method is called. 指定するnullまたはString.EmptyAddメソッドに指示、XmlSchemaSetスキーマで定義されているターゲット名前空間を使用します。Specifying null or String.Empty to the Add method instructs the XmlSchemaSet to use the target namespace defined in the schema. この動作の例は、次を参照してください。、Addメソッド。For an example of this behavior, see the Add method.

このメソッドの他の機能のと同じですが、Addメソッド。The remaining functionality of this method is identical to that of the Add method.

適用対象