Sdílet prostřednictvím


XmlSchemaDatatype.ParseValue Metoda

Definice

Přetížení

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

Při přepsání v odvozené třídě ověří string zadané proti integrované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 integrovanému nebo uživatelem definovanému jednoduchému typu.

ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

Při přepsání v odvozené třídě ověří string zadané proti integrované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

Object

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

Výjimky

Vstupní hodnota není platná instance tohoto typu schématu W3C XML.

Hodnota, která se má analyzovat, nesmí být null.

Příklady

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

#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

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 předdefinovaného nebo uživatelem definovaného jednoduchého typu. Pokud to XmlSchemaDatatype například představuje typ xs:date, vrátí se instance DateTime .

Následující kroky se provádějí během ParseValue procesu ověřování metody.

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

  2. Ověřte, že hodnota poruš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 se pokus o analýzu nezdaří, pokusí se převod provést s dalším členem sjednocení, dokud nebude analýza úspěšná nebo neexistují žádné jiné 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 integrované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

Object

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

Výjimky

Vstupní hodnota není platná instance tohoto typu schématu W3C XML.

Hodnota, která se má analyzovat, nesmí být null (Nic v Visual Basic).

Poznámky

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

Následující kroky se provádějí během ParseValue procesu ověřování metody.

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

  2. Ověřte, že hodnota nerespektuje žá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 ValueType vlastností.

XmlSchemaDatatype Když 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 se pokus o analýzu nezdaří, pokusí se převod provést s dalším členem sjednocení, dokud nebude analýza úspěšná nebo neexistují žádné jiné typy členů k analýze. Pokud je analýza neúspěšná, vyvolá se výjimka.

Platí pro