Поделиться через


XmlElementAttribute.DataType Свойство

Определение

Возвращает или задает тип данных определения схемы XML (XSD) элемента XML, созданного методом 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.

Исключения

Указанный тип данных схемы XML не может быть сопоставлен с типом данных the.NET.

Примеры

В следующем примере сериализуется класс с именем Group , который содержит поле с именем ExtraInfo, которое возвращает значение ArrayList. В примере применяется два экземпляра XmlElementAttribute поля и указываются разные DataType значения для каждого экземпляра. Каждый экземпляр позволяет XmlSerializer сериализовать указанные типы, вставленные в массив.

using System;
using System.Collections;
using System.IO;
using System.Xml.Serialization;

public class Group
{
   /* Apply two XmlElementAttributes to the field. Set the DataType
      to string an int to allow the ArrayList to accept
      both types. The Namespace is also set to different values
      for each type. */
   [XmlElement(DataType = "string",
   Type = typeof(string),
   Namespace = "http://www.cpandl.com"),
   XmlElement(DataType = "int",
   Namespace = "http://www.cohowinery.com",
   Type = typeof(int))]
   public ArrayList ExtraInfo;
}

public class Run
{
    public static void Main()
    {
       Run test = new Run();
       test.SerializeObject("ElementTypes.xml");
          }

    public void SerializeObject(string filename)
    {
      // A TextWriter is needed to write the file.
      TextWriter writer = new StreamWriter(filename);

      // Create the XmlSerializer using the XmlAttributeOverrides.
      XmlSerializer s =
      new XmlSerializer(typeof(Group));

      // Create the object to serialize.
      Group myGroup = new Group();

      /* Add a string and an integer to the ArrayList returned
         by the ExtraInfo field. */
      myGroup.ExtraInfo = new ArrayList();
      myGroup.ExtraInfo.Add("hello");
      myGroup.ExtraInfo.Add(100);

      // Serialize the object and close the TextWriter.
      s.Serialize(writer,myGroup);
      writer.Close();
   }
}
Imports System.Collections
Imports System.IO
Imports System.Xml.Serialization


Public Class Group
    ' Apply two XmlElementAttributes to the field. Set the DataType
    ' to string and int to allow the ArrayList to accept
    ' both types. The Namespace is also set to different values
    ' for each type. 
    <XmlElement(DataType := "string", _
        Type := GetType(String), _
        Namespace := "http://www.cpandl.com"), _
     XmlElement(DataType := "int", _                    
        Type := GetType(Integer), _
        Namespace := "http://www.cohowinery.com")> _
    Public ExtraInfo As ArrayList
End Class


Public Class Run
    
    Public Shared Sub Main()
        Dim test As New Run()
        test.SerializeObject("ElementTypes.xml")
    End Sub    
    
    Public Sub SerializeObject(filename As String)
        ' A TextWriter is needed to write the file.
        Dim writer As New StreamWriter(filename)
        
        ' Create the XmlSerializer using the XmlAttributeOverrides.
        Dim s As New XmlSerializer(GetType(Group))
        
        ' Create the object to serialize.
        Dim myGroup As New Group()
        
        ' Add a string and an integer to the ArrayList returned
        ' by the ExtraInfo field. 
        myGroup.ExtraInfo = New ArrayList()
        myGroup.ExtraInfo.Add("hello")
        myGroup.ExtraInfo.Add(100)
        
        ' Serialize the object and close the TextWriter.
        s.Serialize(writer, myGroup)
        writer.Close()
    End Sub
End Class

Комментарии

В следующей таблице перечислены простые типы данных схемы XML с эквивалентами their.NET.

Для типов XML-схемы base64Binary и hexBinary данных используйте массив Byte структур и примените XmlElementAttribute набор с набором DataType base64Binary или hexBinary, как это необходимо. Для xml-схемы time и date типов данных используйте DateTime тип и примените XmlElementAttribute его к набору DataType "дата" или "время".

Для каждого типа схемы XML, сопоставленного со строкой, примените XmlElementAttribute его DataType свойство к типу схемы XML. Это может изменить формат сериализации, а не только схему элемента.

Замечание

Свойство учитывает регистр, поэтому его необходимо задать точно одному из типов данных схемы XML.

Замечание

Передача двоичных данных в виде XML-элемента эффективнее, чем передача его в качестве атрибута схемы XML.

Дополнительные сведения о типах данных XML см. в документе консорциума World Wide Web Consortium с именем 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

Применяется к