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

Definición

Agrega el esquema del lenguaje de definición de esquemas XML (XSD) especificado a la clase XmlSchemaSet.Adds the given XML Schema definition language (XSD) schema to the XmlSchemaSet.

Sobrecargas

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

Agrega el XmlSchema predeterminado a XmlSchemaSet.Adds the given XmlSchema to the XmlSchemaSet.

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

Agrega todos los esquemas del lenguaje de definición de esquemas XML (XSD) de la clase XmlSchemaSet especificada a 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)

Agrega el esquema del lenguaje de definición de esquemas XML (XSD) de la dirección URL especificada a 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)

Agrega el esquema del lenguaje de definición de esquemas XML (XSD) incluido en XmlReader a XmlSchemaSet.Adds the XML Schema definition language (XSD) schema contained in the XmlReader to the XmlSchemaSet.

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

Agrega el XmlSchema predeterminado a XmlSchemaSet.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

Parámetros

schema
XmlSchema XmlSchema XmlSchema XmlSchema

Objeto XmlSchema que se va a agregar a la colección XmlSchemaSet.The XmlSchema object to add to the XmlSchemaSet.

Devoluciones

Objeto XmlSchema si el esquema es válido.An XmlSchema object if the schema is valid. Si el esquema no es válido y se especifica ValidationEventHandler, se devolverá el valor null y se iniciará el evento de validación adecuado.If the schema is not valid and a ValidationEventHandler is specified, then null is returned and the appropriate validation event is raised. De lo contrario, se produce una excepción XmlSchemaException.Otherwise, an XmlSchemaException is thrown.

Excepciones

El esquema no es válido.The schema is not valid.

El objeto XmlSchema que se pasa como parámetro es null.The XmlSchema object passed as a parameter is null.

Comentarios

Si el XmlSchema objeto ya existe en el XmlSchemaSet, el Add método no hace nada.If the XmlSchema object already exists in the XmlSchemaSet, the Add method does nothing.

La funcionalidad de este método es idéntica de la Add método.The functionality of this method is identical to that of the Add method.

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

Agrega todos los esquemas del lenguaje de definición de esquemas XML (XSD) de la clase XmlSchemaSet especificada a 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)

Parámetros

Excepciones

Un esquema de XmlSchemaSet no es válido.A schema in the XmlSchemaSet is not valid.

El objeto XmlSchemaSet que se pasa como parámetro es null.The XmlSchemaSet object passed as a parameter is null.

Ejemplos

El siguiente ejemplo de código ilustra agregar esquemas a un XmlSchemaSet, entonces la adición de la XmlSchemaSet a un nuevo XmlSchemaSet utilizando el Add método.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);  

Comentarios

Antes de poder agregar un esquema a un XmlSchemaSet, tiene que ser preprocesarse correctamente.Before a schema can be added to an XmlSchemaSet, it has to be successfully preprocessed. Preprocesamiento realiza las siguientes tareas básicas.Preprocessing performs the following basic tasks.

  1. El esquema se comprueba la validez estructural según las reglas de esquema XML de W3C, pero no se valida totalmente el esquema.The schema is checked for structural validity according to the rules of W3C XML Schema, but the schema is not fully validated.

  2. Se resuelven las referencias a componentes del esquema interno y externo.References to internal and external schema components are resolved. Cualquier esquema importado o incluido que se recupera correctamente también se agrega a la XmlSchemaSet.Any imported or included schemas that are successfully retrieved are also added to the XmlSchemaSet. Los esquemas importados se agregan como independiente XmlSchema objetos y los esquemas incluidos pasan a formar parte de la inclusión de XmlSchema.Imported schemas are added as separate XmlSchema objects, and included schemas are made a part of the including XmlSchema.

Si el IsCompiled propiedad de la XmlSchemaSet agregar es true, todos los esquemas en el XmlSchemaSet para agregar se agregan a la XmlSchemaSet.If the IsCompiled property of the XmlSchemaSet to add is true, all schemas in the XmlSchemaSet to add are added to the XmlSchemaSet. Si el IsCompiled propiedad de la XmlSchemaSet agregar es false, todos los esquemas se preprocesan antes de agregarse.If the IsCompiled property of the XmlSchemaSet to add is false, each schema added is preprocessed before being added. Si ninguno de los esquemas en la recién agregada XmlSchemaSet no se preprocesa, se agregará ningún esquema; en su lugar, un XmlSchemaException se produce.If any of the schemas in the newly added XmlSchemaSet fails to be preprocessed, no schemas are added; instead, an XmlSchemaException is thrown. Como resultado, el siguiente ejemplo de código de dos no son equivalentes.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);  
}  

Los ejemplos de código de dos anteriores no son equivalentes.The previous two code examples are not equivalent. En el primer ejemplo, si existe un esquema no válido en schemaSet1 y su IsCompiled propiedad está establecida en false, no hay esquemas se agregarán al 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. En el segundo ejemplo, se pueden agregar varios esquemas a schemaSet antes de que se encuentra un esquema no válido y se produce una excepción.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)

Agrega el esquema del lenguaje de definición de esquemas XML (XSD) de la dirección URL especificada a 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

