Partekatu honen bidez:


XmlSchema Clase

Definición

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 blockDefault atributo , que establece el valor predeterminado del block atributo en el elemento y los tipos complejos del targetNamespace esquema.

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 finalDefault atributo , que establece el valor predeterminado del final atributo en elementos y tipos complejos en el espacio de nombres de destino del esquema.

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 schema elemento.

LineNumber

Obtiene o establece el número de línea del archivo al que hace referencia el schema elemento.

(Heredado de XmlSchemaObject)
LinePosition

Obtiene o establece la posición de línea del archivo al que hace referencia el schema elemento.

(Heredado de XmlSchemaObject)
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.

Se aplica a

Consulte también