XmlSchemaDatatype.ParseValue Méthode

Définition

Surcharges

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

En cas de substitution dans une classe dérivée, valide la string spécifiée par rapport à un type simple intégré ou défini par l'utilisateur.

ParseValue(String, XmlNameTable, XmlNamespaceManager)

En cas de substitution dans une classe dérivée, valide la chaîne spécifiée par rapport à un type simple intégré ou défini par l’utilisateur.

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

En cas de substitution dans une classe dérivée, valide la string spécifiée par rapport à un type simple intégré ou défini par l'utilisateur.

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

Paramètres

s
String

string à valider par rapport au type simple.

nameTable
XmlNameTable

XmlNameTable à utiliser pour l'atomisation lors de l'analyse de string si cet objet XmlSchemaDatatype représente le type xs:NCName.

nsmgr
IXmlNamespaceResolver

Objet IXmlNamespaceResolver à utiliser lors de l'analyse de string si cet objet XmlSchemaDatatype représente le type xs:QName.

Retours

Object

Object qui peut être casté en toute sécurité en type retourné par la propriété ValueType.

Exceptions

La valeur d'entrée n'est pas une instance valide de ce type de schéma XML W3C.

La valeur à analyser ne peut pas être null.

Exemples

L’exemple suivant récupère le LotteryNumber type simple du fichier example.xsd sous la forme d’un XmlSchemaSimpleType fichier, puis valide la string valeur de l’utilisation de 5 la ParseValue méthode.

#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

Le fichier XML suivant est utilisé pour l’exemple de code précédent.

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

Remarques

La ParseValue méthode valide la string valeur spécifiée par rapport à un type simple intégré ou défini par l’utilisateur. Par exemple, si cela XmlSchemaDatatype représente le type xs:date, une instance est DateTime retournée.

Voici les étapes effectuées pendant le processus de validation de la ParseValue méthode.

  1. Convertissez la valeur spécifiée en tant que string type CLR (Common Language Runtime) correspondant.

  2. Vérifiez que la valeur ne respecte pas les facettes définies pour le type simple.

La valeur convertie est ensuite retournée sous la forme d’un Object cast et peut être castée en toute sécurité vers le type retourné par la ValueType propriété.

Lorsque l’objet XmlSchemaDatatype représente un type de liste, la valeur d’entrée string est convertie en liste d’un ou plusieurs objets. Lorsque l’objet XmlSchemaDatatype représente un type de liste, une tentative est effectuée pour analyser la valeur d’entrée en tant que type membre de l’union. Si la tentative d’analyse échoue, la conversion est tentée avec le membre suivant de l’union jusqu’à ce que l’analyse réussisse ou qu’il n’existe aucun autre type de membre à analyser. Si l’analyse échoue, une exception est levée.

S’applique à

ParseValue(String, XmlNameTable, XmlNamespaceManager)

En cas de substitution dans une classe dérivée, valide la chaîne spécifiée par rapport à un type simple intégré ou défini par l’utilisateur.

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

Paramètres

s
String

Chaîne à valider par rapport au type simple.

nameTable
XmlNameTable

XmlNameTable à utiliser pour l’atomisation durant l’analyse de la chaîne si cet objet XmlSchemaDatatype représente le type xs:NCName.

nsmgr
XmlNamespaceManager

Objet XmlNamespaceManager à utiliser durant l’analyse de la chaîne si cet objet XmlSchemaDatatype représente le type xs:QName.

Retours

Object

Object qui peut être casté en toute sécurité en type retourné par la propriété ValueType.

Exceptions

La valeur d'entrée n'est pas une instance valide de ce type de schéma XML W3C.

La valeur à analyser ne doit pas avoir une valeur null (Nothing en Visual Basic).

Remarques

La ParseValue méthode valide la chaîne spécifiée par rapport à un type simple intégré ou défini par l’utilisateur. Par exemple, si cela XmlSchemaDatatype représente le type xs:date, une instance est DateTime retournée.

Voici les étapes effectuées pendant le processus de validation de la ParseValue méthode.

  1. Convertissez la chaîne spécifiée en son type CLR (Common Language Runtime) correspondant.

  2. Vérifiez que la valeur ne viole aucune facette définie pour le type simple.

La valeur convertie est ensuite retournée sous la forme d’un Object cast et peut être castée en toute sécurité vers le type retourné par la ValueType propriété.

Lorsque l’objet XmlSchemaDatatype représente un type de liste, la valeur de chaîne d’entrée est convertie en une liste d’un ou plusieurs objets. Lorsque l’objet XmlSchemaDatatype représente un type de liste, une tentative est effectuée pour analyser la valeur d’entrée en tant que type membre de l’union. Si la tentative d’analyse échoue, la conversion est tentée avec le membre suivant de l’union jusqu’à ce que l’analyse réussisse ou qu’il n’existe aucun autre type de membre à analyser. Si l’analyse échoue, une exception est levée.

S’applique à