Share via


XmlSchemaDatatype.ParseValue Método

Definición

Sobrecargas

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

Cuando se reemplaza en una clase derivada, valida el objeto string especificado frente a un tipo simple integrado o definido por el usuario.

ParseValue(String, XmlNameTable, XmlNamespaceManager)

Cuando se reemplaza en una clase derivada, valida la cadena especificada en un tipo simple integrado o definido por el usuario.

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

Cuando se reemplaza en una clase derivada, valida el objeto string especificado frente a un tipo simple integrado o definido por el usuario.

public:
 abstract System::Object ^ ParseValue(System::String ^ s, System::Xml::XmlNameTable ^ nameTable, System::Xml::IXmlNamespaceResolver ^ nsmgr);
public abstract object ParseValue (string s, System.Xml.XmlNameTable? nameTable, System.Xml.IXmlNamespaceResolver? nsmgr);
public abstract object ParseValue (string s, System.Xml.XmlNameTable nameTable, System.Xml.IXmlNamespaceResolver nsmgr);
abstract member ParseValue : string * System.Xml.XmlNameTable * System.Xml.IXmlNamespaceResolver -> obj
Public MustOverride Function ParseValue (s As String, nameTable As XmlNameTable, nsmgr As IXmlNamespaceResolver) As Object

Parámetros

s
String

string que se validará frente al tipo simple.

nameTable
XmlNameTable

XmlNameTable que se va a utilizar para la atomización mientras se analiza string si este objeto XmlSchemaDatatype representa el tipo xs:NCName.

nsmgr
IXmlNamespaceResolver

Objeto IXmlNamespaceResolver que se va a utilizar mientras se analiza string si este objeto XmlSchemaDatatype representa el tipo xs:QName.

Devoluciones

Object

Objeto Object que se puede convertir sin ningún riesgo en el tipo que devuelve la propiedad ValueType.

Excepciones

El valor de entrada no es una instancia válida de este tipo de esquema XML de W3C.

El valor que se va a analizar no puede ser null.

Ejemplos

En el ejemplo siguiente se recupera el LotteryNumber tipo simple del archivo example.xsd como y XmlSchemaSimpleType , a continuación, se valida el string valor de 5 mediante el ParseValue método .

#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()
    {
        XmlTextReader^ xtr = gcnew XmlTextReader("example.xsd");
        XmlSchema^ schema = XmlSchema::Read(xtr, gcnew ValidationEventHandler(ValidationCallbackOne));

        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;
        }

        for each (XmlSchemaObject^ schemaObject in compiledSchema->Items)
        {
            if (schemaObject->GetType() == XmlSchemaSimpleType::typeid)
            {
                XmlSchemaSimpleType^ simpleType = dynamic_cast<XmlSchemaSimpleType^>(schemaObject);
                Console::WriteLine("{0} {1}", simpleType->Name, simpleType->Datatype->ValueType);
            }
            if (schemaObject->GetType() == XmlSchemaComplexType::typeid)
            {
                XmlSchemaComplexType^ complexType = dynamic_cast<XmlSchemaComplexType^>(schemaObject);
                Console::WriteLine("{0} {1}", complexType->Name, complexType->Datatype->ValueType);
            }
        }
        xtr->Close();
    }

    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()
    {
        XmlTextReader xtr = new XmlTextReader("example.xsd");
        XmlSchema schema = XmlSchema.Read(xtr, new ValidationEventHandler(ValidationCallbackOne));

        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;
        }

        foreach (XmlSchemaObject schemaObject in compiledSchema.Items)
        {
            if (schemaObject.GetType() == typeof(XmlSchemaSimpleType))
            {
                XmlSchemaSimpleType simpleType = (XmlSchemaSimpleType)schemaObject;
                Console.WriteLine("{0} {1}", simpleType.Name, simpleType.Datatype.ValueType);
            }
            if (schemaObject.GetType() == typeof(XmlSchemaComplexType))
            {
                XmlSchemaComplexType complexType = (XmlSchemaComplexType)schemaObject;
                Console.WriteLine("{0} {1}", complexType.Name, complexType.Datatype.ValueType);
            }
        }
        xtr.Close();
    }

    public static void ValidationCallbackOne(object sender, ValidationEventArgs args)
    {
        Console.WriteLine(args.Message);
    }
}
Imports System.Xml
Imports System.Xml.Schema

 _

