共用方式為


XmlSchemaDatatype.ParseValue 方法

定義

多載

名稱 Description
ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

當在派生類別中覆寫時,會驗證 string 指定的內容是否符合內建或使用者定義的簡單型別。

ParseValue(String, XmlNameTable, XmlNamespaceManager)

當在衍生類別中覆寫時,會驗證指定字串是否符合內建或使用者定義的簡單型別。

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

來源:
XmlSchemaDataType.cs
來源:
XmlSchemaDataType.cs
來源:
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

在解析 時string,如果這個XmlSchemaDatatype物件代表 xs:NCName 類型,則使用 the XmlNameTable to 用於原子化。

nsmgr
IXmlNamespaceResolver

IXmlNamespaceResolver解析時該物件stringXmlSchemaDatatype是否代表 xs:QName 類型。

傳回

一個 Object 可以安全地鑄造成物業退還的 ValueType 類型。

例外狀況

輸入值並非此 W3C XML 架構類型的有效實例。

解析的值不可能是 null

範例

以下範例從 LotteryNumber example.xsd 檔案XmlSchemaSimpleType中取得簡單型別,並驗證string使用該ParseValue方法的5值。

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 的步驟。

  1. 將指定的 string 值轉換為其對應的通用語言執行時(CLR)類型。

  2. 確認該值沒有違反簡單型別定義的任何面向。

轉換後的值會以 a Object 格式回傳,並可安全地鑄造為屬性所回傳 ValueType 的類型。

當物件 XmlSchemaDatatype 代表一個清單類型時,輸入 string 值會被轉換成一個或多個物件的清單。 當物件 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 Not)。

備註

ParseValue 方法會根據內建或使用者定義的簡單型別驗證指定的字串。 例如,若此代表 XmlSchemaDatatype 型別 xs:date,則會回傳 的 DateTime 實例。

以下是方法驗證過程中執行 ParseValue 的步驟。

  1. 將指定的字串轉換為對應的通用語言執行時(CLR)型別。

  2. 確認該值沒有違反簡單型別定義的任何面向。

轉換後的值會以 回 Object 傳,並可安全地鑄造為屬性回傳 ValueType 的類型。

當物件 XmlSchemaDatatype 代表一個清單類型時,輸入字串值會轉換成一個或多個物件的清單。 當物件 XmlSchemaDatatype 代表一個清單型態時,會嘗試將輸入值解析為聯集的成員型別。 若解析失敗,則由下一個成員嘗試轉換,直到解析成功或無其他成員類型可解析為止。 若解析失敗,則拋出例外。

適用於