XmlTextAttribute.DataType Tulajdonság

Definíció

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

A következőre érvényes: