XmlElementAttribute.DataType Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece el tipo de datos de la definición de esquemas XML (XSD) del elemento XM1 generado por 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 de propiedad
Un tipo de datos de esquema XML.
Excepciones
El tipo de datos de esquemas XML especificado no se puede asignar al tipo de datos .NET.
Ejemplos
En el ejemplo siguiente se serializa una clase denominada Group
que contiene un campo denominado ExtraInfo
, que devuelve un ArrayList. En el ejemplo se aplican dos instancias del XmlElementAttribute objeto al campo y se especifican valores diferentes DataType para cada instancia. Cada instancia permite XmlSerializer serializar los tipos especificados insertados en la matriz.
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::Collections;
using namespace System::IO;
using namespace System::Xml::Serialization;
public ref class Group
{
public:
/* 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=String::typeid,
Namespace="http://www.cpandl.com"),
XmlElement(DataType="snippet1>",
Namespace="http://www.cohowinery.com",
Type=Int32::typeid)]
ArrayList^ ExtraInfo;
};
void SerializeObject( String^ filename )
{
// A TextWriter is needed to write the file.
TextWriter^ writer = gcnew StreamWriter( filename );
// Create the XmlSerializer using the XmlAttributeOverrides.
XmlSerializer^ s = gcnew XmlSerializer( Group::typeid );
// Create the object to serialize.
Group^ myGroup = gcnew Group;
/* Add a string and an integer to the ArrayList returned
by the ExtraInfo field. */
myGroup->ExtraInfo = gcnew ArrayList;
myGroup->ExtraInfo->Add( "hello" );
myGroup->ExtraInfo->Add( 100 );
// Serialize the object and close the TextWriter.
s->Serialize( writer, myGroup );
writer->Close();
}
int main()
{
SerializeObject( "ElementTypes.xml" );
}
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
Comentarios
En la tabla siguiente se enumeran los tipos de datos simples de esquema XML con their.NET equivalentes.
Para los tipos de datos y esquema base64Binary
XML, use una matriz de Byte estructuras y aplique un XmlElementAttribute con el DataType establecido en "base64Binary" o "hexBinary", según hexBinary
corresponda. Para los tipos de datos y date
esquema time
XML, use el DateTime tipo y aplique con XmlElementAttribute el DataType establecido en "fecha" o "hora".
Para cada tipo de esquema XML asignado a una cadena, aplique con XmlElementAttribute su DataType propiedad establecida en el tipo de esquema XML. Es posible que esto pueda cambiar el formato de serialización, no solo el esquema del miembro.
Nota:
La propiedad distingue mayúsculas de minúsculas, por lo que debe establecerla exactamente en uno de los tipos de datos del esquema XML.
Nota
Pasar datos binarios como un elemento XML es más eficaz que pasarlos como un atributo de esquema XML.
Para obtener más información sobre los tipos de datos XML, vea el documento World Wide Web Consortium denominado Esquema XML Parte 2: Tipos de datos.
Tipo de datos XSD | Tipo de datos .NET |
---|---|
anyURI | String |
base64Binary | Matriz de objetos Byte |
boolean | Boolean |
byte | SByte |
Fecha | DateTime |
dateTime | DateTime |
Decimal | Decimal |
double | Double |
ENTITY | String |
ENTIDADES | String |
FLOAT | Single |
gDay | String |
gMonth | String |
gMonthDay | String |
gYear | String |
gYearMonth | String |
hexBinary | Matriz de objetos Byte |
ID | String |
IDREF | String |
IDREFS | String |
int | Int32 |
Entero | String |
language | String |
long | Int64 |
Nombre | String |
NCName | String |
negativeInteger | String |
NMTOKEN | String |
NMTOKENS | String |
normalizedString | String |
nonNegativeInteger | String |
nonPositiveInteger | String |
NOTATION | String |
positiveInteger | String |
QName | XmlQualifiedName |
duration | String |
string | String |
short | Int16 |
time | DateTime |
token | String |
unsignedByte | Byte |
unsignedInt | UInt32 |
unsignedLong | UInt64 |
unsignedShort | UInt16 |