Parámetros

targetNamespace
String String String String

Propiedad de esquema targetNamespace o valor null para utilizar el targetNamespace especificado en el esquema.The schema targetNamespace property, or null to use the targetNamespace specified in the schema.

schemaUri
String String String String

Dirección URL que especifica el esquema que se va a cargar.The URL that specifies the schema to load.

Devoluciones

Objeto XmlSchema si el esquema es válido.An XmlSchema object if the schema is valid. Si el esquema no es válido y se especifica ValidationEventHandler, se devolverá el valor null y se iniciará el evento de validación adecuado.If the schema is not valid and a ValidationEventHandler is specified, then null is returned and the appropriate validation event is raised. De lo contrario, se produce una excepción XmlSchemaException.Otherwise, an XmlSchemaException is thrown.

Excepciones

El esquema no es válido.The schema is not valid.

La dirección URL que se pasa como parámetro es null o Empty.The URL passed as a parameter is null or Empty.

Ejemplos

En el ejemplo de código siguiente se agrega el http://www.contoso.com/books.xsd esquema con un espacio de nombres de destino de http://www.contoso.com/books a la 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");  

En el ejemplo se utiliza como entrada el archivo 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>

Comentarios

Antes de poder agregar un esquema a un XmlSchemaSet, tiene que ser preprocesarse correctamente.Before a schema can be added to an XmlSchemaSet, it has to be successfully preprocessed. Preprocesamiento realiza las siguientes tareas básicas.Preprocessing performs the following basic tasks.

  1. El esquema se comprueba la validez estructural según las reglas de esquema XML de W3C, pero no se valida totalmente el esquema.The schema is checked for structural validity according to the rules of W3C XML Schema, but the schema is not fully validated.

  2. Se resuelven las referencias a componentes del esquema interno y externo.References to internal and external schema components are resolved. Cualquier esquema importado o incluido que se recupera correctamente también se agrega a la XmlSchemaSet.Any imported or included schemas that are successfully retrieved are also added to the XmlSchemaSet. Los esquemas importados se agregan como independiente XmlSchema objetos y los esquemas incluidos pasan a formar parte de la inclusión de XmlSchema.Imported schemas are added as separate XmlSchema objects, and included schemas are made a part of the including XmlSchema.

Los siguientes son notas importantes a tener en cuenta cuando se usa el Add método.The following are important notes to consider when using the Add method.

  • Adición de un esquema para el XmlSchemaSet con el mismo espacio de nombres y el esquema de dirección URL de ubicación de destino como un esquema ya incluido dentro de la XmlSchemaSet devolverá el objeto de esquema original.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.

  • Cuando se agrega correctamente un nuevo esquema a un XmlSchemaSet, IsCompiled propiedad de la XmlSchemaSet está establecido en false.When a new schema is successfully added to an XmlSchemaSet, the IsCompiled property of the XmlSchemaSet is set to false.

  • Los elementos de inclusión o importación encontrados en un esquema XML se resuelven cuando la Add se llama al método.Any include or import elements encountered in an XML schema are resolved when the Add method is called. No se puede resolver de inclusión e importación de resultados de los elementos en una advertencia de validación de esquema y si no hay ningún ValidationEventHandler se ha especificado para el XmlSchemaSet objeto, esta advertencia no se notificarán.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.

  • Si un esquema con el mismo espacio de nombres de destino como un esquema que ya existe en el XmlSchemaSet se agrega a la XmlSchemaSet, se agregan dos esquemas.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.

    Nota

    Este comportamiento difiere de la obsoleta XmlSchemaCollection objeto.This behavior differs from the obsolete XmlSchemaCollection object.

  • El Add método de la XmlSchemaSet tiene la capacidad para usar el espacio de nombres de destino definido en un esquema, en lugar de requerir el espacio de nombres de destino se especifica como un parámetro cuando el Add se llama al método.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. Especificar null en el targetNamespace parámetro de la Add método indica a la XmlSchemaSet para usar el espacio de nombres de destino definido en el esquema, como se muestra en el ejemplo de código siguiente.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);  
}  

En el ejemplo de código anterior, null se especifica como el targetNamespace parámetro para el Add método.In the code example above, null is specified as the targetNamespace parameter to the Add method. Como resultado, el targetNamespace definido en el archivo books.xml se utiliza el archivo.As a result, the targetNamespace defined in the books.xml file is used. En este caso, el resultado de llamar a la Add método sería idéntico si http://www.contoso.com/books se hubiera especificado como el targetNamespace parámetro.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.

  • Esquema XML de W3C permite esquemas sin un espacio de nombres de destino que se incluirán en los esquemas con un espacio de nombres de destino definido.W3C XML Schema allows schemas without a target namespace to be included in schemas with a target namespace defined. En este caso, se convierte en el esquema sin un espacio de nombres de destino definido en el espacio de nombres de destino del esquema incluido.In this case, the schema without a target namespace defined is coerced into the target namespace of the including schema. El esquema incluido se trata como si tuviera definido ese espacio de nombres de destino.The included schema is treated as if it had that target namespace defined. De forma similar, los esquemas sin un espacio de nombres de destino se pueden agregar a la XmlSchemaSet y convertido en el espacio de nombres de destino especificada por el Add método, como se muestra en el ejemplo siguiente.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>  

