Поделиться через


XmlSchemaDatatype.ParseValue Метод

Определение

Перегрузки

Имя Описание
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

Используется XmlNameTable для атомизации при синтаксическом анализе string , если этот XmlSchemaDatatype объект представляет тип xs:NCName.

nsmgr
IXmlNamespaceResolver

Объект IXmlNamespaceResolver , используемый при синтаксическом анализе string , XmlSchemaDatatype представляет тип xs:QName.

Возвращаемое значение

Значение Object , которое можно безопасно привести к типу, возвращаемого свойством ValueType .

Исключения

Входное значение не является допустимым экземпляром этого типа схемы XML W3C.

Значение для синтаксического анализа не может быть null.

Примеры

В следующем примере извлекается простой LotteryNumber тип из файла example.xsd в виде XmlSchemaSimpleType файла, а затем проверяется string значение 5 метода ParseValue .

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. Убедитесь, что значение не нарушает какие-либо аспекты, определенные для простого типа.

Преобразованное значение возвращается в качестве значения 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

Используется XmlNameTable для атомизации при синтаксическом анализе строки, если этот XmlSchemaDatatype объект представляет тип xs:NCName.

nsmgr
XmlNamespaceManager

Объект XmlNamespaceManager , используемый при синтаксическом анализе строки, если этот XmlSchemaDatatype объект представляет тип xs:QName.

Возвращаемое значение

Значение Object , которое можно безопасно привести к типу, возвращаемого свойством ValueType .

Исключения

Входное значение не является допустимым экземпляром этого типа схемы XML W3C.

Значение для синтаксического анализа не может иметь значение NULL (Nothing в Visual Basic).

Комментарии

Метод ParseValue проверяет указанную строку по встроенному или пользовательскому простому типу. Например, если это XmlSchemaDatatype представляет тип xs:date, возвращается экземпляр DateTime .

Ниже приведены шаги, выполняемые во время ParseValue процесса проверки метода.

  1. Преобразуйте указанную строку в соответствующий тип среды CLR.

  2. Убедитесь, что значение не нарушает какие-либо аспекты, определенные для простого типа.

Преобразованное значение возвращается в качестве значения Object и может быть безопасно приведение к типу, возвращаемого свойством ValueType .

XmlSchemaDatatype Когда объект представляет тип списка, входное строковое значение преобразуется в список одного или нескольких объектов. XmlSchemaDatatype Когда объект представляет тип списка, предпринимается попытка проанализировать входное значение как тип члена объединения. Если попытка синтаксического анализа завершается ошибкой, преобразование выполняется с помощью следующего члена объединения, пока синтаксический анализ не будет выполнен успешно или нет других типов элементов для анализа. Если синтаксический анализ не выполнен, создается исключение.

Применяется к