XmlElementAttribute.DataType プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
XmlSerializer によって生成された XML 要素の XML スキーマ定義 (XSD: XML Schema Definition) データ型を取得または設定します。
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
プロパティ値
XML スキーマ データ型。
例外
指定した XML スキーマ データ型を .NET データ型に割り当てることはできません。
例
次の例では、 という名前のフィールドを含む という名前Group
ExtraInfo
のクラスをシリアル化し、 をArrayList返します。 この例では、 の XmlElementAttribute 2 つのインスタンスを フィールドに適用し、インスタンスごとに異なる DataType 値を指定します。 各インスタンスを使用すると、 は XmlSerializer 、配列に挿入された指定された型をシリアル化できます。
#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
注釈
次の表に、同等の XML スキーマの単純なデータ型 their.NET 示します。
XML スキーマbase64Binary
とhexBinary
データ型の場合は、構造体のByte配列を使用し、必要に応じて、"base64Binary" または "hexBinary" に設定された を適用XmlElementAttributeDataTypeします。 XML スキーマtime
とdate
データ型の場合は、 型をDateTime使用し、 を "date" または "time" に設定して 適用XmlElementAttributeDataTypeします。
文字列にマップされるすべての XML スキーマ型に対して、 プロパティを XML スキーマ型に設定して を適用XmlElementAttributeDataTypeします。 これにより、メンバーのスキーマだけでなく、シリアル化形式が変更される可能性があります。
Note
プロパティでは大文字と小文字が区別されるため、XML スキーマ データ型のいずれかに正確に設定する必要があります。
Note
バイナリ データを XML 要素として渡す方が、XML スキーマ属性として渡すよりも効率的です。
XML データ型の詳細については、「XML スキーマ パート 2: データ型」という名前の World Wide Web Consortium ドキュメントを参照してください。
XSD データ型 | .NET データ型 |
---|---|
anyURI | String |
base64Binary | Byte オブジェクトの配列 |
boolean | Boolean |
byte | SByte |
日付 | DateTime |
dateTime | DateTime |
decimal | Decimal |
double | Double |
ENTITY | String |
エンティティ | String |
float | Single |
gDay | String |
gMonth | String |
gMonthDay | String |
gYear | String |
gYearMonth | String |
hexBinary | Byte オブジェクトの配列 |
id | String |
IDREF | String |
IDREFS | String |
INT | Int32 |
整数 | String |
language | String |
long | Int64 |
名前 | 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 |
適用対象
.NET