XmlTextAttribute.DataType Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 |