XmlSchemaSet.Add Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Agrega el esquema especificado del lenguaje de definición de esquema XML (XSD) a .XmlSchemaSet
Sobrecargas
| Nombre | Description |
|---|---|
| Add(XmlSchema) |
Agrega el objeto especificado XmlSchema a .XmlSchemaSet |
| Add(XmlSchemaSet) |
Agrega todos los esquemas del lenguaje de definición de esquemas XML (XSD) en el especificado XmlSchemaSet a XmlSchemaSet. |
| Add(String, String) |
Agrega el esquema del lenguaje de definición de esquema XML (XSD) en la dirección URL especificada a XmlSchemaSet. |
| Add(String, XmlReader) |
Agrega el esquema del lenguaje de definición de esquema XML (XSD) incluido en XmlReader a .XmlSchemaSet |
Add(XmlSchema)
- Source:
- XmlSchemaSet.cs
- Source:
- XmlSchemaSet.cs
- Source:
- XmlSchemaSet.cs
- Source:
- XmlSchemaSet.cs
- Source:
- XmlSchemaSet.cs
Agrega el objeto especificado XmlSchema a .XmlSchemaSet
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
Parámetros
- schema
- XmlSchema
Objeto XmlSchema que se va a agregar a .XmlSchemaSet
Devoluciones
Objeto XmlSchema si el esquema es válido. Si el esquema no es válido y se especifica , ValidationEventHandlernull se devuelve y se genera el evento de validación adecuado. De lo contrario, se produce una excepción XmlSchemaException.
Excepciones
El esquema no es válido.
El XmlSchema objeto pasado como parámetro es null.
Comentarios
Si el XmlSchema objeto ya existe en XmlSchemaSet, el Add método no hace nada.
La funcionalidad de este método es idéntica a la Add del método .
Se aplica a
Add(XmlSchemaSet)
- Source:
- XmlSchemaSet.cs
- Source:
- XmlSchemaSet.cs
- Source:
- XmlSchemaSet.cs
- Source:
- XmlSchemaSet.cs
- Source:
- XmlSchemaSet.cs
Agrega todos los esquemas del lenguaje de definición de esquemas XML (XSD) en el especificado XmlSchemaSet a 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
- schemas
- XmlSchemaSet
Objeto XmlSchemaSet.
Excepciones
Un esquema de no XmlSchemaSet es válido.
El XmlSchemaSet objeto pasado como parámetro es null.
Ejemplos
En el ejemplo de código siguiente se muestra cómo agregar esquemas a y XmlSchemaSet, a continuación, agregar a XmlSchemaSet un nuevo XmlSchemaSet mediante el Add método .
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 que se pueda agregar un esquema a , XmlSchemaSetdebe preprocesarse correctamente. El preprocesamiento realiza las siguientes tareas básicas.
El esquema se comprueba si hay validez estructural según las reglas del esquema XML de W3C, pero el esquema no está totalmente validado.
Se resuelven las referencias a los componentes de esquema interno y externo. Los esquemas importados o incluidos que se recuperan correctamente también se agregan a .XmlSchemaSet Los esquemas importados se agregan como objetos independientes XmlSchema y los esquemas incluidos se convierten en parte de , incluido XmlSchema.
Si la IsCompiled propiedad de que XmlSchemaSet se va a agregar es true, todos los esquemas del XmlSchemaSet objeto que se van a agregar se agregan a .XmlSchemaSet Si la IsCompiled propiedad de que XmlSchemaSet se va a agregar es false, cada esquema agregado se preprocesa antes de agregarse. Si alguno de los esquemas del recién agregado XmlSchemaSet no se puede preprocesar, no se agrega ningún esquema; en su lugar, se produce una XmlSchemaException excepción . Como resultado, el siguiente ejemplo de código no es equivalente.
' 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 dos ejemplos de código anteriores no son equivalentes. En el primer ejemplo, si existe un esquema no válido en y su IsCompiled propiedad se establece falseen schemaSet1 , no se agregan esquemas a schemaSet. En el segundo ejemplo, se puede agregar un número de esquemas a schemaSet antes de que se encuentre un esquema no válido y se produzca una excepción.
Se aplica a
Add(String, String)
- Source:
- XmlSchemaSet.cs
- Source:
- XmlSchemaSet.cs
- Source:
- XmlSchemaSet.cs
- Source:
- XmlSchemaSet.cs
- Source:
- XmlSchemaSet.cs
Agrega el esquema del lenguaje de definición de esquema XML (XSD) en la dirección URL especificada a XmlSchemaSet.
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
Parámetros
- targetNamespace
- String
Propiedad de esquema targetNamespace o null para usar el targetNamespace especificado en el esquema.
- schemaUri
- String
Dirección URL que especifica el esquema que se va a cargar.
Devoluciones
Objeto XmlSchema si el esquema es válido. Si el esquema no es válido y se especifica , ValidationEventHandlernull se devuelve y se genera el evento de validación adecuado. De lo contrario, se produce una excepción XmlSchemaException.
Excepciones
El esquema no es válido.
La dirección URL pasada como parámetro es null o 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 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 usa el books.xsd archivo como entrada.
<?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 que se pueda agregar un esquema a , XmlSchemaSetdebe preprocesarse correctamente. El preprocesamiento realiza las siguientes tareas básicas.
El esquema se comprueba si hay validez estructural según las reglas del esquema XML de W3C, pero el esquema no está totalmente validado.
Se resuelven las referencias a los componentes de esquema interno y externo. Los esquemas importados o incluidos que se recuperan correctamente también se agregan a .XmlSchemaSet Los esquemas importados se agregan como objetos independientes XmlSchema y los esquemas incluidos se convierten en parte de , incluido XmlSchema.
A continuación se muestran notas importantes que se deben tener en cuenta al usar el Add método .
La adición de un esquema al XmlSchemaSet con el mismo espacio de nombres de destino y la dirección URL de ubicación del esquema que un esquema ya incluido en XmlSchemaSet devolverá el objeto de esquema original.
Cuando se agrega correctamente un nuevo esquema a , XmlSchemaSetla propiedad de XmlSchemaSet se establece en
falseIsCompiled .Los elementos de inclusión o importación encontrados en un esquema XML se resuelven cuando se llama al Add método . Si no se resuelven los elementos de inclusión e importación, se genera una advertencia de validación de esquema y, si no se ha especificado para ValidationEventHandler el XmlSchemaSet objeto, no se notificará esta advertencia.
Si se agrega XmlSchemaSetun esquema con el mismo espacio de nombres de destino que un esquema que ya existe en , XmlSchemaSet se agregan ambos esquemas.
Nota:
Este comportamiento difiere del objeto obsoleto XmlSchemaCollection .
El Add método de tiene la capacidad de XmlSchemaSet usar el espacio de nombres de destino definido en un esquema, en lugar de requerir que el espacio de nombres de destino se especifique como un parámetro cuando se llama al Add método . Al especificar
nullen eltargetNamespaceparámetro del Add método se indica XmlSchemaSet al usuario que use el espacio de nombres de destino definido en el esquema, como se muestra en el ejemplo de código siguiente.
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 parámetro targetNamespace para el Add método . Como resultado, se usa el targetNamespace elemento definido en el archivo books.xml. En este caso, el resultado de llamar al Add método sería idéntico si http://www.contoso.com/books se hubiera especificado como parámetro targetNamespace .
- El esquema XML W3C permite incluir esquemas sin un espacio de nombres de destino en esquemas con un espacio de nombres de destino definido. En este caso, el esquema sin un espacio de nombres de destino definido se convierte en el espacio de nombres de destino del esquema incluido. El esquema incluido se trata como si tuviera definido ese espacio de nombres de destino. Del mismo modo, los esquemas sin un espacio de nombres de destino se pueden agregar al XmlSchemaSet espacio de nombres de destino especificado por el Add método , como se muestra en el ejemplo siguiente.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="A" type="xs:string" />
</xs:schema>
Si el esquema anterior se agrega al XmlSchemaSet con el espacio de nombres http://www.contoso.com/new/targetnamespace de destino (como se muestra en el código siguiente), se trata como si el espacio de nombres de destino declarado en el esquema fuera 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);
}
Se aplica a
Add(String, XmlReader)
- Source:
- XmlSchemaSet.cs
- Source:
- XmlSchemaSet.cs
- Source:
- XmlSchemaSet.cs
- Source:
- XmlSchemaSet.cs
- Source:
- XmlSchemaSet.cs
Agrega el esquema del lenguaje de definición de esquema XML (XSD) incluido en XmlReader a .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);
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
Propiedad de esquema targetNamespace o null para usar el targetNamespace especificado en el esquema.
Devoluciones
Objeto XmlSchema si el esquema es válido. Si el esquema no es válido y se especifica , ValidationEventHandlernull se devuelve y se genera el evento de validación adecuado. De lo contrario, se produce una excepción XmlSchemaException.
Excepciones
El esquema no es válido.
El XmlReader objeto pasado como parámetro es null.
Ejemplos
En el ejemplo de código siguiente se agrega el esquema books.xsd incluido en XmlTextReader con un espacio de nombres de destino de http://www.contoso.com/books a 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 que se pueda agregar un esquema a , XmlSchemaSetdebe preprocesarse correctamente. El preprocesamiento realiza las siguientes tareas básicas.
El esquema se comprueba si hay validez estructural según las reglas del esquema XML de W3C, pero el esquema no está totalmente validado.
Se resuelven las referencias a los componentes de esquema interno y externo. Los esquemas importados o incluidos que se recuperan correctamente también se agregan a .XmlSchemaSet Los esquemas importados se agregan como objetos independientes XmlSchema y los esquemas incluidos se convierten en parte de , incluido XmlSchema.
A continuación se muestran notas importantes que se deben tener en cuenta al usar el Add método .
Los esquemas recuperados correctamente importados o incluidos por los esquemas contenidos en XmlReader también se agregan a .XmlSchemaSet
XmlReader Si no se coloca en el elemento raíz, se produce una XmlSchemaException excepción a menos que el elemento actual sea un elemento. Si el elemento actual es un
xs:schemaelemento, el documento de esquema se lee en XmlSchemaSet; de lo contrario, se produce una XmlSchemaException excepción porque el esquema no es válido.XmlReader Si se coloca en una secuencia de nodos XML, solo se agrega el primer nodo de la secuencia.
Si el esquema se creó a partir de una XmlReader.Create llamada de método, se omite el valor de la ProcessInlineSchema propiedad , ya que el procesamiento de esquemas insertados no se aplica a los documentos de esquema XML W3C.
La XmlResolver propiedad de XmlReader no se usa para resolver referencias a espacios de nombres o ubicaciones de esquema en elementos de inclusión e importación. En su lugar, se usa la XmlResolver propiedad de .XmlSchemaSet
El Add método de tiene la capacidad de XmlSchemaSet usar el espacio de nombres de destino definido en un esquema, en lugar de requerir que el espacio de nombres de destino se especifique como un parámetro cuando se llama al Add método . Al especificar
nullo String.Empty al Add método se indica XmlSchemaSet al usuario que use el espacio de nombres de destino definido en el esquema. Para obtener un ejemplo de este comportamiento, consulte el Add método .
La funcionalidad restante de este método es idéntica a la Add del método .