XmlTextAttribute.DataType Tulajdonság
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Lekéri vagy beállítja az XML-sémadefiníciós nyelv (XSD) adattípusát a 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
Tulajdonság értéke
XML-séma (XSD) adattípus.
Kivételek
A megadott XML-séma adattípusa nem képezhető le a .NET adattípusra.
A megadott XML-séma adattípusa érvénytelen a tulajdonsághoz, és nem konvertálható tagtípussá.
Példák
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
Megjegyzések
A DataType tulajdonság egyszerű XML-séma típusúra állítása hatással van a létrehozott XML formátumára. Ha például a tulajdonságot "date" értékre állítja, akkor a létrehozott szöveg az általános dátumstílusban lesz formázva, például: 2001-08-31. Ezzel szemben ha a tulajdonságot "dateTime" értékre állítja, a Nemzetközi Szabványügyi Szervezet 8601-8601 számú dokumentuma, a "Dátumok és időpontok ábrázolása", például: 2001-08-15T06:59:11.0508456-07:00.
A tulajdonság beállításának hatása akkor DataType is látható, ha az XML-sémadefiníciós eszköz (Xsd.exe) használatával hozza létre az XML-sémát egy lefordított fájlhoz. Az eszköz használatáról további információt az XML-sémadefiníciós eszköz és az XML-szerializálás című témakörben talál.
Az alábbi táblázat az XML-séma egyszerű adattípusait sorolja fel .NET megfelelőkkel.
Az XML-séma base64Binary és hexBinary az adattípusok esetében használjon struktúrákat tartalmazó tömböt Byte , és szükség szerint alkalmazza XmlTextAttribute a DataType "base64Binary" vagy a "hexBinary" halmazt. Az XML-séma time és date az adattípusok esetében használja a DateTime típust, és alkalmazza a XmlTextAttributeDataType "dátum" vagy az "idő" értékre.
Minden olyan XML-séma adattípusnál, amely egy sztringre van megfeleltetve, alkalmazza a XmlTextAttributeDataType tulajdonságot az XML-séma adattípusára. Vegye figyelembe, hogy ez nem módosítja a szerializáció formátumát, csak a tag sémáját.
Note
A tulajdonság megkülönbözteti a kis- és nagybetűk értékét, ezért pontosan az XML-séma egyik adattípusára kell beállítania.
Note
A bináris adatok XML-elemként való átadása hatékonyabb, mint xml-attribútumként átadni.
Az XML-séma adattípusairól további információt az XML-séma 2. rész: Adattípusok nevű webes konzorcium dokumentumában talál.
| XSD adattípus | .NET-adattípus |
|---|---|
| anyURI | String |
| base64Binary | Objektumok tömbje Byte |
| boolean | Boolean |
| bájt | SByte |
| date | DateTime |
| dátumIdő | DateTime |
| decimális | Decimal |
| dupla | Double |
| ENTITÁS | String |
| ENTITÁSOK | String |
| float | Single |
| gDay | String |
| gMonth | String |
| gMonthDay | String |
| gYear | String |
| gÉvHónap | String |
| hexBinary | Objektumok tömbje Byte |
| azonosító | String |
| IDREF | String |
| IDREFS | String |
| int | Int32 |
| egész szám | String |
| nyelv | String |
| long | Int64 |
| Name | String |
| NCName | String |
| negativeInteger | String |
| NMTOKEN | String |
| NMTOKENS | String |
| normalizedString | String |
| nonNegativeInteger | String |
| nonPositiveInteger | String |
| JELÖLÉS | String |
| positiveInteger | String |
| QName | XmlQualifiedName |
| duration | String |
| karakterlánc | String |
| rövid | Int16 |
| time | DateTime |
| kód | String |
| előjelnélküli bájt | Byte |
| unsignedInt | UInt32 |
| előjel nélküli hosszú | UInt64 |
| Előjel nélküli rövid egész szám | UInt16 |