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 parte 1: estructuras y el esquema XML Parte 2: tipos de datos de World Wide Web Consortium (W3C).
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 <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::Xml;
using namespace System::Xml::Schema;
class XmlSchemaExamples
{
public:
static void Main()
{
XmlSchema^ schema = gcnew XmlSchema();
// <xs:element name="cat" type="xs:string"/>
XmlSchemaElement^ elementCat = gcnew XmlSchemaElement();
schema->Items->Add(elementCat);
elementCat->Name = "cat";
elementCat->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="dog" type="xs:string"/>
XmlSchemaElement^ elementDog = gcnew XmlSchemaElement();
schema->Items->Add(elementDog);
elementDog->Name = "dog";
elementDog->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="redDog" substitutionGroup="dog" />
XmlSchemaElement^ elementRedDog = gcnew XmlSchemaElement();
schema->Items->Add(elementRedDog);
elementRedDog->Name = "redDog";
elementRedDog->SubstitutionGroup = gcnew XmlQualifiedName("dog");
// <xs:element name="brownDog" substitutionGroup ="dog" />
XmlSchemaElement^ elementBrownDog = gcnew XmlSchemaElement();
schema->Items->Add(elementBrownDog);
elementBrownDog->Name = "brownDog";
elementBrownDog->SubstitutionGroup = gcnew XmlQualifiedName("dog");
// <xs:element name="pets">
XmlSchemaElement^ elementPets = gcnew XmlSchemaElement();
schema->Items->Add(elementPets);
elementPets->Name = "pets";
// <xs:complexType>
XmlSchemaComplexType^ complexType = gcnew XmlSchemaComplexType();
elementPets->SchemaType = complexType;
// <xs:choice minOccurs="0" maxOccurs="unbounded">
XmlSchemaChoice^ choice = gcnew XmlSchemaChoice();
complexType->Particle = choice;
choice->MinOccurs = 0;
choice->MaxOccursString = "unbounded";
// <xs:element ref="cat"/>
XmlSchemaElement^ catRef = gcnew XmlSchemaElement();
choice->Items->Add(catRef);
catRef->RefName = gcnew XmlQualifiedName("cat");
// <xs:element ref="dog"/>
XmlSchemaElement^ dogRef = gcnew XmlSchemaElement();
choice->Items->Add(dogRef);
dogRef->RefName = gcnew XmlQualifiedName("dog");
XmlSchemaSet^ schemaSet = gcnew XmlSchemaSet();
schemaSet->ValidationEventHandler += gcnew ValidationEventHandler(ValidationCallbackOne);
schemaSet->Add(schema);
schemaSet->Compile();
XmlSchema^ compiledSchema;
for each (XmlSchema^ schema1 in schemaSet->Schemas())
{
compiledSchema = schema1;
}
XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager(gcnew NameTable());
nsmgr->AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
compiledSchema->Write(Console::Out, nsmgr);
}
static void ValidationCallbackOne(Object^ sender, ValidationEventArgs^ args)
{
Console::WriteLine(args->Message);
}
};
int main()
{
XmlSchemaExamples::Main();
return 0;
};
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 intrínsecamente 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 SourceUri propiedad de devuelve XmlSchemaException la ruta de acceso del URI al archivo de esquema que provocó la excepción. La SourceUri propiedad no debe exponerse en escenarios que no son 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
XmlSchema() |
Inicializa una nueva instancia de la clase XmlSchema. |
Campos
InstanceNamespace |
El espacio de nombres de instancia del esquema XML. Este campo es constante. |
Namespace |
El espacio de nombres del esquema XML. Este campo es constante. |
Propiedades
AttributeFormDefault |
Obtiene o establece el formato de 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 atributo |
ElementFormDefault |
Obtiene o establece el formato de 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 atributo |
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 el esquema se ha compilado. |
Items |
Obtiene la colección de elementos de esquema del esquema y se utiliza para agregar nuevos tipos de elemento en el nivel de elemento |
LineNumber |
Obtiene o establece el número de línea del archivo al que hace referencia el elemento |
LinePosition |
Obtiene o establece la posición de la línea en el archivo al que hace referencia el elemento |
Namespaces |
Obtiene o establece el objeto XmlSerializerNamespaces que se va a utilizar 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 XmlSchemaObject. (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 cualificados que no pertenecen al espacio de nombres de destino del esquema. |
Version |
Obtiene o establece la versión del esquema. |
Métodos
Compile(ValidationEventHandler) |
Obsoletos.
Obsoletos.
Obsoletos.
Compila el Modelo de objetos de esquemas XML (SOM) en información de esquemas para la validación. Se usa para comprobar la estructura sintáctica y semántica del SOM creado mediante programación. La comprobación de la validación semántica se realiza durante la compilación. |
Compile(ValidationEventHandler, XmlResolver) |
Obsoletos.
Obsoletos.
Obsoletos.
Compila el Modelo de objetos de esquemas XML (SOM) en información de esquemas para la validación. Se usa para comprobar la estructura sintáctica y semántica del SOM creado mediante programación. La comprobación de la validación semántica se realiza durante la compilación. |
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
Read(Stream, ValidationEventHandler) |
Lee un esquema XML de la secuencia proporcionada. |
Read(TextReader, ValidationEventHandler) |
Lee un esquema XML del objeto TextReader proporcionado. |
Read(XmlReader, ValidationEventHandler) |
Lee un esquema XML del objeto XmlReader proporcionado. |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Write(Stream) |
Escribe el esquema XML en el flujo de datos suministrado. |
Write(Stream, XmlNamespaceManager) |
Escribe el esquema XML en el Stream proporcionado utilizando el XmlNamespaceManager especificado. |
Write(TextWriter) |
Escribe el esquema XML en el objeto TextWriter proporcionado. |
Write(TextWriter, XmlNamespaceManager) |
Escribe el esquema XML en el objeto TextWriter proporcionado. |
Write(XmlWriter) |
Escribe el esquema XML en el objeto XmlWriter proporcionado. |
Write(XmlWriter, XmlNamespaceManager) |
Escribe el esquema XML en el objeto XmlWriter proporcionado. |