XmlSchemaDatatype.ParseValue 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í.
Sobrecargas
ParseValue(String, XmlNameTable, IXmlNamespaceResolver) |
Cuando se reemplaza en una clase derivada, valida el objeto |
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
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.
Convierta el valor especificado como en
string
su tipo de Common Language Runtime (CLR) correspondiente.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
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.
Convierta la cadena especificada en su tipo de Common Language Runtime (CLR) correspondiente.
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.