XmlSchemaDatatype.ParseValue Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
ParseValue(String, XmlNameTable, IXmlNamespaceResolver) |
Quando viene eseguito l'override in una classe derivata, convalida la |
ParseValue(String, XmlNameTable, XmlNamespaceManager) |
Quando ne viene eseguito l'override in una classe derivata, convalida la stringa specificata rispetto a un tipo semplice predefinito o definito dall'utente. |
ParseValue(String, XmlNameTable, IXmlNamespaceResolver)
Quando viene eseguito l'override in una classe derivata, convalida la string
specificata rispetto a un tipo semplice incorporato o definito dall'utente.
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
Parametri
- s
- String
string
da convalidare rispetto al tipo semplice.
- nameTable
- XmlNameTable
Classe XmlNameTable da utilizzare per la suddivisione in elementi di base durante l'analisi della string
, se l'oggetto XmlSchemaDatatype rappresenta il tipo xs:NCName.
- nsmgr
- IXmlNamespaceResolver
L'oggetto IXmlNamespaceResolver da utilizzare durante l'analisi della string
, se l'oggetto XmlSchemaDatatype rappresenta il tipo xs:QName.
Restituisce
Oggetto Object di cui può essere eseguito il cast al tipo restituito dalla proprietà ValueType.
Eccezioni
Il valore di input non è un'istanza valida del tipo di schema XML W3C.
Il valore da analizzare non può essere null
.
Esempio
Nell'esempio seguente viene recuperato il LotteryNumber
tipo semplice dal file example.xsd come oggetto XmlSchemaSimpleType e quindi convalida il string
valore dell'uso 5
del ParseValue metodo.
#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
Il file XML seguente viene usato per l'esempio di codice precedente.
<?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>
Commenti
Il ParseValue metodo convalida l'oggetto string
specificato in base a un tipo semplice predefinito o definito dall'utente. Ad esempio, se rappresenta XmlSchemaDatatype il tipo xs:date, viene restituita un'istanza di DateTime .
Di seguito sono riportati i passaggi eseguiti durante il ParseValue processo di convalida del metodo.
Convertire il valore specificato come oggetto
string
nel tipo CLR (Common Language Runtime) corrispondente.Verificare che il valore non viola i facet definiti per il tipo semplice.
Il valore convertito viene quindi restituito come oggetto Object e può essere sottoposto a cast in modo sicuro al tipo restituito dalla ValueType proprietà.
Quando l'oggetto rappresenta un tipo di elenco, il XmlSchemaDatatype valore di input string
viene convertito in un elenco di uno o più oggetti. Quando l'oggetto rappresenta un tipo di elenco, viene eseguito un tentativo di analizzare il XmlSchemaDatatype valore di input come tipo membro dell'unione. Se il tentativo di analisi ha esito negativo, la conversione viene tentata con il membro successivo dell'unione finché l'analisi non riesce o non sono presenti altri tipi di membro da analizzare. Se l'analisi ha esito negativo, viene generata un'eccezione.
Si applica a
ParseValue(String, XmlNameTable, XmlNamespaceManager)
Quando ne viene eseguito l'override in una classe derivata, convalida la stringa specificata rispetto a un tipo semplice predefinito o definito dall'utente.
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
Parametri
- s
- String
Stringa da convalidare rispetto al tipo semplice.
- nameTable
- XmlNameTable
Classe XmlNameTable da usare per l'atomizzazione durante l'analisi della stringa se l'oggetto XmlSchemaDatatype rappresenta il tipo xs:NCName.
- nsmgr
- XmlNamespaceManager
L'oggetto XmlNamespaceManager da usare durante l'analisi della stringa se l'oggetto XmlSchemaDatatype rappresenta il tipo xs:QName.
Restituisce
Oggetto Object di cui può essere eseguito il cast al tipo restituito da ValueType.
Eccezioni
Il valore di input non è un'istanza valida del tipo di schema XML W3C.
Il valore da analizzare non può essere Null (Nothing in Visual Basic).
Commenti
Il ParseValue metodo convalida la stringa specificata su un tipo semplice predefinito o definito dall'utente. Ad esempio, se rappresenta XmlSchemaDatatype il tipo xs:date, viene restituita un'istanza di DateTime .
Di seguito sono riportati i passaggi eseguiti durante il ParseValue processo di convalida del metodo.
Convertire la stringa specificata nel tipo CLR (Common Language Runtime) corrispondente.
Verificare che il valore non viola i facet definiti per il tipo semplice.
Il valore convertito viene quindi restituito come oggetto Object e può essere sottoposto a cast in modo sicuro al tipo restituito dalla ValueType proprietà.
Quando l'oggetto rappresenta un tipo di elenco, il XmlSchemaDatatype valore stringa di input viene convertito in un elenco di uno o più oggetti. Quando l'oggetto rappresenta un tipo di elenco, viene eseguito un tentativo di analizzare il XmlSchemaDatatype valore di input come tipo membro dell'unione. Se il tentativo di analisi ha esito negativo, la conversione viene tentata con il membro successivo dell'unione finché l'analisi non riesce o non sono presenti altri tipi di membro da analizzare. Se l'analisi ha esito negativo, viene generata un'eccezione.