다음을 통해 공유


XmlSchemaDatatype.ParseValue 메서드

정의

오버로드

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

파생 클래스에서 재정의된 경우 기본 제공되거나 사용자 정의된 단순 형식에 대해 지정한 string의 유효성을 검사합니다.

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

Object 속성에서 반환하는 형식으로 안전하게 캐스팅할 수 있는 ValueType입니다.

예외

입력 값이 이 W3C XML 스키마 형식의 올바른 인스턴스가 아닌 경우

구문 분석할 값이 null인 경우

예제

다음 예제 LotteryNumber 에서는 example.xsd 파일에서 단순 형식을 검색한 XmlSchemaSimpleType 다음 메서드 사용 ParseValue 값의 5 유효성을 검사합니다string.

#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 합니다. 예를 들어 xs XmlSchemaDatatype :date 형식을 나타내는 경우 인스턴스 DateTime 가 반환됩니다.

다음은 메서드의 유효성 검사 프로세스 중에 ParseValue 수행되는 단계입니다.

  1. 지정된 값을 해당 CLR(공용 언어 런타임) 형식으로 string 변환합니다.

  2. 값이 단순 형식에 대해 정의된 패싯을 위반하지 않는지 확인합니다.

변환된 값은 다음으로 Object 반환 되 고 속성에서 반환 ValueType 된 형식에 안전 하 게 캐스팅할 수 있습니다.

개체가 XmlSchemaDatatype 목록 형식을 나타내는 경우 입력 string 값은 하나 이상의 개체 목록으로 변환됩니다. 개체가 XmlSchemaDatatype 목록 형식을 나타내는 경우 입력 값을 공용 구조체의 멤버 형식으로 구문 분석하려고 시도합니다. 구문 분석 시도가 실패하면 구문 분석이 성공하거나 구문 분석할 다른 멤버 형식이 없을 때까지 공용 구조체의 다음 멤버와 함께 변환을 시도합니다. 구문 분석이 실패하면 예외가 throw됩니다.

적용 대상

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

Object 속성에서 반환하는 형식으로 안전하게 캐스팅할 수 있는 ValueType입니다.

예외

입력 값이 이 W3C XML 스키마 형식의 올바른 인스턴스가 아닌 경우

구문 분석할 값은 null(Visual Basic에서는 Nothing)일 수 없습니다.

설명

이 메서드는 ParseValue 기본 제공 또는 사용자 정의 단순 형식에 대해 지정된 문자열의 유효성을 검사합니다. 예를 들어 xs XmlSchemaDatatype :date 형식을 나타내는 경우 인스턴스 DateTime 가 반환됩니다.

다음은 메서드의 유효성 검사 프로세스 중에 ParseValue 수행되는 단계입니다.

  1. 지정된 문자열을 해당 CLR(공용 언어 런타임) 형식으로 변환합니다.

  2. 값이 단순 형식에 대해 정의된 패싯을 위반하지 않는지 확인합니다.

변환된 값은 다음으로 Object 반환 되 고 속성에서 반환 ValueType 되는 형식에 안전 하 게 캐스팅할 수 있습니다.

개체가 XmlSchemaDatatype 목록 형식을 나타내는 경우 입력 문자열 값은 하나 이상의 개체 목록으로 변환됩니다. 개체가 XmlSchemaDatatype 목록 형식을 나타내는 경우 입력 값을 공용 구조체의 멤버 형식으로 구문 분석하려고 시도합니다. 구문 분석 시도가 실패하면 구문 분석이 성공하거나 구문 분석할 다른 멤버 형식이 없을 때까지 공용 구조체의 다음 멤버와 함께 변환을 시도합니다. 구문 분석이 실패하면 예외가 throw됩니다.

적용 대상