XmlSchemaDatatype.ParseValue Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Overloads
ParseValue(String, XmlNameTable, IXmlNamespaceResolver) |
When overridden in a derived class, validates the |
ParseValue(String, XmlNameTable, XmlNamespaceManager) |
When overridden in a derived class, validates the specified string against a built-in or user-defined simple type. |
ParseValue(String, XmlNameTable, IXmlNamespaceResolver)
- Source:
- XmlSchemaDataType.cs
- Source:
- XmlSchemaDataType.cs
- Source:
- XmlSchemaDataType.cs
When overridden in a derived class, validates the string
specified against a built-in or user-defined simple type.
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
Parameters
- s
- String
The string
to validate against the simple type.
- nameTable
- XmlNameTable
The XmlNameTable to use for atomization while parsing the string
if this XmlSchemaDatatype object represents the xs:NCName type.
- nsmgr
- IXmlNamespaceResolver
The IXmlNamespaceResolver object to use while parsing the string
if this XmlSchemaDatatype object represents the xs:QName type.
Returns
An Object that can be cast safely to the type returned by the ValueType property.
Exceptions
The input value is not a valid instance of this W3C XML Schema type.
The value to parse cannot be null
.
Examples
The following example retrieves the LotteryNumber
simple type from the example.xsd file as an XmlSchemaSimpleType and then validates the string
value of 5
using the ParseValue method.
#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
The following XML file is used for the preceding code example.
<?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>
Remarks
The ParseValue method validates the string
specified against a built-in or user-defined simple type. For example, if this XmlSchemaDatatype represents the type xs:date, then an instance of DateTime is returned.
The following are the steps performed during the ParseValue method's validation process.
Convert the value specified as a
string
to its corresponding Common Language Runtime (CLR) type.Verify that the value does not violate any facets defined for the simple type.
The converted value is then returned as an Object and can be cast safely to the type returned by the ValueType property.
When the XmlSchemaDatatype object represents a list type, the input string
value is converted to a list of one or more objects. When the XmlSchemaDatatype object represents a list type, an attempt is made to parse the input value as a member type of the union. If the parse attempt fails, then the conversion is attempted with the next member of the union until the parse is successful or there are no other member types to parse. If the parse is unsuccessful, an exception is thrown.
Applies to
ParseValue(String, XmlNameTable, XmlNamespaceManager)
When overridden in a derived class, validates the specified string against a built-in or user-defined simple type.
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
Parameters
- s
- String
The string to validate against the simple type.
- nameTable
- XmlNameTable
The XmlNameTable to use for atomization while parsing the string if this XmlSchemaDatatype object represents the xs:NCName type.
- nsmgr
- XmlNamespaceManager
The XmlNamespaceManager object to use while parsing the string if this XmlSchemaDatatype object represents the xs:QName type.
Returns
An Object that can be safely cast to the type that is returned by the ValueType property.
Exceptions
The input value is not a valid instance of this W3C XML Schema type.
The value to parse cannot be null (Nothing in Visual Basic).
Remarks
The ParseValue method validates the specified string against a built-in or user-defined simple type. For example, if this XmlSchemaDatatype represents the type xs:date, then an instance of DateTime is returned.
The following are the steps performed during the ParseValue method's validation process.
Convert the specified string to its corresponding Common Language Runtime (CLR) type.
Verify that the value does not violate any facets that are defined for the simple type.
The converted value is then returned as an Object and can be cast safely to the type that is returned by the ValueType property.
When the XmlSchemaDatatype object represents a list type, the input string value is converted to a list of one or more objects. When the XmlSchemaDatatype object represents a list type, an attempt is made to parse the input value as a member type of the union. If the parse attempt fails, then the conversion is attempted with the next member of the union until the parse is successful or there are no other member types to parse. If the parse is unsuccessful, an exception is thrown.