XmlTextAttribute.DataType Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает тип данных языка определения xml-схемы (XSD) текста, созданного методом XmlSerializer.
public:
property System::String ^ DataType { System::String ^ get(); void set(System::String ^ value); };
public string DataType { get; set; }
member this.DataType : string with get, set
Public Property DataType As String
Значение свойства
Тип данных схемы XML (XSD).
Исключения
Указанный тип данных схемы XML нельзя сопоставить с типом данных .NET.
Указанный тип данных схемы XML является недопустимым для свойства и не может быть преобразован в тип члена.
Примеры
using System;
using System.Xml.Serialization;
using System.IO;
public class Group1{
// The XmlTextAttribute with type set to string informs the
// XmlSerializer that strings should be serialized as XML text.
[XmlText(typeof(string))]
[XmlElement(typeof(int))]
[XmlElement(typeof(double))]
public object [] All= new object []{321, "One", 2, 3.0, "Two" };
}
public class Group2{
[XmlText(Type = typeof(GroupType))]
public GroupType Type;
}
public enum GroupType{
Small,
Medium,
Large
}
public class Group3{
[XmlText(Type=typeof(DateTime))]
public DateTime CreationTime = DateTime.Now;
}
public class Test{
static void Main(){
Test t = new Test();
t.SerializeArray("XmlText1.xml");
t.SerializeEnum("XmlText2.xml");
t.SerializeDateTime("XmlText3.xml");
}
private void SerializeArray(string filename){
XmlSerializer ser = new XmlSerializer(typeof(Group1));
Group1 myGroup1 = new Group1();
TextWriter writer = new StreamWriter(filename);
ser.Serialize(writer, myGroup1);
writer.Close();
}
private void SerializeEnum(string filename){
XmlSerializer ser = new XmlSerializer(typeof(Group2));
Group2 myGroup = new Group2();
myGroup.Type = GroupType.Medium;
TextWriter writer = new StreamWriter(filename);
ser.Serialize(writer, myGroup);
writer.Close();
}
private void SerializeDateTime(string filename){
XmlSerializer ser = new XmlSerializer(typeof(Group3));
Group3 myGroup = new Group3();
TextWriter writer = new StreamWriter(filename);
ser.Serialize(writer, myGroup);
writer.Close();
}
}
Imports System.Xml.Serialization
Imports System.IO
Public Class Group1
' The XmlTextAttribute with type set to String informs the
' XmlSerializer that strings should be serialized as XML text.
<XmlText(GetType(String)), _
XmlElement(GetType(integer)), _
XmlElement(GetType(double))> _
public All () As Object = _
New Object (){321, "One", 2, 3.0, "Two" }
End Class
Public Class Group2
<XmlText(GetType(GroupType))> _
public Type As GroupType
End Class
Public Enum GroupType
Small
Medium
Large
End Enum
Public Class Group3
<XmlText(GetType(DateTime))> _
Public CreationTime As DateTime = DateTime.Now
End Class
Public Class Test
Shared Sub Main()
Dim t As Test = New Test()
t.SerializeArray("XmlText1.xml")
t.SerializeEnum("XmlText2.xml")
t.SerializeDateTime("XmlText3.xml")
End Sub
Private Sub SerializeArray(filename As String)
Dim ser As XmlSerializer = New XmlSerializer(GetType(Group1))
Dim myGroup1 As Group1 = New Group1()
Dim writer As TextWriter = New StreamWriter(filename)
ser.Serialize(writer, myGroup1)
writer.Close()
End Sub
Private Sub SerializeEnum(filename As String)
Dim ser As XmlSerializer = New XmlSerializer(GetType(Group2))
Dim myGroup As Group2 = New Group2()
myGroup.Type = GroupType.Medium
Dim writer As TextWriter = New StreamWriter(filename)
ser.Serialize(writer, myGroup)
writer.Close()
End Sub
Private Sub SerializeDateTime(filename As String)
Dim ser As XmlSerializer = new XmlSerializer(GetType(Group3))
Dim myGroup As Group3 = new Group3()
Dim writer As TextWriter = new StreamWriter(filename)
ser.Serialize(writer, myGroup)
writer.Close()
End Sub
End Class
Комментарии
DataType Задание свойства простому типу данных схемы XML влияет на формат созданного XML-кода. Например, установка свойства на "date" приводит к форматированию созданного текста в общем стиле дат, например: 2001-08-31. Напротив, при задании свойства значение dateTime приводит к определенному моменту, определенному в документе Международной организации по стандартизации 8601, "Представления дат и времени", например: 2001-08-15T06:59:11.0508456-07:007:00.
Эффект настройки DataType свойства также можно увидеть при использовании средства определения схемы XML (Xsd.exe) для создания XML-схемы для скомпилированного файла. Дополнительные сведения об использовании средства см. в статье "Средство определения схемы XML" и сериализация XML.
В следующей таблице перечислены простые типы данных схемы XML с эквивалентами .NET.
Для типов XML-схемы base64Binary и hexBinary данных используйте массив Byte структур и примените XmlTextAttribute набор с набором DataType base64Binary или hexBinary, как это необходимо. Для xml-схемы time и date типов данных используйте DateTime тип и примените XmlTextAttribute его к набору DataType "дата" или "время".
Для каждого типа данных схемы XML, сопоставленного со строкой, примените XmlTextAttribute его DataType свойство к типу данных схемы XML. Обратите внимание, что это не изменяет формат сериализации, а только схему для члена.
Замечание
Свойство учитывает регистр, поэтому его необходимо задать точно одному из типов данных схемы XML.
Замечание
Передача двоичных данных в виде XML-элемента эффективнее, чем передача его в виде XML-атрибута.
Дополнительные сведения о типах данных схемы XML см. в документе консорциума Всемирного веб-консорциума с именем XML Schema Part 2: Datatypes.
| Тип данных XSD | Тип данных .NET |
|---|---|
| anyURI | String |
| base64Binary | Byte Массив объектов |
| булевый | Boolean |
| byte | SByte |
| date | DateTime |
| дата и время | DateTime |
| десятичная система | Decimal |
| двойной | Double |
| СУЩНОСТИ | String |
| ОБЪЕКТЫ | String |
| плавать | Single |
| gDay | String |
| gMonth | String |
| gMonthDay | String |
| gYear | String |
| годМесяц (gYearMonth) | String |
| hexBinary | Byte Массив объектов |
| Идентификатор | String |
| IDREF | String |
| IDREFS | String |
| инт | Int32 |
| целое число | String |
| язык | String |
| long | Int64 |
| Имя | String |
| NCName | String |
| отрицательное целое число | String |
| NMTOKEN | String |
| NMTOKENS | String |
| нормализованнаяstring | String |
| nonNegativeInteger | String |
| nonPositiveInteger | String |
| НОТАЦИИ | String |
| положительное целое число | String |
| QName | XmlQualifiedName |
| duration | String |
| струна | String |
| short | Int16 |
| Время | DateTime |
| token | String |
| беззнаковый байт | Byte |
| беззнаковое целое число | UInt32 |
| длинное целое число без знака | UInt64 |
| unsignedShort (беззнаковое короткое целое число) | UInt16 |