Si se agrega el esquema anterior a la XmlSchemaSet con el espacio de nombres de destino http://www.contoso.com/new/targetnamespace (como se muestra en el código siguiente), se trata como si fuera el espacio de nombres declarado en el esquema 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)

Agrega el esquema del lenguaje de definición de esquemas XML (XSD) incluido en XmlReader a 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

Parámetros

targetNamespace
String String String String

Propiedad de esquema targetNamespace o valor null para utilizar el targetNamespace especificado en el esquema.The schema targetNamespace property, or null to use the targetNamespace specified in the schema.

schemaDocument
XmlReader XmlReader XmlReader XmlReader

Objeto XmlReader.The XmlReader object.

Devoluciones

Objeto XmlSchema si el esquema es válido.An XmlSchema object if the schema is valid. Si el esquema no es válido y se especifica ValidationEventHandler, se devolverá el valor null y se iniciará el evento de validación adecuado.If the schema is not valid and a ValidationEventHandler is specified, then null is returned and the appropriate validation event is raised. De lo contrario, se produce una excepción XmlSchemaException.Otherwise, an XmlSchemaException is thrown.

Excepciones

El esquema no es válido.The schema is not valid.

El objeto XmlReader que se pasa como parámetro es null.The XmlReader object passed as a parameter is null.

Ejemplos

El ejemplo de código siguiente agrega el esquema books.xsd incluido en el XmlTextReader con un espacio de nombres de destino de http://www.contoso.com/books a la 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");  

Comentarios

Antes de poder agregar un esquema a un XmlSchemaSet, tiene que ser preprocesarse correctamente.Before a schema can be added to an XmlSchemaSet, it has to be successfully preprocessed. Preprocesamiento realiza las siguientes tareas básicas.Preprocessing performs the following basic tasks.

  1. El esquema se comprueba la validez estructural según las reglas de esquema XML de W3C, pero no se valida totalmente el esquema.The schema is checked for structural validity according to the rules of W3C XML Schema, but the schema is not fully validated.

  2. Se resuelven las referencias a componentes del esquema interno y externo.References to internal and external schema components are resolved. Cualquier esquema importado o incluido que se recupera correctamente también se agrega a la XmlSchemaSet.Any imported or included schemas that are successfully retrieved are also added to the XmlSchemaSet. Los esquemas importados se agregan como independiente XmlSchema objetos y los esquemas incluidos pasan a formar parte de la inclusión de XmlSchema.Imported schemas are added as separate XmlSchema objects, and included schemas are made a part of the including XmlSchema.

Los siguientes son notas importantes a tener en cuenta cuando se usa el Add método.The following are important notes to consider when using the Add method.

  • Esquemas importada o incluida en los esquemas ha recuperado correctamente la XmlReader también se agregan a la XmlSchemaSet.Successfully retrieved schemas imported or included by the schemas contained in the XmlReader are also added to the XmlSchemaSet.

  • Si el XmlReader no está situado en el elemento raíz, un XmlSchemaException se inicia a menos que el elemento actual es un elemento.If the XmlReader is not positioned on the root element, an XmlSchemaException is thrown unless the current item is an element. Si el elemento actual es un xs:schema elemento, se lee el documento de esquema en el XmlSchemaSet; en caso contrario, un XmlSchemaException se produce porque el esquema no es válido.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.

  • Si el XmlReader se coloca en una secuencia de nodos XML, se agrega solo el primer nodo de la secuencia.If the XmlReader is positioned over a sequence of XML nodes, only the first node in the sequence is added.

  • Si el esquema se creó desde un XmlReader.Create llamada al método, el valor de la ProcessInlineSchema propiedad se omite porque no se aplica un procesamiento de esquema en línea para los documentos de esquema XML de W3C.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.

  • El XmlResolver propiedad de la XmlReader no se utiliza para resolver las referencias a ubicaciones de los espacios de nombres o el esquema de inclusión e importación de elementos.The XmlResolver property of the XmlReader is not used to resolve references to namespaces or schema locations in include and import elements. En su lugar, el XmlResolver propiedad de la XmlSchemaSet se utiliza.Instead, the XmlResolver property of the XmlSchemaSet is used.

  • El Add método de la XmlSchemaSet tiene la capacidad para usar el espacio de nombres de destino definido en un esquema, en lugar de requerir el espacio de nombres de destino se especifica como un parámetro cuando el Add se llama al método.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. Especificar null o String.Empty a la Add método indica a la XmlSchemaSet para usar el espacio de nombres de destino definido en el esquema.Specifying null or String.Empty to the Add method instructs the XmlSchemaSet to use the target namespace defined in the schema. Para obtener un ejemplo de este comportamiento, consulte el Add método.For an example of this behavior, see the Add method.

La funcionalidad restante de este método es idéntica de la Add método.The remaining functionality of this method is identical to that of the Add method.

Se aplica a