XmlSchemaDatatype.ParseValue Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
ParseValue(String, XmlNameTable, IXmlNamespaceResolver) |
Po przesłonięciu w klasie pochodnej sprawdza poprawność |
ParseValue(String, XmlNameTable, XmlNamespaceManager) |
Po przesłonięciu w klasie pochodnej sprawdza poprawność określonego ciągu względem wbudowanego lub zdefiniowanego przez użytkownika prostego typu. |
ParseValue(String, XmlNameTable, IXmlNamespaceResolver)
- Źródło:
- XmlSchemaDataType.cs
- Źródło:
- XmlSchemaDataType.cs
- Źródło:
- XmlSchemaDataType.cs
Po przesłonięciu w klasie pochodnej sprawdza poprawność string
określonego dla wbudowanego lub zdefiniowanego przez użytkownika prostego 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
Element string
do weryfikacji względem prostego typu.
- nameTable
- XmlNameTable
Element XmlNameTable , który ma być używany do atomizacji podczas analizowania, string
jeśli ten XmlSchemaDatatype obiekt reprezentuje typ xs:NCName.
- nsmgr
- IXmlNamespaceResolver
Obiekt IXmlNamespaceResolver do użycia podczas analizowania string
, jeśli ten XmlSchemaDatatype obiekt reprezentuje typ xs:QName.
Zwraca
Element Object , który można bezpiecznie rzutować do typu zwróconego ValueType przez właściwość.
Wyjątki
Wartość wejściowa nie jest prawidłowym wystąpieniem tego typu schematu XML W3C.
Nie można null
przeanalizować wartości .
Przykłady
Poniższy przykład pobiera LotteryNumber
prosty typ z pliku example.xsd jako element , XmlSchemaSimpleType a następnie weryfikuje string
wartość 5
przy użyciu 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
Poniższy plik XML jest używany w poprzednim przykładzie kodu.
<?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>
Uwagi
Metoda ParseValue sprawdza poprawność określonego string
dla wbudowanego lub zdefiniowanego przez użytkownika prostego typu. Jeśli na przykład reprezentuje typ XmlSchemaDatatype xs:date, zwracane jest wystąpienie klasy DateTime .
Poniżej przedstawiono kroki wykonywane podczas ParseValue procesu weryfikacji metody.
Przekonwertuj wartość określoną jako wartość
string
na odpowiedni typ środowiska uruchomieniowego języka wspólnego (CLR).Sprawdź, czy wartość nie narusza żadnych aspektów zdefiniowanych dla prostego typu.
Przekonwertowana wartość jest następnie zwracana jako element Object i można bezpiecznie rzutować do typu zwróconego ValueType przez właściwość.
XmlSchemaDatatype Gdy obiekt reprezentuje typ listy, wartość wejściowa string
jest konwertowana na listę co najmniej jednego obiektu.
XmlSchemaDatatype Gdy obiekt reprezentuje typ listy, podjęto próbę przeanalizowana wartości wejściowej jako typu składowego unii. Jeśli próba analizy zakończy się niepowodzeniem, konwersja zostanie podjęta przy użyciu następnego elementu członkowskiego unii, dopóki analizowanie nie powiedzie się lub nie ma innych typów składowych do analizowania. Jeśli analizowanie nie powiedzie się, zostanie zgłoszony wyjątek.
Dotyczy
ParseValue(String, XmlNameTable, XmlNamespaceManager)
Po przesłonięciu w klasie pochodnej sprawdza poprawność określonego ciągu względem wbudowanego lub zdefiniowanego przez użytkownika prostego 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
Ciąg do weryfikacji względem prostego typu.
- nameTable
- XmlNameTable
Element XmlNameTable do użycia do atomizacji podczas analizowania ciągu, jeśli ten XmlSchemaDatatype obiekt reprezentuje typ xs:NCName.
- nsmgr
- XmlNamespaceManager
Obiekt XmlNamespaceManager używany podczas analizowania ciągu, jeśli ten XmlSchemaDatatype obiekt reprezentuje typ xs:QName.
Zwraca
Element Object , który można bezpiecznie rzutować do typu zwracanego przez ValueType właściwość.
Wyjątki
Wartość wejściowa nie jest prawidłowym wystąpieniem tego typu schematu XML W3C.
Nie można przeanalizować wartości null (Nic w Visual Basic).
Uwagi
Metoda ParseValue weryfikuje określony ciąg względem wbudowanego lub zdefiniowanego przez użytkownika prostego typu. Jeśli na przykład reprezentuje typ XmlSchemaDatatype xs:date, zwracane jest wystąpienie klasy DateTime .
Poniżej przedstawiono kroki wykonywane podczas ParseValue procesu weryfikacji metody.
Przekonwertuj określony ciąg na odpowiedni typ środowiska uruchomieniowego języka wspólnego (CLR).
Sprawdź, czy wartość nie narusza żadnych aspektów zdefiniowanych dla prostego typu.
Przekonwertowana wartość jest następnie zwracana jako element Object i można bezpiecznie rzutować do typu zwracanego przez ValueType właściwość .
XmlSchemaDatatype Gdy obiekt reprezentuje typ listy, wartość ciągu wejściowego jest konwertowana na listę co najmniej jednego obiektu. XmlSchemaDatatype Gdy obiekt reprezentuje typ listy, podjęto próbę przeanalizowana wartości wejściowej jako typu składowego unii. Jeśli próba analizy zakończy się niepowodzeniem, konwersja zostanie podjęta przy użyciu następnego elementu członkowskiego unii, dopóki analizowanie nie powiedzie się lub nie ma innych typów składowych do analizowania. Jeśli analizowanie nie powiedzie się, zostanie zgłoszony wyjątek.