Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo XmlSchemaDatatype.ParseValue (String, XmlNameTable, IXmlNamespaceResolver)

 

Data di pubblicazione: novembre 2016

Quando sottoposto a override in una classe derivata, convalida il string specificato rispetto a un tipo semplice incorporato o definita dall'utente.

Spazio dei nomi:   System.Xml.Schema
Assembly:  System.Xml (in System.Xml.dll)

public abstract object ParseValue(
	string s,
	XmlNameTable nameTable,
	IXmlNamespaceResolver nsmgr
)

Parametri

s
Type: System.String

Il string per la convalida di tipo semplice.

nameTable
Type: System.Xml.XmlNameTable

Il XmlNameTable da utilizzare per atomizzazione durante l'analisi di string Se XmlSchemaDatatype rappresenta il tipo xs: NCName.

nsmgr
Type: System.Xml.IXmlNamespaceResolver

Il IXmlNamespaceResolver oggetto da utilizzare durante l'analisi di string Se XmlSchemaDatatype rappresenta il tipo xs: QName.

Valore restituito

Type: System.Object

Un Object che può essere convertito in modo sicuro per il tipo restituito dalla ValueType proprietà.

Exception Condition
XmlSchemaValidationException

Il valore di input non è un'istanza valida di questo tipo di W3C XML Schema.

ArgumentNullException

Il valore da analizzare non può essere null.

Il ParseValue metodo convalida il string specificato rispetto a un tipo semplice incorporato o definita dall'utente. Ad esempio, se questo XmlSchemaDatatype rappresenta il tipo xs: date, quindi un'istanza di DateTime viene restituito.

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

  1. Converte il valore specificato come un string digitare per la corrispondente Common Language Runtime (CLR).

  2. Verificare che il valore non violi nessuno degli aspetti definiti per il tipo semplice.

Il valore convertito viene quindi restituito come un Object e può essere il cast al tipo restituito dalla ValueType proprietà.

Quando il XmlSchemaDatatype oggetto rappresenta un tipo di elenco, l'input string valore viene convertito in un elenco di uno o più oggetti. Quando il XmlSchemaDatatype oggetto rappresenta un tipo di elenco, viene effettuato un tentativo di analizzare il valore di input come tipo di membro dell'unione. Se il tentativo di analisi ha esito negativo, quindi viene tentata la conversione con il successivo membro dell'unione fino a quando l'analisi viene eseguita correttamente o non sono disponibili altri tipi di membro da analizzare. Se l'analisi ha esito negativo, viene generata un'eccezione.

Nell'esempio seguente viene recuperato il LotteryNumber tipo semplice dal file Example come un XmlSchemaSimpleType e viene quindi convalidato il string valore 5 utilizzando il ParseValue metodo.

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

Il file XML seguente viene utilizzato 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>

.NET Framework
Disponibile da 2.0
Torna all'inizio
Mostra: