XmlSchemaDatatype.ParseValue メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
ParseValue(String, XmlNameTable, IXmlNamespaceResolver) |
派生クラスでオーバーライドされると、組み込みの単純型またはユーザー定義の単純型に対して指定された |
ParseValue(String, XmlNameTable, XmlNamespaceManager) |
派生クラスでオーバーライドされると、組み込みの単純型またはユーザー定義の単純型に対して指定された文字列を検証します。 |
ParseValue(String, XmlNameTable, IXmlNamespaceResolver)
派生クラスでオーバーライドされると、組み込みの単純型またはユーザー定義の単純型に対して指定された 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
にすることはできません。
例
次の例では、LotteryNumber
example.xsd ファイルから 単純型を としてXmlSchemaSimpleType取得し、 メソッドを使用して の5
値をstring
ParseValue検証します。
#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>
注釈
メソッドは ParseValue 、 string
組み込みまたはユーザー定義の単純型に対して指定された を検証します。 たとえば、これが XmlSchemaDatatype xs:date 型を表す場合、 の DateTime インスタンスが返されます。
メソッドの検証プロセス中に実行される手順を ParseValue 次に示します。
として
string
指定された値を、対応する共通言語ランタイム (CLR) 型に変換します。値が単純型に対して定義されているファセットに違反していないことを確認します。
変換後の値は として 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 次に示します。
指定した文字列を対応する共通言語ランタイム (CLR) 型に変換します。
値が、単純型に対して定義されているファセットに違反していないことを確認します。
変換後の値は として Object 返され、 プロパティによって返される型に安全に ValueType キャストできます。
オブジェクトが XmlSchemaDatatype リスト型を表す場合、入力文字列値は 1 つ以上のオブジェクトのリストに変換されます。 オブジェクトが XmlSchemaDatatype リスト型を表す場合、入力値を共用体のメンバー型として解析しようとします。 解析の試行が失敗した場合、解析が成功するか、解析する他のメンバー型がないまで、和集合の次のメンバーで変換が試行されます。 解析が失敗した場合は、例外がスローされます。
適用対象
.NET