Aracılığıyla paylaş


XmlSchemaDatatype.ParseValue Yöntem

Tanım

Aşırı Yüklemeler

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

Türetilmiş bir sınıfta geçersiz kılındığında, yerleşik veya kullanıcı tanımlı basit bir türe göre belirtilen doğrular string .

ParseValue(String, XmlNameTable, XmlNamespaceManager)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen dizeyi yerleşik veya kullanıcı tanımlı basit bir türe göre doğrular.

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

Türetilmiş bir sınıfta geçersiz kılındığında, yerleşik veya kullanıcı tanımlı basit bir türe göre belirtilen doğrular string .

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

Parametreler

s
String

string basit türe göre doğrulamak için.

nameTable
XmlNameTable

XmlNameTable Bu XmlSchemaDatatype nesne xs:NCName türünü temsil ederse, ayrıştırırken string atomizasyon için kullanılacak.

nsmgr
IXmlNamespaceResolver

Bu IXmlNamespaceResolver XmlSchemaDatatype nesne xs:QName türünü temsil ederse öğesini ayrıştırırken string kullanılacak nesne.

Döndürülenler

Object

Object Özelliği tarafından ValueType döndürülen türe güvenli bir şekilde aktarılabilir.

Özel durumlar

Giriş değeri bu W3C XML Şema türünün geçerli bir örneği değil.

Ayrıştırılacak değer olamaz null.

Örnekler

Aşağıdaki örnek, example.xsd dosyasından basit türü olarak alır LotteryNumber ve yöntemini kullanarak ParseValue değerini 5 doğrularstring.XmlSchemaSimpleType

#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

Yukarıdaki kod örneği için aşağıdaki XML dosyası kullanılır.

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

Açıklamalar

yöntemi, ParseValue belirtilen öğesini string yerleşik veya kullanıcı tanımlı basit bir türe göre doğrular. Örneğin, bu XmlSchemaDatatype xs:date türünü temsil ederse bir örneği DateTime döndürülür.

Yöntemin doğrulama işlemi sırasında ParseValue gerçekleştirilen adımlar aşağıdadır.

  1. olarak string belirtilen değeri ilgili Ortak Dil Çalışma Zamanı (CLR) türüne dönüştürün.

  2. Değerin basit tür için tanımlanan modelleri ihlal etmediğinden emin olun.

Dönüştürülen değer daha sonra bir Object olarak döndürülür ve özelliği tarafından ValueType döndürülen türe güvenli bir şekilde yayınlanabilir.

XmlSchemaDatatype Nesne bir liste türünü temsil ettiğinde, giriş string değeri bir veya daha fazla nesnenin listesine dönüştürülür. XmlSchemaDatatype Nesne bir liste türünü temsil ettiğinde, giriş değerini birleşim üye türü olarak ayrıştırmaya çalışılır. Ayrıştırma girişimi başarısız olursa, ayrıştırma başarılı olana veya ayrıştırmak için başka üye türü olmayana kadar dönüştürme işlemi birleşimin bir sonraki üyesiyle denenir. Ayrıştırma başarısız olursa, bir özel durum oluşturulur.

Şunlara uygulanır

ParseValue(String, XmlNameTable, XmlNamespaceManager)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen dizeyi yerleşik veya kullanıcı tanımlı basit bir türe göre doğrular.

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

Parametreler

s
String

Basit türe göre doğrulanması gereken dize.

nameTable
XmlNameTable

XmlNameTable Bu XmlSchemaDatatype nesne xs:NCName türünü temsil ederse, dize ayrıştırırken atomizasyon için kullanılacak.

nsmgr
XmlNamespaceManager

Bu XmlNamespaceManager XmlSchemaDatatype nesne xs:QName türünü temsil ederse dize ayrıştırırken kullanılacak nesne.

Döndürülenler

Object

Object özelliği tarafından ValueType döndürülen türe güvenli bir şekilde yayınlanabilir.

Özel durumlar

Giriş değeri bu W3C XML Şema türünün geçerli bir örneği değil.

Ayrıştırılacak değer null olamaz (Visual Basic hiçbir şey).

Açıklamalar

yöntemi, ParseValue belirtilen dizeyi yerleşik veya kullanıcı tanımlı basit bir türe göre doğrular. Örneğin, bu XmlSchemaDatatype xs:date türünü temsil ederse bir örneği DateTime döndürülür.

Yöntemin doğrulama işlemi sırasında ParseValue gerçekleştirilen adımlar aşağıdadır.

  1. Belirtilen dizeyi ilgili Ortak Dil Çalışma Zamanı (CLR) türüne dönüştürün.

  2. Değerin basit tür için tanımlanan modelleri ihlal etmediğinden emin olun.

Dönüştürülen değer daha sonra bir Object olarak döndürülür ve özelliği tarafından ValueType döndürülen türe güvenli bir şekilde dönüştürülebilir.

XmlSchemaDatatype Nesne bir liste türünü temsil ettiğinde, giriş dizesi değeri bir veya daha fazla nesnenin listesine dönüştürülür. XmlSchemaDatatype Nesne bir liste türünü temsil ettiğinde, giriş değerini birleşim üye türü olarak ayrıştırmaya çalışılır. Ayrıştırma girişimi başarısız olursa, ayrıştırma başarılı olana veya ayrıştırmak için başka üye türü olmayana kadar dönüştürme işlemi birleşimin bir sonraki üyesiyle denenir. Ayrıştırma başarısız olursa, bir özel durum oluşturulur.

Şunlara uygulanır