Sdílet prostřednictvím


XmlSchemaDatatype.ParseValue Metoda

Definice

Přetížení

Name Description
ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

Při přepsání v odvozené třídě ověří string zadané proti předdefinovanému nebo uživatelem definovanému jednoduchému typu.

ParseValue(String, XmlNameTable, XmlNamespaceManager)

Při přepsání v odvozené třídě ověří zadaný řetězec proti předdefinovanému nebo uživatelem definovanému jednoduchému typu.

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

Zdroj:
XmlSchemaDataType.cs
Zdroj:
XmlSchemaDataType.cs
Zdroj:
XmlSchemaDataType.cs
Zdroj:
XmlSchemaDataType.cs
Zdroj:
XmlSchemaDataType.cs

Při přepsání v odvozené třídě ověří string zadané proti předdefinovanému nebo uživatelem definovanému jednoduchému typu.

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

Parametry

s
String

Ověření string proti jednoduchému typu.

nameTable
XmlNameTable

Použití XmlNameTable pro atomizaci při analýze string , pokud tento XmlSchemaDatatype objekt představuje typ xs:NCName.

nsmgr
IXmlNamespaceResolver

Objekt IXmlNamespaceResolver , který se má použít při analýze string , pokud tento XmlSchemaDatatype objekt představuje typ xs:QName.

Návraty

Objekt Object , který lze bezpečně přetypovat na typ vrácený ValueType vlastností.

Výjimky

Vstupní hodnota není platnou instancí tohoto typu schématu W3C XML.

Hodnota, která se má analyzovat, nemůže být null.

Příklady

Následující příklad načte LotteryNumber jednoduchý typ ze souboru example.xsd jako an XmlSchemaSimpleType a pak ověří string hodnotu 5 pomocí ParseValue metody.

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

Následující soubor XML se používá pro předchozí příklad kódu.

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

Poznámky

Metoda ParseValue ověří string zadaný typ proti předdefinovanému nebo uživatelem definovanému jednoduchému typu. Pokud například představuje XmlSchemaDatatype typ xs:date, vrátí se instance DateTime .

Následuje postup provedený během ParseValue procesu ověření metody.

  1. Převeďte hodnotu zadanou string jako typ modulu CLR (Common Language Runtime).

  2. Ověřte, že hodnota neporušuje žádné omezující vlastnosti definované pro jednoduchý typ.

Převedená hodnota se pak vrátí jako a Object lze ji bezpečně přetypovat na typ vrácený ValueType vlastností.

XmlSchemaDatatype Pokud objekt představuje typ seznamu, vstupní string hodnota se převede na seznam jednoho nebo více objektů. XmlSchemaDatatype Pokud objekt představuje typ seznamu, pokusí se analyzovat vstupní hodnotu jako typ člena sjednocení. Pokud pokus o analýzu selže, pokusí se převod provést s dalším členem sjednocení, dokud nebude analýza úspěšná nebo neexistují žádné další typy členů k analýze. Pokud je analýza neúspěšná, vyvolá se výjimka.

Platí pro

ParseValue(String, XmlNameTable, XmlNamespaceManager)

Při přepsání v odvozené třídě ověří zadaný řetězec proti předdefinovanému nebo uživatelem definovanému jednoduchému typu.

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

Parametry

s
String

Řetězec, který se má ověřit v jednoduchém typu.

nameTable
XmlNameTable

Použití XmlNameTable pro atomizaci při analýze řetězce, pokud tento XmlSchemaDatatype objekt představuje typ xs:NCName.

nsmgr
XmlNamespaceManager

Objekt XmlNamespaceManager , který se má použít při analýze řetězce, pokud tento XmlSchemaDatatype objekt představuje typ xs:QName.

Návraty

Lze Object bezpečně přetypovat na typ, který je vrácen vlastností ValueType .

Výjimky

Vstupní hodnota není platnou instancí tohoto typu schématu W3C XML.

Hodnota, která se má analyzovat, nemůže mít hodnotu null (v jazyce Visual Basic nic).

Poznámky

Metoda ParseValue ověří zadaný řetězec proti předdefinovanému nebo uživatelem definovanému jednoduchému typu. Pokud například představuje XmlSchemaDatatype typ xs:date, vrátí se instance DateTime .

Následuje postup provedený během ParseValue procesu ověření metody.

  1. Převeďte zadaný řetězec na odpovídající typ CLR (Common Language Runtime).

  2. Ověřte, že hodnota neporušuje žádné omezující vlastnosti definované pro jednoduchý typ.

Převedená hodnota se pak vrátí jako Object a lze ji bezpečně přetypovat na typ, který je vrácen vlastností ValueType .

XmlSchemaDatatype Pokud objekt představuje typ seznamu, vstupní řetězcová hodnota se převede na seznam jednoho nebo více objektů. XmlSchemaDatatype Pokud objekt představuje typ seznamu, pokusí se analyzovat vstupní hodnotu jako typ člena sjednocení. Pokud pokus o analýzu selže, pokusí se převod provést s dalším členem sjednocení, dokud nebude analýza úspěšná nebo neexistují žádné další typy členů k analýze. Pokud je analýza neúspěšná, vyvolá se výjimka.

Platí pro