다음을 통해 공유


형식화된 데이터 작성

업데이트: November 2007

XmlWriter 클래스는 형식화된 데이터를 작성할 수 있는 기능을 제공합니다. WriteValue 메서드에는 CLR(공용 언어 런타임) 단순 형식 값을 사용할 수 있습니다. 이 기능은 CLR 단순 형식 및 XmlWriter 인스턴스로 작업할 때 유용합니다. 작성하기 전에 XmlConvert 클래스의 메서드를 사용하여 형식화된 데이터를 문자열 값으로 변환하는 대신 WriteValue 메서드를 호출하여 형식화된 값을 쓸 수 있습니다.

형식화된 값 작성

WriteValue 메서드는 CLR 개체를 사용하며 XSD(XML 스키마 정의 언어) 데이터 형식 변환 규칙을 통해 입력 값을 원하는 출력 형식으로 변환합니다. CLR 개체가 IEnumerable 또는 IList, ICollection 같은 목록 형식인 경우 값 형식의 배열로 처리됩니다.

WriteValue 메서드를 호출하면 XmlWriter는 XSD(XML 스키마) 데이터 형식 규칙에 따라 값을 문자열 표시로 변환하고 WriteString 메서드를 사용하여 씁니다.

텍스트로 작성

WriteValue를 호출하면 해당 스키마 형식에 대한 XmlConvert 규칙을 사용하여 형식화된 값이 텍스트로 serialize됩니다.

CLR 형식

기본 XSD(XML 스키마) 데이터 형식

System.Boolean

xsd:boolean

System.Byte**

xsd:integer

System.Byte[]

xsd:base64Binary

System.Char**

xsd:string

System.DateTime

xsd:dateTime

System.Decimal

xsd:decimal

System.Double

xsd:double

System.Int16**

xsd:integer

System.Int32

xsd:integer

System.Int64

xsd:integer

System.Single

xsd:float

System.String

xsd:string

System.IO.TextReader

xsd:string

System.IO.BinaryReader

xsd:base64Binary

**이 형식은 CLS 규격이 아니며 XmlReader 클래스에 해당 메서드가 없습니다.

참고:

WriteValue를 연속해서 여러 번 호출하면 값이 공백으로 구분되지 않습니다. 공백을 넣으려면 WriteValue를 호출하는 사이에 WriteWhitespace를 호출해야 합니다.

XML 데이터 저장소에 작성

XmlWriter를 사용하여 XML 데이터 저장소에 쓸 수 있습니다. 예를 들어, XPathNavigator 클래스는 XmlWriter 개체를 만들어 XmlDocument 개체에 대한 노드를 만들 수 있습니다.

데이터 저장소에 사용 가능한 스키마 정보가 있을 경우 WriteValue를 호출하여 허용되지 않는 형식으로 변환하려고 시도하면 WriteValue 메서드는 예외를 throw합니다.

데이터 저장소에 사용 가능한 스키마 정보가 없을 경우 WriteValue 메서드는 모든 값을 xsd:anySimpleType 형식으로 처리합니다.

예제

다음 예제에서는 책 가격을 쓰기 전에 책 가격을 15% 인상합니다. 유효성을 검사하는 XmlReader 개체인 판독기에서 스키마 정보를 가져옵니다.

reader.ReadToDescendant("price")
writer.WriteStartElement("price")
writer.WriteValue(reader.ReadElementContentAsDouble() * 1.15)
writer.WriteEndElement()
reader.ReadToDescendant("price");
writer.WriteStartElement("price");
writer.WriteValue((reader.ReadElementContentAsDouble())*1.15);
writer.WriteEndElement();

참고 항목

기타 리소스

XmlWriter를 사용하여 XML 작성

System.Xml 클래스의 형식 지원