XmlSchema Clase
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í.
Representación en memoria de un esquema XML, como se especifica en el esquema XML del World Wide Web Consortium (W3C) Parte 1: Estructuras y esquema XML Parte 2: Tipos de datos].
public ref class XmlSchema
public ref class XmlSchema : System::Xml::Schema::XmlSchemaObject
public class XmlSchema
public class XmlSchema : System.Xml.Schema.XmlSchemaObject
type XmlSchema = class
type XmlSchema = class
inherit XmlSchemaObject
Public Class XmlSchema
Public Class XmlSchema
Inherits XmlSchemaObject
- Herencia
-
XmlSchema
- Herencia
Ejemplos
En el ejemplo siguiente se crea una definición de esquema.
using System;
using System.Xml;
using System.Xml.Schema;
class XMLSchemaExamples
{
public static void Main()
{
XmlSchema schema = new XmlSchema();
// <xs:element name="cat" type="xs:string"/>
XmlSchemaElement elementCat = new XmlSchemaElement();
schema.Items.Add(elementCat);
elementCat.Name = "cat";
elementCat.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="dog" type="xs:string"/>
XmlSchemaElement elementDog = new XmlSchemaElement();
schema.Items.Add(elementDog);
elementDog.Name = "dog";
elementDog.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="redDog" substitutionGroup="dog" />
XmlSchemaElement elementRedDog = new XmlSchemaElement();
schema.Items.Add(elementRedDog);
elementRedDog.Name = "redDog";
elementRedDog.SubstitutionGroup = new XmlQualifiedName("dog");
// <xs:element name="brownDog" substitutionGroup ="dog" />
XmlSchemaElement elementBrownDog = new XmlSchemaElement();
schema.Items.Add(elementBrownDog);
elementBrownDog.Name = "brownDog";
elementBrownDog.SubstitutionGroup = new XmlQualifiedName("dog");
// <xs:element name="pets">
XmlSchemaElement elementPets = new XmlSchemaElement();
schema.Items.Add(elementPets);
elementPets.Name = "pets";
// <xs:complexType>
XmlSchemaComplexType complexType = new XmlSchemaComplexType();
elementPets.SchemaType = complexType;
// <xs:choice minOccurs="0" maxOccurs="unbounded">
XmlSchemaChoice choice = new XmlSchemaChoice();
complexType.Particle = choice;
choice.MinOccurs = 0;
choice.MaxOccursString = "unbounded";
// <xs:element ref="cat"/>
XmlSchemaElement catRef = new XmlSchemaElement();
choice.Items.Add(catRef);
catRef.RefName = new XmlQualifiedName("cat");
// <xs:element ref="dog"/>
XmlSchemaElement dogRef = new XmlSchemaElement();
choice.Items.Add(dogRef);
dogRef.RefName = new XmlQualifiedName("dog");
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.ValidationEventHandler += new ValidationEventHandler(ValidationCallbackOne);
schemaSet.Add(schema);
schemaSet.Compile();
XmlSchema compiledSchema = null;
foreach (XmlSchema schema1 in schemaSet.Schemas())
{
compiledSchema = schema1;
}
XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
compiledSchema.Write(Console.Out, nsmgr);
}
public static void ValidationCallbackOne(object sender, ValidationEventArgs args)
{
Console.WriteLine(args.Message);
}
}
Option Explicit On
Option Strict On
Imports System.Xml
Imports System.Xml.Schema
Class XMLSchemaExamples
Public Shared Sub Main()
Dim schema As New XmlSchema()
' <xs:element name="cat" type="xs:string"/>
Dim elementCat As New XmlSchemaElement()
schema.Items.Add(elementCat)
elementCat.Name = "cat"
elementCat.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:element name="dog" type="xs:string"/>
Dim elementDog As New XmlSchemaElement()
schema.Items.Add(elementDog)
elementDog.Name = "dog"
elementDog.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:element name="redDog" substitutionGroup="dog" />
Dim elementRedDog As New XmlSchemaElement()
schema.Items.Add(elementRedDog)
elementRedDog.Name = "redDog"
elementRedDog.SubstitutionGroup = New XmlQualifiedName("dog")
' <xs:element name="brownDog" substitutionGroup ="dog" />
Dim elementBrownDog As New XmlSchemaElement()
schema.Items.Add(elementBrownDog)
elementBrownDog.Name = "brownDog"
elementBrownDog.SubstitutionGroup = New XmlQualifiedName("dog")
' <xs:element name="pets">
Dim elementPets As New XmlSchemaElement()
schema.Items.Add(elementPets)
elementPets.Name = "pets"
' <xs:complexType>
Dim complexType As New XmlSchemaComplexType()
elementPets.SchemaType = complexType
' <xs:choice minOccurs="0" maxOccurs="unbounded">
Dim choice As New XmlSchemaChoice()
complexType.Particle = choice
choice.MinOccurs = 0
choice.MaxOccursString = "unbounded"
' <xs:element ref="cat"/>
Dim catRef As New XmlSchemaElement()
choice.Items.Add(catRef)
catRef.RefName = New XmlQualifiedName("cat")
' <xs:element ref="dog"/>
Dim dogRef As New XmlSchemaElement()
choice.Items.Add(dogRef)
dogRef.RefName = New XmlQualifiedName("dog")
Dim schemaSet As New XmlSchemaSet()
AddHandler schemaSet.ValidationEventHandler, AddressOf ValidationCallbackOne
schemaSet.Add(schema)
schemaSet.Compile()
Dim compiledSchema As XmlSchema = Nothing
For Each schema1 As XmlSchema In schemaSet.Schemas()
compiledSchema = schema1
Next
Dim nsmgr As New XmlNamespaceManager(New NameTable())
nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema")
compiledSchema.Write(Console.Out, nsmgr)
End Sub
Public Shared Sub ValidationCallbackOne(ByVal sender As Object, ByVal args As ValidationEventArgs)
Console.WriteLine(args.Message)
End Sub
End Class
El siguiente archivo XML se genera para el ejemplo de código anterior.
<?xml version="1.0" encoding="IBM437"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="cat" type="xs:string"/>
<xs:element name="dog" type="xs:string"/>
<xs:element name="redDog" type="xs:string" substitutionGroup="dog"/>
<xs:element name="brownDog" type="xs:string" substitutionGroup ="dog" />
<xs:element name="pets">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="cat"/>
<xs:element ref="dog"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Comentarios
Importante
- No use esquemas de orígenes o ubicaciones desconocidos o que no sean de confianza. Si lo hace, se pondrá en peligro la seguridad del código.
- Los esquemas XML (incluidos los esquemas insertados) son inherentemente vulnerables a ataques de denegación de servicio; no los acepte en escenarios que no son de confianza.
- Las excepciones generadas como resultado del uso de la XmlSchema clase , como la XmlSchemaException clase , pueden contener información confidencial que no se debe exponer en escenarios que no son de confianza. Por ejemplo, la propiedad SourceUri de un XmlSchemaException devuelve la ruta de acceso del URI al archivo de esquema que provocó la excepción. La propiedad SourceUri no se debe exponer en escenarios que no sean de confianza. Las excepciones deben controlarse correctamente, por lo que esta información confidencial no se expone en escenarios que no son de confianza.
Constructores
| Nombre | Description |
|---|---|
| XmlSchema() |
Inicializa una nueva instancia de la clase XmlSchema. |
Campos
| Nombre | Description |
|---|---|
| InstanceNamespace |
Espacio de nombres de instancia de esquema XML. Este campo es constante. |
| Namespace |
Espacio de nombres de esquema XML. Este campo es constante. |
Propiedades
| Nombre | Description |
|---|---|
| AttributeFormDefault |
Obtiene o establece el formulario para los atributos declarados en el espacio de nombres de destino del esquema. |
| AttributeGroups |
Obtiene el valor posterior a la compilación del esquema de todos los grupos de atributos globales del esquema. |
| Attributes |
Obtiene el valor posterior a la compilación del esquema para todos los atributos del esquema. |
| BlockDefault |
Obtiene o establece el |
| ElementFormDefault |
Obtiene o establece el formulario para los elementos declarados en el espacio de nombres de destino del esquema. |
| Elements |
Obtiene el valor posterior a la compilación del esquema para todos los elementos del esquema. |
| FinalDefault |
Obtiene o establece el |
| Groups |
Obtiene el valor posterior a la compilación del esquema de todos los grupos del esquema. |
| Id |
Obtiene o establece el identificador de cadena. |
| Includes |
Obtiene la colección de esquemas incluidos e importados. |
| IsCompiled |
Indica si se ha compilado el esquema. |
| Items |
Obtiene la colección de elementos de esquema del esquema y se usa para agregar nuevos tipos de elementos en el nivel de |
| LineNumber |
Obtiene o establece el número de línea del archivo al que hace referencia el |
| LinePosition |
Obtiene o establece la posición de línea del archivo al que hace referencia el |
| Namespaces |
Obtiene o establece el objeto XmlSerializerNamespaces que se va a usar con este objeto de esquema. (Heredado de XmlSchemaObject) |
| Notations |
Obtiene el valor posterior a la compilación del esquema para todas las notaciones del esquema. |
| Parent |
Obtiene o establece el elemento primario de este XmlSchemaObjectobjeto . (Heredado de XmlSchemaObject) |
| SchemaTypes |
Obtiene el valor posterior a la compilación del esquema de todos los tipos de esquema del esquema. |
| SourceUri |
Obtiene o establece la ubicación de origen del archivo que cargó el esquema. (Heredado de XmlSchemaObject) |
| TargetNamespace |
Obtiene o establece el identificador uniforme de recursos (URI) del espacio de nombres de destino del esquema. |
| UnhandledAttributes |
Obtiene o establece los atributos calificados que no pertenecen al espacio de nombres de destino del esquema. |
| Version |
Obtiene o establece la versión del esquema. |
Métodos
| Nombre | Description |
|---|---|
| Compile(ValidationEventHandler, XmlResolver) |
Obsoletos.
Obsoletos.
Obsoletos.
Compila el modelo de objetos de esquema XML (SOM) en información de esquema para la validación. Se usa para comprobar la estructura sintáctica y semántica del SOM compilado mediante programación. La comprobación de validación semántica se realiza durante la compilación. |
| Compile(ValidationEventHandler) |
Obsoletos.
Obsoletos.
Obsoletos.
Compila el modelo de objetos de esquema XML (SOM) en información de esquema para la validación. Se usa para comprobar la estructura sintáctica y semántica del SOM compilado mediante programación. La comprobación de validación semántica se realiza durante la compilación. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetHashCode() |
Actúa como función hash predeterminada. (Heredado de Object) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| Read(Stream, ValidationEventHandler) |
Lee un esquema XML de la secuencia proporcionada. |
| Read(TextReader, ValidationEventHandler) |
Lee un esquema XML del proporcionado TextReader. |
| Read(XmlReader, ValidationEventHandler) |
Lee un esquema XML del proporcionado XmlReader. |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
| Write(Stream, XmlNamespaceManager) |
Escribe el esquema XML en el proporcionado Stream mediante el XmlNamespaceManager especificado. |
| Write(Stream) |
Escribe el esquema XML en el flujo de datos proporcionado. |
| Write(TextWriter, XmlNamespaceManager) |
Escribe el esquema XML en el proporcionado TextWriter. |
| Write(TextWriter) |
Escribe el esquema XML en el proporcionado TextWriter. |
| Write(XmlWriter, XmlNamespaceManager) |
Escribe el esquema XML en el proporcionado XmlWriter. |
| Write(XmlWriter) |
Escribe el esquema XML en el proporcionado XmlWriter. |