Condividi tramite


XmlTextAttribute.DataType Proprietà

Definizione

Ottiene o imposta il tipo di dati XSD (XML Schema Definition Language) del testo generato da 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

Valore della proprietà

Tipo di dati XML Schema (XSD).

Eccezioni

Impossibile eseguire il mapping del tipo di dati XML Schema specificato al tipo di dati .NET.

Il tipo di dati XML Schema specificato non è valido per la proprietà e non può essere convertito nel tipo di membro.

Esempio

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

Commenti

L'impostazione della DataType proprietà su un tipo di dati semplice di XML Schema influisce sul formato del codice XML generato. Se ad esempio si imposta la proprietà su "date", il testo generato viene formattato nello stile di data generale, ad esempio 2001-08-31. Al contrario, impostando la proprietà su "dateTime" viene restituito un istante specifico come definito dall'Organizzazione internazionale per la standardizzazione documento 8601, "Rappresentazioni di date e ore", ad esempio: 2001-08-15T06:59:11.0508456-07:00.

L'effetto dell'impostazione della DataType proprietà può essere visualizzato anche quando si usa lo strumento di definizione dello schema XML (Xsd.exe) per generare l'XML Schema per un file compilato. Per altre informazioni sull'uso dello strumento, vedere Lo strumento di definizione dello schema XML e la serializzazione XML.

Nella tabella seguente sono elencati i tipi di dati semplici di XML Schema con i relativi equivalenti .NET.

Per i tipi di dati e schema XMLbase64Binary, utilizzare una matrice di Byte strutture e applicare un XmlTextAttribute oggetto con il DataType valore impostato su "base64Binary" o "hexBinary", a seconda delle hexBinary esigenze. Per xml Schema time e date tipi di dati, utilizzare il DateTime tipo e applicare XmlTextAttribute con il DataType valore impostato su "date" o "time".

Per ogni tipo di dati XML Schema mappato a una stringa, applicare con la XmlTextAttribute relativa DataType proprietà impostata sul tipo di dati XML Schema. Si noti che questo non modifica il formato di serializzazione, ma solo lo schema per il membro.

Annotazioni

La proprietà fa distinzione tra maiuscole e minuscole, pertanto è necessario impostarla esattamente su uno dei tipi di dati XML Schema.

Annotazioni

Il passaggio di dati binari come elemento XML è più efficiente rispetto al passaggio come attributo XML.

Per altre informazioni sui tipi di dati XML Schema, vedere il documento World Wide Web Consortium denominato XML Schema Part 2: Datatypes.

Tipo di dati XSD Tipo di dati .NET
anyURI String
base64Binary Matrice di Byte oggetti
boolean Boolean
byte SByte
date DateTime
data e ora DateTime
decimale Decimal
doppio Double
ENTITÀ String
ENTITÀ String
galleggiare Single
gDay String
gMonth String
gMonthDay String
gYear String
AnnoMese String
Hexbinary Matrice di Byte oggetti
Documento d'identità String
IDREF String
IDREFS String
int Int32
numero intero String
language String
lungo Int64
Nome String
Ncname String
negativeInteger String
NMTOKEN String
NMTOKENS String
normalizedString String
nonNegativeInteger String
nonPositiveInteger String
NOTAZIONE String
positiveInteger String
QName XmlQualifiedName
duration String
string String
short Int16
Tempo DateTime
token String
byte senza segno Byte
intero non firmato UInt32
intero lungo non firmato UInt64
unsignedShort (numero breve senza segno) UInt16

Si applica a