Class XMLSchemaExamples

    Public Shared Sub Main()
        Dim xtr As New XmlTextReader("example.xsd")
        Dim schema As XmlSchema = XmlSchema.Read(xtr, New ValidationEventHandler(AddressOf ValidationCallbackOne))

        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 schemaObject As XmlSchemaObject
        For Each schemaObject In compiledSchema.Items
            If schemaObject.GetType() Is GetType(XmlSchemaSimpleType) Then
                Dim simpleType As XmlSchemaSimpleType = CType(schemaObject, XmlSchemaSimpleType)
                Console.WriteLine("{0} {1}", simpleType.Name, simpleType.Datatype.ValueType)
            End If
            If schemaObject.GetType() Is GetType(XmlSchemaComplexType) Then
                Dim complexType As XmlSchemaComplexType = CType(schemaObject, XmlSchemaComplexType)
                Console.WriteLine("{0} {1}", complexType.Name, complexType.Datatype.ValueType)
            End If
        Next schemaObject
        xtr.Close()
    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 usa para el ejemplo de código anterior.

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:simpleType name="LotteryNumber">
        <xs:restriction base="xs:int">
            <xs:minInclusive value="1"/>
            <xs:maxInclusive value="99"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>

Comentarios

El ParseValue método valida el string especificado en un tipo simple integrado o definido por el usuario. Por ejemplo, si representa XmlSchemaDatatype el tipo xs:date, se devuelve una instancia de DateTime .

A continuación se indican los pasos realizados durante el ParseValue proceso de validación del método.

  1. Convierta el valor especificado como en string su tipo de Common Language Runtime (CLR) correspondiente.

  2. Compruebe que el valor no infringe ninguna faceta definida para el tipo simple.

A continuación, el valor convertido se devuelve como y Object se puede convertir de forma segura en el tipo devuelto por la ValueType propiedad .

Cuando el XmlSchemaDatatype objeto representa un tipo de lista, el valor de entrada string se convierte en una lista de uno o varios objetos. Cuando el XmlSchemaDatatype objeto representa un tipo de lista, se intenta analizar el valor de entrada como un tipo de miembro de la unión. Si se produce un error en el intento de análisis, la conversión se intenta con el siguiente miembro de la unión hasta que el análisis se realiza correctamente o no hay ningún otro tipo de miembro que analizar. Si el análisis no se realiza correctamente, se produce una excepción.

Se aplica a

ParseValue(String, XmlNameTable, XmlNamespaceManager)

Cuando se reemplaza en una clase derivada, valida la cadena especificada en un tipo simple integrado o definido por el usuario.

public:
 abstract System::Object ^ ParseValue(System::String ^ s, System::Xml::XmlNameTable ^ nameTable, System::Xml::XmlNamespaceManager ^ nsmgr);
public abstract object ParseValue (string s, System.Xml.XmlNameTable nameTable, System.Xml.XmlNamespaceManager nsmgr);
abstract member ParseValue : string * System.Xml.XmlNameTable * System.Xml.XmlNamespaceManager -> obj
Public MustOverride Function ParseValue (s As String, nameTable As XmlNameTable, nsmgr As XmlNamespaceManager) As Object

Parámetros

s
String

Cadena que se va a validar en el tipo simple.

nameTable
XmlNameTable

XmlNameTable que se va a usar para la atomización mientras se analiza la cadena si este objeto XmlSchemaDatatype representa al tipo xs:NCName.

nsmgr
XmlNamespaceManager

Objeto XmlNamespaceManager que se va a usar mientras se analiza la cadena si este objeto XmlSchemaDatatype representa al tipo xs:QName.

Devoluciones

Object

Objeto Object que se puede convertir sin ningún riesgo en el tipo devuelto por la propiedad ValueType.

Excepciones

El valor de entrada no es una instancia válida de este tipo de esquema XML de W3C.

El valor que se va a analizar no puede ser null (Nothing en Visual Basic).

Comentarios

El ParseValue método valida la cadena especificada en un tipo simple integrado o definido por el usuario. Por ejemplo, si representa XmlSchemaDatatype el tipo xs:date, se devuelve una instancia de DateTime .

A continuación se indican los pasos realizados durante el ParseValue proceso de validación del método.

  1. Convierta la cadena especificada en su tipo de Common Language Runtime (CLR) correspondiente.

  2. Compruebe que el valor no infringe ninguna faceta definida para el tipo simple.

A continuación, el valor convertido se devuelve como y Object se puede convertir de forma segura al tipo devuelto por la ValueType propiedad .

Cuando el XmlSchemaDatatype objeto representa un tipo de lista, el valor de cadena de entrada se convierte en una lista de uno o varios objetos. Cuando el XmlSchemaDatatype objeto representa un tipo de lista, se intenta analizar el valor de entrada como un tipo de miembro de la unión. Si se produce un error en el intento de análisis, la conversión se intenta con el siguiente miembro de la unión hasta que el análisis se realiza correctamente o no hay ningún otro tipo de miembro que analizar. Si el análisis no se realiza correctamente, se produce una excepción.

Se aplica a