XmlAttributeAttribute 클래스
XmlSerializer가 해당 클래스 멤버를 XML 특성으로 serialize하도록 지정합니다.
네임스페이스: System.Xml.Serialization
어셈블리: System.Xml(system.xml.dll)
구문
‘선언
<AttributeUsageAttribute(AttributeTargets.Property Or AttributeTargets.Field Or AttributeTargets.Parameter Or AttributeTargets.ReturnValue)> _
Public Class XmlAttributeAttribute
Inherits Attribute
‘사용 방법
Dim instance As XmlAttributeAttribute
[AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Parameter|AttributeTargets.ReturnValue)]
public class XmlAttributeAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Property|AttributeTargets::Field|AttributeTargets::Parameter|AttributeTargets::ReturnValue)]
public ref class XmlAttributeAttribute : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Parameter|AttributeTargets.ReturnValue) */
public class XmlAttributeAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Parameter|AttributeTargets.ReturnValue)
public class XmlAttributeAttribute extends Attribute
설명
XmlSerializer가 개체를 serialize 및 deserialize하는 방식을 제어하는 특성 패밀리에 속한 XmlAttributeAttribute입니다. 유사한 특성에 대한 전체 목록은 XML Serialization을 제어하는 특성을 참조하십시오.
공용 필드나 속성에 적용되면 XmlAttributeAttribute는 XmlSerializer를 통해 해당 멤버를 XML 특성으로 serialize하도록 합니다. 기본적으로 XmlSerializer는 공용 필드 및 속성을 XML 요소로 serialize합니다.
XSD(XML 스키마 정의 언어) 단순 형식(anySimpleType 형식에서 파생된 모든 기본 제공 데이터 형식 포함) 중 하나로 매핑될 수 있는 값(또는 값 배열)을 반환하는 공용 필드 또는 공용 속성으로만 XmlAttributeAttribute를 할당할 수 있습니다. Guid, Char 및 열거형을 포함하여 XSD 단순 형식으로 매핑할 수 있는 모든 형식이 여기에 포함됩니다. XSD 형식 목록 및 해당 형식이 .NET 데이터 형식으로 매핑되는 방식에 대해서는 DataType 속성을 참조하십시오.
XmlAttributeAttribute에는 언어를 지정하는 xml:lang과 공백을 처리하는 방법을 지정하는 xml:space의 두 가지 특성을 설정할 수 있습니다. 이들 특성은 XML을 처리하는 응용 프로그램에만 해당되는 정보를 전달하기 위해 사용됩니다. 다음 코드 예제에서는 이들 특성을 설정하는 방법을 보여 줍니다.
[XmlAttribute("xml:lang")]
public string Lang;
// Set this to 'default' or 'preserve'.
[XmlAttribute("space",
Namespace = "http://www.w3.org/XML/1998/namespace")]
public string Space
[Visual Basic]
<XmlAttribute("xml:lang")> _
Public Lang As String
' Set this to 'default' or 'preserve'.
<XmlAttribute("space", _
Namespace:= "http://www.w3.org/XML/1998/namespace")> _
Public Space As String
특성 사용에 대한 자세한 내용은 특성을 사용하여 메타데이터 확장을 참조하십시오.
참고
긴 XmlAttributeAttribute 대신 XmlAttribute라는 단어를 코드에서 사용할 수 있습니다.
예제
다음 예제에서는 XmlAttributeAttribute가 적용되는 여러 필드가 있는 클래스를 serialize합니다.
Option Explicit
Option Strict
Imports System
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization
Imports System.Xml.Schema
Public Class Group
<XmlAttribute(Namespace := "http://www.cpandl.com")> _
Public GroupName As String
<XmlAttribute(DataType := "base64Binary")> _
Public GroupNumber() As Byte
<XmlAttribute(DataType := "date", AttributeName := "CreationDate")> _
Public Today As DateTime
End Class
Public Class Run
Public Shared Sub Main()
Dim test As New Run()
test.SerializeObject("Attributes.xml")
End Sub
Public Sub SerializeObject(ByVal filename As String)
' Create an instance of the XmlSerializer class.
Dim mySerializer As New XmlSerializer(GetType(Group))
' Writing the file requires a TextWriter.
Dim writer As New StreamWriter(filename)
' Create an instance of the class that will be serialized.
Dim myGroup As New Group()
' Set the object properties.
myGroup.GroupName = ".NET"
Dim hexByte() As Byte = {Convert.ToByte(100), Convert.ToByte(50)}
myGroup.GroupNumber = hexByte
Dim myDate As New DateTime(2001, 1, 10)
myGroup.Today = myDate
' Serialize the class, and close the TextWriter.
mySerializer.Serialize(writer, myGroup)
writer.Close()
End Sub
End Class
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
using System.Xml.Schema;
public class Group
{
[XmlAttribute (Namespace = "http://www.cpandl.com")]
public string GroupName;
[XmlAttribute(DataType = "base64Binary")]
public Byte [] GroupNumber;
[XmlAttribute(DataType = "date", AttributeName = "CreationDate")]
public DateTime Today;
}
public class Run
{
public static void Main()
{
Run test = new Run();
test.SerializeObject("Attributes.xml");
}
public void SerializeObject(string filename)
{
// Create an instance of the XmlSerializer class.
XmlSerializer mySerializer =
new XmlSerializer(typeof(Group));
// Writing the file requires a TextWriter.
TextWriter writer = new StreamWriter(filename);
// Create an instance of the class that will be serialized.
Group myGroup = new Group();
// Set the object properties.
myGroup.GroupName = ".NET";
Byte [] hexByte = new Byte[2]{Convert.ToByte(100),
Convert.ToByte(50)};
myGroup.GroupNumber = hexByte;
DateTime myDate = new DateTime(2001,1,10);
myGroup.Today = myDate;
// Serialize the class, and close the TextWriter.
mySerializer.Serialize(writer, myGroup);
writer.Close();
}
}
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Serialization;
using namespace System::Xml::Schema;
public ref class Group
{
public:
[XmlAttributeAttribute(Namespace="http://www.cpandl.com")]
String^ GroupName;
[XmlAttributeAttribute(DataType="base64Binary")]
array<Byte>^GroupNumber;
[XmlAttributeAttribute(DataType="date",AttributeName="CreationDate")]
DateTime Today;
};
void SerializeObject( String^ filename )
{
// Create an instance of the XmlSerializer class.
XmlSerializer^ mySerializer = gcnew XmlSerializer( Group::typeid );
// Writing the file requires a TextWriter.
TextWriter^ writer = gcnew StreamWriter( filename );
// Create an instance of the class that will be serialized.
Group^ myGroup = gcnew Group;
// Set the object properties.
myGroup->GroupName = ".NET";
array<Byte>^hexByte = {Convert::ToByte( 100 ),Convert::ToByte( 50 )};
myGroup->GroupNumber = hexByte;
DateTime myDate = DateTime(2001,1,10);
myGroup->Today = myDate;
// Serialize the class, and close the TextWriter.
mySerializer->Serialize( writer, myGroup );
writer->Close();
}
int main()
{
SerializeObject( "Attributes.xml" );
}
import System.*;
import System.IO.*;
import System.Xml.*;
import System.Xml.Serialization.*;
import System.Xml.Schema.*;
public class Group
{
/** @attribute XmlAttribute(Namespace = "http://www.cpandl.com")
*/
public String groupName;
/** @attribute XmlAttribute(DataType = "base64Binary")
*/
public System.Byte groupNumber[];
/** @attribute XmlAttribute(DataType = "date", AttributeName = "CreationDate")
*/
public DateTime today;
} //Group
public class Run
{
public static void main(String[] args)
{
Run test = new Run();
test.SerializeObject("Attributes.xml");
} //main
public void SerializeObject(String fileName)
{
// Create an instance of the XmlSerializer class.
XmlSerializer mySerializer = new XmlSerializer(Group.class.ToType());
// Writing the file requires a TextWriter.
TextWriter writer = new StreamWriter(fileName);
// Create an instance of the class that will be serialized.
Group myGroup = new Group();
// Set the object properties.
myGroup.groupName = ".NET";
System.Byte hexByte[] =
new System.Byte[] { (System.Byte)Convert.ToSByte(100),
(System.Byte)Convert.ToSByte(50)};
myGroup.groupNumber = hexByte;
DateTime myDate = new DateTime(2001, 1, 10);
myGroup.today = myDate;
// Serialize the class, and close the TextWriter.
mySerializer.Serialize(writer, myGroup);
writer.Close();
} //SerializeObject
} //Run
상속 계층 구조
System.Object
System.Attribute
System.Xml.Serialization.XmlAttributeAttribute
스레드로부터의 안전성
이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.
플랫폼
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.
버전 정보
.NET Framework
2.0, 1.1, 1.0에서 지원
.NET Compact Framework
2.0, 1.0에서 지원