XPathNavigator.ValueType Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает тип .NET (Type) текущего узла.
public:
virtual property Type ^ ValueType { Type ^ get(); };
public override Type ValueType { get; }
member this.ValueType : Type
Public Overrides ReadOnly Property ValueType As Type
Значение свойства
.NET Type текущего узла. Значение по умолчанию — String.
Примеры
В следующем примере contosoBooks.xml
для создания объекта используются XML-файл и contosoBooks.xsd
схема языка определения схемы XML (XSD).XPathNavigator Типизированное price
значение элемента отображается с помощью ValueType свойства , а затем возвращается в виде строки с помощью ValueAs метода .
// Create an XmlReaderSettings object with the contosoBooks.xsd schema.
XmlReaderSettings^ settings = gcnew XmlReaderSettings();
settings->Schemas->Add("http://www.contoso.com/books", "contosoBooks.xsd");
settings->ValidationType = ValidationType::Schema;
// Create an XmlReader object with the contosoBooks.xml file and its schema.
XmlReader^ reader = XmlReader::Create("contosoBooks.xml", settings);
XPathDocument^ document = gcnew XPathDocument(reader);
XPathNavigator^ navigator = document->CreateNavigator();
navigator->MoveToChild("bookstore", "http://www.contoso.com/books");
navigator->MoveToChild("book", "http://www.contoso.com/books");
navigator->MoveToChild("price", "http://www.contoso.com/books");
// Display the current type of the price element.
Console::WriteLine(navigator->ValueType);
// Get the value of the price element as a string and display it.
String^ price = dynamic_cast<String^>(navigator->ValueAs(String::typeid));
Console::WriteLine(price);
// Create an XmlReaderSettings object with the contosoBooks.xsd schema.
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add("http://www.contoso.com/books", "contosoBooks.xsd");
settings.ValidationType = ValidationType.Schema;
// Create an XmlReader object with the contosoBooks.xml file and its schema.
XmlReader reader = XmlReader.Create("contosoBooks.xml", settings);
XPathDocument document = new XPathDocument(reader);
XPathNavigator navigator = document.CreateNavigator();
navigator.MoveToChild("bookstore", "http://www.contoso.com/books");
navigator.MoveToChild("book", "http://www.contoso.com/books");
navigator.MoveToChild("price", "http://www.contoso.com/books");
// Display the current type of the price element.
Console.WriteLine(navigator.ValueType);
// Get the value of the price element as a string and display it.
string price = navigator.ValueAs(typeof(string)) as string;
Console.WriteLine(price);
' Create an XmlReaderSettings object with the contosoBooks.xsd schema.
Dim settings As XmlReaderSettings = New XmlReaderSettings()
settings.Schemas.Add("http://www.contoso.com/books", "contosoBooks.xsd")
settings.ValidationType = ValidationType.Schema
' Create an XmlReader object with the contosoBooks.xml file and its schema.
Dim reader As XmlReader = XmlReader.Create("contosoBooks.xml", settings)
Dim document As XPathDocument = New XPathDocument(reader)
Dim navigator As XPathNavigator = document.CreateNavigator()
navigator.MoveToChild("bookstore", "http://www.contoso.com/books")
navigator.MoveToChild("book", "http://www.contoso.com/books")
navigator.MoveToChild("price", "http://www.contoso.com/books")
' Display the current type of the price element.
Console.WriteLine(navigator.ValueType)
' Get the value of the price element as a string and display it.
Dim price As String = navigator.ValueAs(GetType(String))
Console.WriteLine(price)
В примере в качестве входных данных используется файл contosoBooks.xml
.
<?xml version="1.0" encoding="utf-8" ?>
<bookstore xmlns="http://www.contoso.com/books">
<book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
В примере также в качестве входных данных используется contosoBooks.xsd
.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.contoso.com/books" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="bookstore">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" />
<xs:element name="author">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="name" type="xs:string" />
<xs:element minOccurs="0" name="first-name" type="xs:string" />
<xs:element minOccurs="0" name="last-name" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="price" type="xs:decimal" />
</xs:sequence>
<xs:attribute name="genre" type="xs:string" use="required" />
<xs:attribute name="publicationdate" type="xs:date" use="required" />
<xs:attribute name="ISBN" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Комментарии
Свойство ValueType получает .NET Type типизированного значения текущего узла.
Например, элемент типа xs:int
по умолчанию будет иметь значение ValueTypeInt32 . Однако может быть любым из допустимых типов, ValueType которые можно сопоставить с xs:int
такими, как Int16 или Double.
Если узел не имеет типа, это эквивалентно заметке типа на узле xdt:untypedAtomic
. В этом случае ValueType свойство возвращает строку для узла. Дополнительные сведения см . в разделе Поддержка типов в классах System.Xml.