Udostępnij za pośrednictwem


XmlSchemaDatatype.ParseValue Metoda

Definicja

Przeciążenia

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

Po przesłonięciu w klasie pochodnej sprawdza poprawność string określonego dla wbudowanego lub zdefiniowanego przez użytkownika prostego typu.

ParseValue(String, XmlNameTable, XmlNamespaceManager)

Po przesłonięciu w klasie pochodnej sprawdza poprawność określonego ciągu względem wbudowanego lub zdefiniowanego przez użytkownika prostego typu.

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

Źródło:
XmlSchemaDataType.cs
Źródło:
XmlSchemaDataType.cs
Źródło:
XmlSchemaDataType.cs

Po przesłonięciu w klasie pochodnej sprawdza poprawność string określonego dla wbudowanego lub zdefiniowanego przez użytkownika prostego typu.

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

Parametry

s
String

Element string do weryfikacji względem prostego typu.

nameTable
XmlNameTable

Element XmlNameTable , który ma być używany do atomizacji podczas analizowania, string jeśli ten XmlSchemaDatatype obiekt reprezentuje typ xs:NCName.

nsmgr
IXmlNamespaceResolver

Obiekt IXmlNamespaceResolver do użycia podczas analizowania string , jeśli ten XmlSchemaDatatype obiekt reprezentuje typ xs:QName.

Zwraca

Element Object , który można bezpiecznie rzutować do typu zwróconego ValueType przez właściwość.

Wyjątki

Wartość wejściowa nie jest prawidłowym wystąpieniem tego typu schematu XML W3C.

Nie można nullprzeanalizować wartości .

Przykłady

Poniższy przykład pobiera LotteryNumber prosty typ z pliku example.xsd jako element , XmlSchemaSimpleType a następnie weryfikuje string wartość 5 przy użyciu ParseValue metody .

#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

Poniższy plik XML jest używany w poprzednim przykładzie kodu.

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

Uwagi

Metoda ParseValue sprawdza poprawność określonego string dla wbudowanego lub zdefiniowanego przez użytkownika prostego typu. Jeśli na przykład reprezentuje typ XmlSchemaDatatype xs:date, zwracane jest wystąpienie klasy DateTime .

Poniżej przedstawiono kroki wykonywane podczas ParseValue procesu weryfikacji metody.

  1. Przekonwertuj wartość określoną jako wartość string na odpowiedni typ środowiska uruchomieniowego języka wspólnego (CLR).

  2. Sprawdź, czy wartość nie narusza żadnych aspektów zdefiniowanych dla prostego typu.

Przekonwertowana wartość jest następnie zwracana jako element Object i można bezpiecznie rzutować do typu zwróconego ValueType przez właściwość.

XmlSchemaDatatype Gdy obiekt reprezentuje typ listy, wartość wejściowa string jest konwertowana na listę co najmniej jednego obiektu. XmlSchemaDatatype Gdy obiekt reprezentuje typ listy, podjęto próbę przeanalizowana wartości wejściowej jako typu składowego unii. Jeśli próba analizy zakończy się niepowodzeniem, konwersja zostanie podjęta przy użyciu następnego elementu członkowskiego unii, dopóki analizowanie nie powiedzie się lub nie ma innych typów składowych do analizowania. Jeśli analizowanie nie powiedzie się, zostanie zgłoszony wyjątek.

Dotyczy

ParseValue(String, XmlNameTable, XmlNamespaceManager)

Po przesłonięciu w klasie pochodnej sprawdza poprawność określonego ciągu względem wbudowanego lub zdefiniowanego przez użytkownika prostego typu.

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

Parametry

s
String

Ciąg do weryfikacji względem prostego typu.

nameTable
XmlNameTable

Element XmlNameTable do użycia do atomizacji podczas analizowania ciągu, jeśli ten XmlSchemaDatatype obiekt reprezentuje typ xs:NCName.

nsmgr
XmlNamespaceManager

Obiekt XmlNamespaceManager używany podczas analizowania ciągu, jeśli ten XmlSchemaDatatype obiekt reprezentuje typ xs:QName.

Zwraca

Element Object , który można bezpiecznie rzutować do typu zwracanego przez ValueType właściwość.

Wyjątki

Wartość wejściowa nie jest prawidłowym wystąpieniem tego typu schematu XML W3C.

Nie można przeanalizować wartości null (Nic w Visual Basic).

Uwagi

Metoda ParseValue weryfikuje określony ciąg względem wbudowanego lub zdefiniowanego przez użytkownika prostego typu. Jeśli na przykład reprezentuje typ XmlSchemaDatatype xs:date, zwracane jest wystąpienie klasy DateTime .

Poniżej przedstawiono kroki wykonywane podczas ParseValue procesu weryfikacji metody.

  1. Przekonwertuj określony ciąg na odpowiedni typ środowiska uruchomieniowego języka wspólnego (CLR).

  2. Sprawdź, czy wartość nie narusza żadnych aspektów zdefiniowanych dla prostego typu.

Przekonwertowana wartość jest następnie zwracana jako element Object i można bezpiecznie rzutować do typu zwracanego przez ValueType właściwość .

XmlSchemaDatatype Gdy obiekt reprezentuje typ listy, wartość ciągu wejściowego jest konwertowana na listę co najmniej jednego obiektu. XmlSchemaDatatype Gdy obiekt reprezentuje typ listy, podjęto próbę przeanalizowana wartości wejściowej jako typu składowego unii. Jeśli próba analizy zakończy się niepowodzeniem, konwersja zostanie podjęta przy użyciu następnego elementu członkowskiego unii, dopóki analizowanie nie powiedzie się lub nie ma innych typów składowych do analizowania. Jeśli analizowanie nie powiedzie się, zostanie zgłoszony wyjątek.

Dotyczy