XmlTextAttribute.DataType Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
tarafından XmlSerializeroluşturulan metnin XML Şema tanım dili (XSD) veri türünü alır veya ayarlar.
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
Özellik Değeri
XML Şeması (XSD) veri türü.
Özel durumlar
Belirttiğiniz XML Şeması veri türü .NET veri türüne eşlenemiyor.
Belirttiğiniz XML Şeması veri türü özellik için geçersiz ve üye türüne dönüştürülemiyor.
Örnekler
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::Xml::Serialization;
using namespace System::IO;
public ref class Group1
{
public:
// The XmlTextAttribute with type set to string informs the
// XmlSerializer that strings should be serialized as XML text.
[XmlText(String::typeid)]
[XmlElement(Int32::typeid)]
[XmlElement(Double::typeid)]
array<Object^>^All;
Group1()
{
array<Object^>^temp = {321,"One",2,3.0,"Two"};
All = temp;
}
};
public enum class GroupType
{
Small, Medium, Large
};
public ref class Group2
{
public:
[XmlText(Type=GroupType::typeid)]
GroupType Type;
};
public ref class Group3
{
public:
[XmlText(Type=DateTime::typeid)]
DateTime CreationTime;
Group3()
{
CreationTime = DateTime::Now;
}
};
public ref class Test
{
public:
static void main()
{
Test^ t = gcnew Test;
t->SerializeArray( "XmlText1.xml" );
t->SerializeEnum( "XmlText2.xml" );
t->SerializeDateTime( "XmlText3.xml" );
}
private:
void SerializeArray( String^ filename )
{
XmlSerializer^ ser = gcnew XmlSerializer( Group1::typeid );
Group1^ myGroup1 = gcnew Group1;
TextWriter^ writer = gcnew StreamWriter( filename );
ser->Serialize( writer, myGroup1 );
writer->Close();
}
void SerializeEnum( String^ filename )
{
XmlSerializer^ ser = gcnew XmlSerializer( Group2::typeid );
Group2^ myGroup = gcnew Group2;
myGroup->Type = GroupType::Medium;
TextWriter^ writer = gcnew StreamWriter( filename );
ser->Serialize( writer, myGroup );
writer->Close();
}
void SerializeDateTime( String^ filename )
{
XmlSerializer^ ser = gcnew XmlSerializer( Group3::typeid );
Group3^ myGroup = gcnew Group3;
TextWriter^ writer = gcnew StreamWriter( filename );
ser->Serialize( writer, myGroup );
writer->Close();
}
};
int main()
{
Test::main();
}
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
Açıklamalar
Özelliğin DataType XML Şeması basit veri türüne ayarlanması, oluşturulan XML'nin biçimini etkiler. Örneğin, özelliğin "tarih" olarak ayarlanması, oluşturulan metnin genel tarih stilinde biçimlendirilmesine neden olur, örneğin: 2001-08-31. Buna karşılık, özelliğin "dateTime" olarak ayarlanması, Uluslararası Standartlaştırma Kuruluşu'nun 8601, "Tarih ve Saatlerin Temsilleri" belgesinde tanımlandığı gibi belirli bir anında sonuçlanıyor, örneğin: 2001-08-15T06:59:11.0508456-07:00.
Özelliği ayarlamanın DataType etkisi, derlenmiş bir dosya için XML Şeması oluşturmak üzere XML Şema Tanımı Aracı (Xsd.exe) kullanılırken de görülebilir. Aracı kullanma hakkında daha fazla bilgi için bkz. XML Şema Tanımı Aracı ve XML Serileştirme.
Aşağıdaki tabloda XML Şeması basit veri türleri .NET eşdeğerleriyle listelenmiştir.
XML Şeması base64Binary
ve hexBinary
veri türleri için bir yapı dizisi Byte kullanın ve uygun şekilde "base64Binary" veya "hexBinary" olarak ayarlanmış bir XmlTextAttributeDataType uygulayın. XML Şeması time
ve date
veri türleri için türünü kullanın DateTime ve "tarih" veya "saat" olarak ayarlanmış olarak DataType öğesini uygulayınXmlTextAttribute.
Bir dizeye eşlenen her XML Şeması veri türü için, özelliğini XML Şeması veri türüne ayarlanmış olarak DataType uygulayınXmlTextAttribute. Bunun serileştirme biçimini değiştirmediğini, yalnızca üyenin şemasını değiştirdiğini unutmayın.
Not
özelliği büyük/küçük harfe duyarlıdır, bu nedenle xml şeması veri türlerinden birine tam olarak ayarlamanız gerekir.
Not
İkili verileri XML öğesi olarak geçirmek, xml özniteliği olarak geçirmekten daha verimlidir.
XML Şeması veri türleri hakkında daha fazla bilgi için, XML Şema Bölümü 2: Veri Türleri adlı World Wide Web Konsorsiyumu belgesine bakın.
XSD veri türü | .NET veri türü |
---|---|
Anyurı | String |
base64Binary | Nesne dizisi Byte |
boolean | Boolean |
byte | SByte |
date | DateTime |
tarih saat | DateTime |
decimal | Decimal |
double | Double |
VARLIK | String |
VARLIK | String |
float | Single |
gDay | String |
gMonth | String |
gMonthDay | String |
gYear | String |
gYearMonth | String |
Hexbinary | Nesne dizisi Byte |
ID | String |
IDREF | String |
IDREFS | String |
int | Int32 |
tamsayı | String |
language | String |
long | Int64 |
Name | String |
Ncname | String |
negativeInteger | String |
NMTOKEN | String |
NMTOKENS | String |
normalizedString | String |
nonNegativeInteger | String |
nonPositiveInteger | String |
GÖSTERİMİ | String |
positiveInteger | String |
QName | XmlQualifiedName |
süre | String |
string | String |
short | Int16 |
time | DateTime |
token | String |
unsignedByte | Byte |
Unsignedınt | UInt32 |
unsignedLong | UInt64 |
unsignedShort | UInt16 |