XmlSchemaDatatype.ParseValue Methode

Definition

Überlädt

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

Überprüft beim Überschreiben in einer abgeleiteten Klasse den string, der anhand eines integrierten oder benutzerdefinierten einfachen Typs angegeben wurde.

ParseValue(String, XmlNameTable, XmlNamespaceManager)

Überprüft beim Überschreiben in einer abgeleiteten Klasse die angegebene Zeichenfolge anhand eines integrierten oder benutzerdefinierten einfachen Typs.

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

Source:
XmlSchemaDataType.cs
Source:
XmlSchemaDataType.cs
Source:
XmlSchemaDataType.cs

Überprüft beim Überschreiben in einer abgeleiteten Klasse den string, der anhand eines integrierten oder benutzerdefinierten einfachen Typs angegeben wurde.

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

Parameter

s
String

Der string, der anhand des einfachen Typs überprüft werden soll.

nameTable
XmlNameTable

Die XmlNameTable, die bei der Analyse des string für die Atomisierung verwendet werden soll, wenn dieses XmlSchemaDatatype-Objekt den xs:NCName-Typ darstellt.

nsmgr
IXmlNamespaceResolver

Das IXmlNamespaceResolver-Objekt, das bei der Analyse des string verwendet werden soll, wenn dieses XmlSchemaDatatype-Objekt den xs:QName-Typ darstellt.

Gibt zurück

Ein Object, das auf sichere Weise in den von der ValueType-Eigenschaft zurückgegebenen Typ umgewandelt werden kann.

Ausnahmen

Der Eingabewert ist keine gültige Instanz dieses W3C-XML-Schematyps.

Der zu analysierende Wert darf nicht null sein.

Beispiele

Im folgenden Beispiel wird der LotteryNumber einfache Typ aus der Datei example.xsd als abgerufen XmlSchemaSimpleType und anschließend der string Wert von 5 mithilfe der ParseValue -Methode überprüft.

#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

Die folgende XML-Datei wird für das vorangehende Codebeispiel verwendet.

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

Hinweise

Die ParseValue -Methode überprüft das string angegebene anhand eines integrierten oder benutzerdefinierten einfachen Typs. Wenn dies XmlSchemaDatatype beispielsweise den Typ xs:date darstellt, wird eine Instanz von DateTime zurückgegeben.

Im Folgenden werden die Schritte aufgeführt, die während des Validierungsprozesses der ParseValue Methode ausgeführt werden.

  1. Konvertieren Sie den als angegebenen string Wert in den entsprechenden CLR-Typ (Common Language Runtime).

  2. Stellen Sie sicher, dass der Wert keine für den einfachen Typ definierten Facetten verletzt.

Der konvertierte Wert wird dann als Object zurückgegeben und kann sicher in den von der ValueType -Eigenschaft zurückgegebenen Typ umgewandelt werden.

Wenn das XmlSchemaDatatype Objekt einen Listentyp darstellt, wird der Eingabewert string in eine Liste mit mindestens einem Objekt konvertiert. Wenn das XmlSchemaDatatype Objekt einen Listentyp darstellt, wird versucht, den Eingabewert als Membertyp der Union zu analysieren. Wenn der Analyseversuch fehlschlägt, wird die Konvertierung mit dem nächsten Member der Union versucht, bis die Analyse erfolgreich ist oder keine anderen Membertypen zu analysieren sind. Wenn die Analyse nicht erfolgreich ist, wird eine Ausnahme ausgelöst.

Gilt für:

ParseValue(String, XmlNameTable, XmlNamespaceManager)

Überprüft beim Überschreiben in einer abgeleiteten Klasse die angegebene Zeichenfolge anhand eines integrierten oder benutzerdefinierten einfachen Typs.

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

Parameter

s
String

Die Zeichenfolge, die anhand des einfachen Typs überprüft werden soll.

nameTable
XmlNameTable

Die XmlNameTable, die bei der Analyse der Zeichenfolge für die Atomisierung verwendet werden soll, wenn dieses XmlSchemaDatatype-Objekt den xs:NCName-Typ darstellt.

nsmgr
XmlNamespaceManager

Das XmlNamespaceManager-Objekt, das bei der Analyse der Zeichenfolge verwendet werden soll, wenn dieses XmlSchemaDatatype-Objekt den xs:QName-Typ darstellt.

Gibt zurück

Ein Object, das auf sichere Weise in den von der ValueType-Eigenschaft zurückgegebenen Typ umgewandelt werden kann.

Ausnahmen

Der Eingabewert ist keine gültige Instanz dieses W3C-XML-Schematyps.

Der zu analysierende Wert kann nicht NULL sein („Nothing“ in Visual Basic).

Hinweise

Die ParseValue -Methode überprüft die angegebene Zeichenfolge anhand eines integrierten oder benutzerdefinierten einfachen Typs. Wenn dies XmlSchemaDatatype beispielsweise den Typ xs:date darstellt, wird eine Instanz von DateTime zurückgegeben.

Im Folgenden werden die Schritte aufgeführt, die während des Validierungsprozesses der ParseValue Methode ausgeführt werden.

  1. Konvertieren Sie die angegebene Zeichenfolge in den entsprechenden CLR-Typ (Common Language Runtime).

  2. Stellen Sie sicher, dass der Wert keine Facets verletzt, die für den einfachen Typ definiert sind.

Der konvertierte Wert wird dann als Object zurückgegeben und kann sicher in den Typ umgewandelt werden, der von der ValueType -Eigenschaft zurückgegeben wird.

Wenn das XmlSchemaDatatype Objekt einen Listentyp darstellt, wird der Wert der Eingabezeichenfolge in eine Liste mit mindestens einem Objekt konvertiert. Wenn das XmlSchemaDatatype Objekt einen Listentyp darstellt, wird versucht, den Eingabewert als Membertyp der Union zu analysieren. Wenn der Analyseversuch fehlschlägt, wird die Konvertierung mit dem nächsten Member der Union versucht, bis die Analyse erfolgreich ist oder keine anderen Membertypen zu analysieren sind. Wenn die Analyse nicht erfolgreich ist, wird eine Ausnahme ausgelöst.

Gilt für: