XmlTextAttribute.DataType Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define o tipo de dados XSD (linguagem de definição de esquema XML) do texto gerado pelo 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
Valor da propriedade
Um tipo de dados XSD (Esquema XML).
Exceções
O tipo de dados de esquema XML especificado não pode ser mapeado para o tipo de dados .NET.
O tipo de dados de esquema XML especificado é inválido para a propriedade e não pode ser convertido no tipo de membro.
Exemplos
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
Comentários
Definir a DataType propriedade como um tipo de dados simples de esquema XML afeta o formato do XML gerado. Por exemplo, definir a propriedade como "date" faz com que o texto gerado seja formatado no estilo de data geral, por exemplo: 2001-08-31. Por outro lado, definir a propriedade como "dateTime" resulta em um instante específico, conforme definido pelo documento 8601 da Organização Internacional para a Padronização, "Representações de Datas e Horas", por exemplo: 2001-08-15T06:59:11.0508456-07:00.
O efeito de definir a DataType propriedade também pode ser visto ao usar a Ferramenta de Definição de Esquema XML (Xsd.exe) para gerar o esquema XML para um arquivo compilado. Para obter mais informações sobre como usar a ferramenta, consulte a Ferramenta de Definição de Esquema XML e a Serialização XML.
A tabela a seguir lista os tipos de dados simples do Esquema XML com seus equivalentes do .NET.
Para os tipos de dados e esquema base64Binary XML, use uma matriz de Byte estruturas e aplique uma XmlTextAttribute com o DataType conjunto como "base64Binary" ou "hexBinary", conforme hexBinary apropriado. Para os tipos de dados e esquema time XML, use o DateTime tipo e aplique o XmlTextAttribute com o DataType conjunto como "date" ou "timedate".
Para cada tipo de dados de esquema XML mapeado para uma cadeia de caracteres, aplique-o XmlTextAttribute com sua DataType propriedade definida para o tipo de dados esquema XML. Observe que isso não altera o formato de serialização, apenas o esquema do membro.
Observação
A propriedade diferencia maiúsculas de minúsculas, portanto, você deve defini-la exatamente como um dos tipos de dados de esquema XML.
Observação
Passar dados binários como um elemento XML é mais eficiente do que passá-los como um atributo XML.
Para obter mais informações sobre tipos de dados de esquema XML, consulte o documento do World Wide Web Consortium chamado XML Schema Part 2: Datatypes.
| Tipo de dados XSD | Tipo de dados do .NET |
|---|---|
| Anyuri | String |
| Base64binary | Matriz de Byte objetos |
| boolean | Boolean |
| byte | SByte |
| date | DateTime |
| data e hora | DateTime |
| decimal | Decimal |
| duplo | Double |
| ENTIDADE | String |
| ENTIDADES | String |
| derivar | Single |
| Gday | String |
| gMonth | String |
| Gmonthday | String |
| gYear | String |
| gYearMonth | String |
| Hexbinary | Matriz de Byte objetos |
| ID | String |
| IDREF | String |
| IDREFS | String |
| int | Int32 |
| inteiro | String |
| linguagem | String |
| long | Int64 |
| Nome | String |
| Ncname | String |
| negativeInteger | String |
| NMTOKEN | String |
| NMTOKENS | String |
| normalizedString | String |
| nonNegativeInteger | String |
| nonPositiveInteger | String |
| NOTAÇÃO | String |
| positiveInteger | String |
| QName | XmlQualifiedName |
| duração | String |
| cadeia | String |
| short | Int16 |
| time | DateTime |
| símbolo | String |
| byte sem sinal | Byte |
| inteiroSemSinal | UInt32 |
| unsignedLong | UInt64 |
| inteiro sem sinal (unsignedShort) | UInt16 |