Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

XmlSchemaSet.Add Method (String, XmlReader)

Adds the XML Schema definition language (XSD) schema contained in the XmlReader to the XmlSchemaSet.

Namespace:  System.Xml.Schema
Assembly:  System.Xml (in System.Xml.dll)
public XmlSchema Add(
	string targetNamespace,
	XmlReader schemaDocument
)

Parameters

targetNamespace
Type: System.String

The schema targetNamespace property, or null to use the targetNamespace specified in the schema.

schemaDocument
Type: System.Xml.XmlReader

The XmlReader object.

Return Value

Type: System.Xml.Schema.XmlSchema
An XmlSchema object if the schema is valid. If the schema is not valid and a ValidationEventHandler is specified, then null is returned and the appropriate validation event is raised. Otherwise, an XmlSchemaException is thrown.
ExceptionCondition
XmlSchemaException

The schema is not valid.

ArgumentNullException

The XmlReader object passed as a parameter is null.

Before a schema can be added to an XmlSchemaSet, it has to be successfully preprocessed. Preprocessing performs the following basic tasks.

  1. 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. Any imported or included schemas that are successfully retrieved are also added to the XmlSchemaSet. Imported schemas are added as separate XmlSchema objects, and included schemas are made a part of the including XmlSchema.

The following are important notes to consider when using the Add method.

  • Successfully retrieved schemas imported or included by the schemas contained in the XmlReader are also added to the XmlSchemaSet.

  • If the XmlReader is not positioned on the root element, an XmlSchemaException is thrown unless the current item is an element. 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.

  • If the XmlReader is positioned over a sequence of XML nodes, only the first node in the sequence is added.

  • 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.

  • The XmlResolver property of the XmlReader is not used to resolve references to namespaces or schema locations in include and import elements. Instead, the XmlResolver property of the XmlSchemaSet is used.

  • 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. Specifying null or String.Empty to the Add method instructs the XmlSchemaSet to use the target namespace defined in the schema. For an example of this behavior, see the Add method.

The remaining functionality of this method is identical to that of the Add method.

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.

XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add("http://www.contoso.com/books", new XmlTextReader("books.xsd");

.NET Framework

Supported in: 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.