Condividi tramite


XmlSchemaDatatype.ParseValue Metodo

Definizione

Overload

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

Quando viene eseguito l'override in una classe derivata, convalida la string specificata rispetto a un tipo semplice incorporato o definito dall'utente.

ParseValue(String, XmlNameTable, XmlNamespaceManager)

Quando ne viene eseguito l'override in una classe derivata, convalida la stringa specificata rispetto a un tipo semplice predefinito o definito dall'utente.

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

Quando viene eseguito l'override in una classe derivata, convalida la string specificata rispetto a un tipo semplice incorporato o definito dall'utente.

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

Parametri

s
String

string da convalidare rispetto al tipo semplice.

nameTable
XmlNameTable

Classe XmlNameTable da utilizzare per la suddivisione in elementi di base durante l'analisi della string, se l'oggetto XmlSchemaDatatype rappresenta il tipo xs:NCName.

nsmgr
IXmlNamespaceResolver

L'oggetto IXmlNamespaceResolver da utilizzare durante l'analisi della string, se l'oggetto XmlSchemaDatatype rappresenta il tipo xs:QName.

Restituisce

Object

Oggetto Object di cui può essere eseguito il cast al tipo restituito dalla proprietà ValueType.

Eccezioni

Il valore di input non è un'istanza valida del tipo di schema XML W3C.

Il valore da analizzare non può essere null.

Esempio

Nell'esempio seguente viene recuperato il LotteryNumber tipo semplice dal file example.xsd come oggetto XmlSchemaSimpleType e quindi convalida il string valore dell'uso 5 del ParseValue metodo.

#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

Il file XML seguente viene usato per l'esempio di codice precedente.

<?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>

Commenti

Il ParseValue metodo convalida l'oggetto string specificato in base a un tipo semplice predefinito o definito dall'utente. Ad esempio, se rappresenta XmlSchemaDatatype il tipo xs:date, viene restituita un'istanza di DateTime .

Di seguito sono riportati i passaggi eseguiti durante il ParseValue processo di convalida del metodo.

  1. Convertire il valore specificato come oggetto string nel tipo CLR (Common Language Runtime) corrispondente.

  2. Verificare che il valore non viola i facet definiti per il tipo semplice.

Il valore convertito viene quindi restituito come oggetto Object e può essere sottoposto a cast in modo sicuro al tipo restituito dalla ValueType proprietà.

Quando l'oggetto rappresenta un tipo di elenco, il XmlSchemaDatatype valore di input string viene convertito in un elenco di uno o più oggetti. Quando l'oggetto rappresenta un tipo di elenco, viene eseguito un tentativo di analizzare il XmlSchemaDatatype valore di input come tipo membro dell'unione. Se il tentativo di analisi ha esito negativo, la conversione viene tentata con il membro successivo dell'unione finché l'analisi non riesce o non sono presenti altri tipi di membro da analizzare. Se l'analisi ha esito negativo, viene generata un'eccezione.

Si applica a

ParseValue(String, XmlNameTable, XmlNamespaceManager)

Quando ne viene eseguito l'override in una classe derivata, convalida la stringa specificata rispetto a un tipo semplice predefinito o definito dall'utente.

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

Parametri

s
String

Stringa da convalidare rispetto al tipo semplice.

nameTable
XmlNameTable

Classe XmlNameTable da usare per l'atomizzazione durante l'analisi della stringa se l'oggetto XmlSchemaDatatype rappresenta il tipo xs:NCName.

nsmgr
XmlNamespaceManager

L'oggetto XmlNamespaceManager da usare durante l'analisi della stringa se l'oggetto XmlSchemaDatatype rappresenta il tipo xs:QName.

Restituisce

Object

Oggetto Object di cui può essere eseguito il cast al tipo restituito da ValueType.

Eccezioni

Il valore di input non è un'istanza valida del tipo di schema XML W3C.

Il valore da analizzare non può essere Null (Nothing in Visual Basic).

Commenti

Il ParseValue metodo convalida la stringa specificata su un tipo semplice predefinito o definito dall'utente. Ad esempio, se rappresenta XmlSchemaDatatype il tipo xs:date, viene restituita un'istanza di DateTime .

Di seguito sono riportati i passaggi eseguiti durante il ParseValue processo di convalida del metodo.

  1. Convertire la stringa specificata nel tipo CLR (Common Language Runtime) corrispondente.

  2. Verificare che il valore non viola i facet definiti per il tipo semplice.

Il valore convertito viene quindi restituito come oggetto Object e può essere sottoposto a cast in modo sicuro al tipo restituito dalla ValueType proprietà.

Quando l'oggetto rappresenta un tipo di elenco, il XmlSchemaDatatype valore stringa di input viene convertito in un elenco di uno o più oggetti. Quando l'oggetto rappresenta un tipo di elenco, viene eseguito un tentativo di analizzare il XmlSchemaDatatype valore di input come tipo membro dell'unione. Se il tentativo di analisi ha esito negativo, la conversione viene tentata con il membro successivo dell'unione finché l'analisi non riesce o non sono presenti altri tipi di membro da analizzare. Se l'analisi ha esito negativo, viene generata un'eccezione.

Si applica a