XmlSchemaDatatype.ParseValue Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
ParseValue(String, XmlNameTable, IXmlNamespaceResolver) |
Při přepsání v odvozené třídě ověří |
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
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.
Převeďte hodnotu zadanou jako typ
string
modulu CLR (Common Language Runtime).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
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.
Převeďte zadaný řetězec na odpovídající typ CLR (Common Language Runtime).
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.