XmlSchemaDatatype.ParseValue Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Sobrecargas
| Name | Description |
|---|---|
| ParseValue(String, XmlNameTable, IXmlNamespaceResolver) |
Quando sobreposto numa classe derivada, valida o |
| ParseValue(String, XmlNameTable, XmlNamespaceManager) |
Quando sobreposta numa classe derivada, valida a cadeia especificada contra um tipo simples incorporado ou definido pelo utilizador. |
ParseValue(String, XmlNameTable, IXmlNamespaceResolver)
Quando sobreposto numa classe derivada, valida o string especificado contra um tipo simples incorporado ou definido pelo utilizador.
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);
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
O string para validar contra o tipo simples.
- nameTable
- XmlNameTable
O XmlNameTable to use para atomização ao analisar se string este XmlSchemaDatatype objeto representa o tipo xs:NCName.
- nsmgr
- IXmlNamespaceResolver
O IXmlNamespaceResolver objeto a usar ao analisar o string se este XmlSchemaDatatype objeto representa o tipo xs:QName.
Devoluções
Um Object que pode ser lançado em segurança para o tipo devolvida pela ValueType propriedade.
Exceções
O valor de entrada não é uma instância válida deste tipo de Esquema XML do W3C.
O valor a analisar não pode ser null.
Exemplos
O exemplo seguinte recupera o LotteryNumber tipo simples do ficheiro example.xsd como um XmlSchemaSimpleType e depois valida o string valor de 5 usando o ParseValue método.
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
O seguinte ficheiro XML é usado para o exemplo 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>
Observações
O ParseValue método valida o string especificado contra um tipo simples incorporado ou definido pelo utilizador. Por exemplo, se isto XmlSchemaDatatype representa o tipo xs:data, então uma instância de DateTime é devolvida.
Seguem-se os passos realizados durante o ParseValue processo de validação do método.
Converta o valor especificado como a
stringpara o seu tipo correspondente de Common Language Runtime (CLR).Verifique se o valor não viola nenhuma faceta definida para o tipo simples.
O valor convertido é então devolvido como um Object e pode ser fundido em segurança para o tipo devolvido pela ValueType propriedade.
Quando o XmlSchemaDatatype objeto representa um tipo de lista, o valor de entrada string é convertido numa lista de um ou mais objetos. Quando o XmlSchemaDatatype objeto representa um tipo de lista, tenta-se analisar o valor de entrada como um tipo de membro da união. Se a tentativa de análise sintática falhar, então a conversão é tentada com o próximo membro da união até que a análise sintática seja bem-sucedida ou não haja outros tipos de membros para analisar. Se a análise não for bem-sucedida, é lançada uma exceção.
Aplica-se a
ParseValue(String, XmlNameTable, XmlNamespaceManager)
Quando sobreposta numa classe derivada, valida a cadeia especificada contra um tipo simples incorporado ou definido pelo utilizador.
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
A cadeia a validar contra o tipo simples.
- nameTable
- XmlNameTable
O XmlNameTable para usar para atomização ao analisar a cadeia se este XmlSchemaDatatype objeto representar o tipo xs:NCName .
- nsmgr
- XmlNamespaceManager
O XmlNamespaceManager objeto a usar durante a análise da cadeia se este XmlSchemaDatatype objeto representar o tipo xs:QName.
Devoluções
Um Object que pode ser lançado em segurança para o tipo que é devolvido pela ValueType propriedade.
Exceções
O valor de entrada não é uma instância válida deste tipo de Esquema XML do W3C.
O valor a analisar não pode ser nulo (Nada no Visual Basic).
Observações
O ParseValue método valida a cadeia especificada contra um tipo simples incorporado ou definido pelo utilizador. Por exemplo, se isto XmlSchemaDatatype representa o tipo xs:data, então uma instância de DateTime é devolvida.
Seguem-se os passos realizados durante o ParseValue processo de validação do método.
Converta a cadeia especificada para o seu tipo correspondente de Common Language Runtime (CLR).
Verifique se o valor não viola nenhuma faceta definida para o tipo simples.
O valor convertido é então devolvido como um Object e pode ser lançado em segurança para o tipo que é devolvido pela ValueType propriedade.
Quando o XmlSchemaDatatype objeto representa um tipo de lista, o valor da cadeia de entrada é convertido numa lista de um ou mais objetos. Quando o XmlSchemaDatatype objeto representa um tipo de lista, tenta-se analisar o valor de entrada como um tipo de membro da união. Se a tentativa de análise sintática falhar, então a conversão é tentada com o próximo membro da união até que a análise sintática seja bem-sucedida ou não haja outros tipos de membros para analisar. Se a análise não for bem-sucedida, é lançada uma exceção.