次の方法で共有


XmlSchemaDatatype.ParseValue メソッド

定義

オーバーロード

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

派生クラスでオーバーライドされると、組み込みの単純型またはユーザー定義の単純型に対して指定された string を検証します。

ParseValue(String, XmlNameTable, XmlNamespaceManager)

派生クラスでオーバーライドされると、組み込みの単純型またはユーザー定義の単純型に対して指定された文字列を検証します。

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

ソース:
XmlSchemaDataType.cs
ソース:
XmlSchemaDataType.cs
ソース:
XmlSchemaDataType.cs

派生クラスでオーバーライドされると、組み込みの単純型またはユーザー定義の単純型に対して指定された 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

パラメーター

s
String

単純型に対して検証する string

nameTable
XmlNameTable

この XmlNameTable オブジェクトが xs:NCName 型を表す場合に、string の解析時に最小単位に分割するために使用する XmlSchemaDatatype

nsmgr
IXmlNamespaceResolver

この IXmlNamespaceResolver オブジェクトが xs:QName 型を表す場合に、string の解析時に使用する XmlSchemaDatatype オブジェクト。

戻り値

Object プロパティで返される型に安全にキャストできる ValueType

例外

入力値は、この W3C XML スキーマ型の有効なインスタンスではありません。

解析する値を null にすることはできません。

次の例では、LotteryNumberexample.xsd ファイルから 単純型を としてXmlSchemaSimpleType取得し、 メソッドを使用して の5値をstringParseValue検証します。

#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

前のコード例では、次の XML ファイルを使用します。

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

注釈

メソッドは ParseValuestring 組み込みまたはユーザー定義の単純型に対して指定された を検証します。 たとえば、これが XmlSchemaDatatype xs:date 型を表す場合、 の DateTime インスタンスが返されます。

メソッドの検証プロセス中に実行される手順を ParseValue 次に示します。

  1. として string 指定された値を、対応する共通言語ランタイム (CLR) 型に変換します。

  2. 値が単純型に対して定義されているファセットに違反していないことを確認します。

変換後の値は として Object 返され、 プロパティによって ValueType 返される型に安全にキャストできます。

オブジェクトがリスト型 XmlSchemaDatatype を表す場合、入力 string 値は 1 つ以上のオブジェクトのリストに変換されます。 オブジェクトが XmlSchemaDatatype リスト型を表す場合、入力値を共用体のメンバー型として解析しようとします。 解析の試行が失敗した場合、解析が成功するか、解析する他のメンバー型がないまで、和集合の次のメンバーで変換が試行されます。 解析が失敗した場合は、例外がスローされます。

適用対象

ParseValue(String, XmlNameTable, XmlNamespaceManager)

派生クラスでオーバーライドされると、組み込みの単純型またはユーザー定義の単純型に対して指定された文字列を検証します。

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

パラメーター

s
String

単純型に対して検証する文字列。

nameTable
XmlNameTable

この XmlSchemaDatatype オブジェクトが xs:NCName 型を表す場合に、文字列の解析時に最小単位に分割するために使用する XmlNameTable

nsmgr
XmlNamespaceManager

この XmlSchemaDatatype オブジェクトが xs:QName 型を表す場合に、文字列の解析時に使用する XmlNamespaceManager オブジェクト。

戻り値

Object プロパティで返される型に安全にキャストできる ValueType

例外

入力値は、この W3C XML スキーマ型の有効なインスタンスではありません。

解析対象の値を null (Visual Basic では Nothing) にすることはできません。

注釈

メソッドは ParseValue 、指定された文字列を組み込みまたはユーザー定義の単純型に対して検証します。 たとえば、これが XmlSchemaDatatype xs:date 型を表す場合、 の DateTime インスタンスが返されます。

メソッドの検証プロセス中に実行される手順を ParseValue 次に示します。

  1. 指定した文字列を対応する共通言語ランタイム (CLR) 型に変換します。

  2. 値が、単純型に対して定義されているファセットに違反していないことを確認します。

変換後の値は として Object 返され、 プロパティによって返される型に安全に ValueType キャストできます。

オブジェクトが XmlSchemaDatatype リスト型を表す場合、入力文字列値は 1 つ以上のオブジェクトのリストに変換されます。 オブジェクトが XmlSchemaDatatype リスト型を表す場合、入力値を共用体のメンバー型として解析しようとします。 解析の試行が失敗した場合、解析が成功するか、解析する他のメンバー型がないまで、和集合の次のメンバーで変換が試行されます。 解析が失敗した場合は、例外がスローされます。

適用対象