XmlTextWriter 클래스

정의

W3C XML(Extensible Markup Language) 1.0 및 XML 권장 사항의 네임스페이스를 준수하는 XML 데이터가 포함된 스트림 또는 파일을 생성하는 빠르고 캐시되지 않은 전달 전용 방법을 제공하는 작성기를 나타냅니다.

대신 클래스를 XmlWriter 사용하는 것이 좋습니다.

public ref class XmlTextWriter : System::Xml::XmlWriter
public class XmlTextWriter : System.Xml.XmlWriter
type XmlTextWriter = class
    inherit XmlWriter
Public Class XmlTextWriter
Inherits XmlWriter
상속
XmlTextWriter

설명

XmlTextWriter 클래스는 XmlWriter 클래스를 구현합니다.

Note

새로운 기능을 활용하기 위해 XmlWriter 인스턴스를 XmlWriter.Create 메서드를 사용하고 XmlWriterSettings 클래스를 활용하여 만드는 것을 권장합니다.

XmlTextWriter 는 현재 요소 스택에 정의된 모든 네임스페이스에 해당하는 네임스페이스 스택을 유지 관리합니다. 네임스페이스를 XmlTextWriter로 수동으로 선언할 수 있습니다.

w.WriteStartElement("root");
w.WriteAttributeString("xmlns", "x", null, "urn:1");
w.WriteStartElement("item","urn:1");
w.WriteEndElement();
w.WriteStartElement("item","urn:1");
w.WriteEndElement();
w.WriteEndElement();

이 C# 코드는 다음 출력을 생성합니다. XmlTextWriter 는 네임스페이스 선언을 루트 요소로 승격하여 두 자식 요소에 중복되지 않도록 합니다. 자식 요소는 네임스페이스 선언에서 접두사를 선택합니다.

<root xmlns:x="urn:1">
<x:item/>
<x:item/>
</root>

XmlTextWriter 또한 현재 네임스페이스 선언을 재정의할 수 있습니다. 다음 예제에서는 네임스페이스 URI "123"을 "abc"로 재정의하여 XML 요소를 <x:node xmlns:x="abc"/>생성합니다.

w.WriteStartElement("x","node","123");
w.WriteAttributeString("xmlns","x",null,"abc");

접두사를 인수로 사용하는 쓰기 메서드를 사용하여 사용할 접두사를 지정할 수도 있습니다. 다음 예제에서는 두 개의 서로 다른 접두사를 동일한 네임스페이스 URI에 매핑하여 XML 텍스트를 <x:root xmlns:x="urn:1"><y:item xmlns:y="urn:1"/></x:root>생성합니다.

XmlTextWriter w = new XmlTextWriter(Console.Out);
w.WriteStartElement("x","root","urn:1");
w.WriteStartElement("y","item","urn:1");
w.WriteEndElement();
w.WriteEndElement();
w.Close();

동일한 네임스페이스 URI XmlTextWriter 에 다른 접두사를 매핑하는 네임스페이스 선언이 여러 개 있는 경우 네임스페이스 선언 스택을 뒤로 이동하고 가장 가까운 네임스페이스 선언을 선택합니다.

XmlTextWriter w = new XmlTextWriter(Console.Out);
w.Formatting = Formatting.Indented;
w.WriteStartElement("x","root","urn:1");
w.WriteStartElement("y","item","urn:1");
w.WriteAttributeString("attr","urn:1","123");
w.WriteEndElement();
w.WriteEndElement();
w.Close();

이 C# 예제에서 호출은 WriteAttributeString 접두사를 지정하지 않으므로 작성기는 네임스페이스 스택에 푸시된 마지막 접두사를 사용하고 다음 XML을 생성합니다.

<x:root xmlns:x="urn:1">
<y:item y:attr="123" xmlns:y="urn:1" />
</x:root>

네임스페이스 충돌이 발생하면 XmlTextWriter 대체 접두사를 생성하여 해결합니다. 예를 들어 특성과 요소의 접두사는 같지만 네임스페이스는 XmlWriter 다른 경우 특성에 대한 대체 접두사를 생성합니다. 생성된 접두사 이름은 n{i}i 1부터 시작하는 숫자입니다. 숫자는 각 요소에 대해 1로 다시 설정됩니다.

네임스페이스 URI와 연결된 특성에는 접두사(기본 네임스페이스는 특성에 적용되지 않음)가 있어야 합니다. 이는 XML 권장 사항의 W3C 네임스페이스 섹션 5.2를 준수합니다. 특성이 네임스페이스 URI를 참조하지만 접두사를 지정하지 않으면 작성기는 특성에 대한 접두사를 생성합니다.

빈 요소를 작성할 때 태그 이름과 닫는 태그 사이에 추가 공백이 추가됩니다. 예를 들면 다음과 같습니다 <item />. 이렇게 하면 이전 브라우저와의 호환성이 제공됩니다.

메서드 매개변수로 String를 사용할 때, nullString.Empty는 동등합니다. String.Empty 는 W3C 규칙을 따릅니다.

강력한 형식의 데이터를 작성하려면 클래스를 XmlConvert 사용하여 데이터 형식을 문자열로 변환합니다. 예를 들어, 다음 C# 코드는 Double에서 String로 데이터를 변환하고, <price>19.95</price> 요소를 작성합니다.

Double price = 19.95;
writer.WriteElementString("price", XmlConvert.ToString(price));

XmlTextWriter 에서는 다음을 확인하지 않습니다.

  • 특성 및 요소 이름의 문자가 잘못되었습니다.
  • 지정된 인코딩에 맞지 않는 유니코드 문자입니다. 지정된 인코딩과 맞지 않으면 XmlTextWriter가 유니코드 문자를 문자 엔터티로 이스케이프하지 않습니다.
  • 중복된 속성입니다.
  • DOCTYPE의 공용 식별자 또는 시스템 식별자의 문자입니다.

보안 고려 사항

다음 항목은 클래스를 사용할 때 고려해야 할 XmlTextWriter 사항입니다.

  • XmlTextWriter에 의해 발생된 예외는 애플리케이션에 전달되지 않아야 하는 경로 정보를 공개할 수 있습니다. 애플리케이션은 예외를 포착하고 적절하게 처리해야 합니다.

  • 다른 애플리케이션에 XmlTextWriter 전달하면 기본 스트림이 해당 애플리케이션에 노출됩니다. 반 신뢰할 수 있는 애플리케이션에 XmlTextWriter를 전달해야 하는 경우, XmlWriter 메서드에서 만든 Create 개체를 대신 사용해야 합니다.

  • XmlTextWriterWriteDocType 또는 WriteRaw 메서드에 전달된 데이터의 유효성을 검사하지 않습니다. 이러한 메서드에 임의의 데이터를 전달해서는 안 됩니다.

  • 기본 설정이 변경된 경우 생성된 출력이 올바른 형식의 XML 데이터라는 보장은 없습니다.

  • 신뢰할 수 없는 원본에서 개체와 같은 Encoding 지원 구성 요소를 허용하지 않습니다.

생성자

Name Description
XmlTextWriter(Stream, Encoding)

지정된 스트림 및 인코딩을 사용하여 클래스의 XmlTextWriter 인스턴스를 만듭니다.

XmlTextWriter(String, Encoding)

지정된 파일을 사용하여 클래스의 XmlTextWriter 인스턴스를 만듭니다.

XmlTextWriter(TextWriter)

지정된 을 XmlTextWriter 사용하여 클래스의 인스턴스를 TextWriter만듭니다.

속성

Name Description
BaseStream

기본 스트림 개체를 가져옵니다.

Formatting

출력의 형식을 지정하는 방법을 나타냅니다.

Indentation

계층 구조 Formatting 의 각 수준에 대해 쓸 IndentChars 수를 가져오거나 설정합니다 Formatting.Indented.

IndentChar

로 설정된 Formatting경우 Formatting.Indented 인덴팅에 사용할 문자를 가져오거나 설정합니다.

Namespaces

네임스페이스 지원을 수행할지 여부를 나타내는 값을 가져오거나 설정합니다.

QuoteChar

특성 값을 인용하는 데 사용할 문자를 가져오거나 설정합니다.

Settings

XmlWriterSettings 인스턴스를 XmlWriter 만드는 데 사용되는 개체를 가져옵니다.

(다음에서 상속됨 XmlWriter)
WriteState

작성기의 상태를 가져옵니다.

XmlLang

현재 xml:lang 범위를 가져옵니다.

XmlSpace

XmlSpace 현재 xml:space 범위를 나타내는 값을 가져옵니다.

메서드

Name Description
Close()

이 스트림과 기본 스트림을 닫습니다.

Dispose()

XmlWriter 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.

(다음에서 상속됨 XmlWriter)
Dispose(Boolean)

관리되지 않는 리소스를 XmlWriter 해제하고 관리되는 리소스를 선택적으로 해제합니다.

(다음에서 상속됨 XmlWriter)
DisposeAsync()

관리되지 않는 리소스를 비동기적으로 해제, 해제 또는 다시 설정과 관련된 애플리케이션 정의 작업을 수행합니다.

(다음에서 상속됨 XmlWriter)
DisposeAsyncCore()

관리되는 리소스를 비동기적으로 해제, 해제 또는 재설정하는 것과 관련된 애플리케이션 정의 작업을 수행합니다.

(다음에서 상속됨 XmlWriter)
Equals(Object)

지정된 개체가 현재 개체와 같은지 여부를 확인합니다.

(다음에서 상속됨 Object)
Flush()

버퍼에 있는 모든 것을 기본 스트림으로 플러시하고 기본 스트림도 플러시합니다.

FlushAsync()

버퍼에 있는 모든 것을 기본 스트림으로 비동기적으로 플러시하고 기본 스트림도 플러시합니다.

(다음에서 상속됨 XmlWriter)
GetHashCode()

기본 해시 함수로 사용됩니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type 가져옵니다.

(다음에서 상속됨 Object)
LookupPrefix(String)

네임스페이스 URI의 현재 네임스페이스 범위에 정의된 가장 가까운 접두사를 반환합니다.

MemberwiseClone()

현재 Object단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)
WriteAttributes(XmlReader, Boolean)

파생 클래스 XmlReader에서 재정의되는 경우 .

(다음에서 상속됨 XmlWriter)
WriteAttributesAsync(XmlReader, Boolean)

의 현재 위치에 XmlReader있는 모든 특성을 비동기적으로 씁니다.

(다음에서 상속됨 XmlWriter)
WriteAttributeString(String, String, String, String)

파생 클래스에서 재정의된 경우 지정된 접두사, 로컬 이름, 네임스페이스 URI 및 값을 사용하여 특성을 씁니다.

(다음에서 상속됨 XmlWriter)
WriteAttributeString(String, String, String)

파생 클래스에서 재정의되는 경우 지정된 로컬 이름, 네임스페이스 URI 및 값을 사용하여 특성을 씁니다.

(다음에서 상속됨 XmlWriter)
WriteAttributeString(String, String)

파생 클래스에서 재정의되는 경우 지정된 로컬 이름과 값을 사용하여 특성을 씁니다.

(다음에서 상속됨 XmlWriter)
WriteAttributeStringAsync(String, String, String, String)

지정된 접두사, 로컬 이름, 네임스페이스 URI 및 값을 사용하여 특성을 비동기적으로 작성합니다.

(다음에서 상속됨 XmlWriter)
WriteBase64(Byte[], Int32, Int32)

지정된 이진 바이트를 base64로 인코딩하고 결과 텍스트를 씁니다.

WriteBase64Async(Byte[], Int32, Int32)

지정된 이진 바이트를 Base64로 비동기적으로 인코딩하고 결과 텍스트를 씁니다.

(다음에서 상속됨 XmlWriter)
WriteBinHex(Byte[], Int32, Int32)

지정된 이진 바이트를 binhex로 인코딩하고 결과 텍스트를 씁니다.

WriteBinHexAsync(Byte[], Int32, Int32)

지정된 이진 바이트를 BinHex 비동기적으로 인코딩하고 결과 텍스트를 씁니다.

(다음에서 상속됨 XmlWriter)
WriteCData(String)

![을(를 <) 작성합니다. CDATA[...]]> 지정된 텍스트를 포함하는 블록입니다.

WriteCDataAsync(String)

![을(를) 비동기적으로 작성합니다. < CDATA[...]]> 지정된 텍스트를 포함하는 블록입니다.

(다음에서 상속됨 XmlWriter)
WriteCharEntity(Char)

지정된 유니코드 문자 값에 대한 문자 엔터티를 강제로 생성합니다.

WriteCharEntityAsync(Char)

지정된 유니코드 문자 값에 대한 문자 엔터티 생성을 비동기적으로 강제합니다.

(다음에서 상속됨 XmlWriter)
WriteChars(Char[], Int32, Int32)

한 번에 하나의 버퍼 텍스트를 씁니다.

WriteCharsAsync(Char[], Int32, Int32)

한 번에 하나의 버퍼 텍스트를 비동기적으로 씁니다.

(다음에서 상속됨 XmlWriter)
WriteComment(String)

지정된 텍스트가 포함된 주석 <--...--> 작성합니다.

WriteCommentAsync(String)

지정된 텍스트가 포함된 주석 <--...--> 비동기적으로 작성합니다.

(다음에서 상속됨 XmlWriter)
WriteDocType(String, String, String, String)

지정된 이름 및 선택적 특성을 사용하여 DOCTYPE 선언을 씁니다.

WriteDocTypeAsync(String, String, String, String)

지정된 이름 및 선택적 특성을 사용하여 DOCTYPE 선언을 비동기적으로 작성합니다.

(다음에서 상속됨 XmlWriter)
WriteElementString(String, String, String, String)

지정된 접두사, 로컬 이름, 네임스페이스 URI 및 값을 사용하여 요소를 씁니다.

(다음에서 상속됨 XmlWriter)
WriteElementString(String, String, String)

지정된 로컬 이름, 네임스페이스 URI 및 값을 사용하여 요소를 씁니다.

(다음에서 상속됨 XmlWriter)
WriteElementString(String, String)

지정된 로컬 이름과 값을 가진 요소를 씁니다.

(다음에서 상속됨 XmlWriter)
WriteElementStringAsync(String, String, String, String)

지정된 접두사, 로컬 이름, 네임스페이스 URI 및 값을 사용하여 요소를 비동기적으로 작성합니다.

(다음에서 상속됨 XmlWriter)
WriteEndAttribute()

이전 WriteStartAttribute(String, String, String) 호출을 닫습니다.

WriteEndAttributeAsync()

이전 WriteStartAttribute(String, String) 호출을 비동기적으로 닫습니다.

(다음에서 상속됨 XmlWriter)
WriteEndDocument()

열려 있는 요소 또는 특성을 닫고 기록기를 다시 시작 상태로 만듭니다.

WriteEndDocumentAsync()

열려 있는 요소 또는 특성을 비동기적으로 닫고 기록기를 다시 시작 상태로 만듭니다.

(다음에서 상속됨 XmlWriter)
WriteEndElement()

하나의 요소를 닫고 해당 네임스페이스 범위를 팝합니다.

WriteEndElementAsync()

하나의 요소를 비동기적으로 닫고 해당 네임스페이스 범위를 팝합니다.

(다음에서 상속됨 XmlWriter)
WriteEntityRef(String)

엔터티 참조를 .로 &name;씁니다.

WriteEntityRefAsync(String)

엔터티 참조를 비동기적으로 씁 &name;니다.

(다음에서 상속됨 XmlWriter)
WriteFullEndElement()

하나의 요소를 닫고 해당 네임스페이스 범위를 팝합니다.

WriteFullEndElementAsync()

하나의 요소를 비동기적으로 닫고 해당 네임스페이스 범위를 팝합니다.

(다음에서 상속됨 XmlWriter)
WriteName(String)

지정된 이름을 작성하여 W3C XML 1.0 권장 사항에 따라 올바른 이름이 되도록 합니다.

WriteNameAsync(String)

지정된 이름을 비동기적으로 작성하여 W3C XML 1.0 권장 사항(https://www.w3.org/TR/1998/REC-xml-19980210#NT-Name)에 따라 유효한 이름인지 확인합니다.

(다음에서 상속됨 XmlWriter)
WriteNmToken(String)

지정된 이름을 작성하여 NmToken 따라 유효한 지 확인합니다.

WriteNmTokenAsync(String)

지정된 이름을 비동기적으로 작성하여 W3C XML 1.0 권장 사항(https://www.w3.org/TR/1998/REC-xml-19980210#NT-Name)에 따라 유효한 NmToken인지 확인합니다.

(다음에서 상속됨 XmlWriter)
WriteNode(XmlReader, Boolean)

파생 클래스에서 재정의된 경우 판독기에서 작성기에 이르기까지 모든 항목을 복사하고 판독기를 다음 형제의 시작으로 이동합니다.

(다음에서 상속됨 XmlWriter)
WriteNode(XPathNavigator, Boolean)

개체에서 작성기에 XPathNavigator 모든 항목을 복사합니다. 남아 있는 위치는 XPathNavigator 변경되지 않습니다.

(다음에서 상속됨 XmlWriter)
WriteNodeAsync(XmlReader, Boolean)

판독기에서 작성기에 이르기까지 모든 항목을 비동기적으로 복사하고 판독기를 다음 형제의 시작으로 이동합니다.

(다음에서 상속됨 XmlWriter)
WriteNodeAsync(XPathNavigator, Boolean)

개체의 XPathNavigator 모든 항목을 기록기에 비동기적으로 복사합니다. 남아 있는 위치는 XPathNavigator 변경되지 않습니다.

(다음에서 상속됨 XmlWriter)
WriteProcessingInstruction(String, String)

이름과 텍스트 사이에 공백이 있는 처리 명령을 다음과 같이 씁니다 <. ?name text?>.

WriteProcessingInstructionAsync(String, String)

이름 및 텍스트 사이에 공백이 있는 처리 명령을 다음과 같이 비동기적으로 작성합니다 <. ?name text?>.

(다음에서 상속됨 XmlWriter)
WriteQualifiedName(String, String)

네임스페이스로 한정된 이름을 씁니다. 이 메서드는 지정된 네임스페이스에 대한 범위에 있는 접두사를 찾습니다.

WriteQualifiedNameAsync(String, String)

네임스페이스 정규화된 이름을 비동기적으로 작성합니다. 이 메서드는 지정된 네임스페이스에 대한 범위에 있는 접두사를 찾습니다.

(다음에서 상속됨 XmlWriter)
WriteRaw(Char[], Int32, Int32)

문자 버퍼에서 원시 태그를 수동으로 씁니다.

WriteRaw(String)

문자열에서 원시 태그를 수동으로 씁니다.

WriteRawAsync(Char[], Int32, Int32)

문자 버퍼에서 원시 태그를 수동으로 비동기적으로 작성합니다.

(다음에서 상속됨 XmlWriter)
WriteRawAsync(String)

문자열에서 원시 태그를 수동으로 비동기적으로 씁니다.

(다음에서 상속됨 XmlWriter)
WriteStartAttribute(String, String, String)

특성의 시작을 씁니다.

WriteStartAttribute(String, String)

지정된 로컬 이름 및 네임스페이스 URI를 사용하여 특성의 시작을 씁니다.

(다음에서 상속됨 XmlWriter)
WriteStartAttribute(String)

지정된 로컬 이름을 사용하여 특성의 시작을 씁니다.

(다음에서 상속됨 XmlWriter)
WriteStartAttributeAsync(String, String, String)

지정된 접두사, 로컬 이름 및 네임스페이스 URI를 사용하여 특성의 시작을 비동기적으로 씁니다.

(다음에서 상속됨 XmlWriter)
WriteStartDocument()

버전 "1.0"을 사용하여 XML 선언을 씁니다.

WriteStartDocument(Boolean)

버전 "1.0"과 독립 실행형 특성을 사용하여 XML 선언을 씁니다.

WriteStartDocumentAsync()

버전 "1.0"을 사용하여 XML 선언을 비동기적으로 작성합니다.

(다음에서 상속됨 XmlWriter)
WriteStartDocumentAsync(Boolean)

버전 "1.0"과 독립 실행형 특성을 사용하여 XML 선언을 비동기적으로 작성합니다.

(다음에서 상속됨 XmlWriter)
WriteStartElement(String, String, String)

지정된 시작 태그를 작성하고 지정된 네임스페이스 및 접두사에 연결합니다.

WriteStartElement(String, String)

파생 클래스에서 재정의된 경우 지정된 시작 태그를 작성하고 지정된 네임스페이스와 연결합니다.

(다음에서 상속됨 XmlWriter)
WriteStartElement(String)

파생 클래스에서 재정의되는 경우 지정된 로컬 이름을 사용하여 시작 태그를 작성합니다.

(다음에서 상속됨 XmlWriter)
WriteStartElementAsync(String, String, String)

지정된 시작 태그를 비동기적으로 작성하고 지정된 네임스페이스 및 접두사에 연결합니다.

(다음에서 상속됨 XmlWriter)
WriteString(String)

지정된 텍스트 콘텐츠를 씁니다.

WriteStringAsync(String)

지정된 텍스트 콘텐츠를 비동기적으로 씁니다.

(다음에서 상속됨 XmlWriter)
WriteSurrogateCharEntity(Char, Char)

서로게이트 문자 쌍에 대한 서로게이트 문자 엔터티를 생성하고 씁니다.

WriteSurrogateCharEntityAsync(Char, Char)

서로게이트 문자 쌍에 대한 서로게이트 문자 엔터티를 비동기적으로 생성하고 씁니다.

(다음에서 상속됨 XmlWriter)
WriteValue(Boolean)

값을 씁니다 Boolean .

(다음에서 상속됨 XmlWriter)
WriteValue(DateTime)

값을 씁니다 DateTime .

(다음에서 상속됨 XmlWriter)
WriteValue(DateTimeOffset)

값을 씁니다 DateTimeOffset .

(다음에서 상속됨 XmlWriter)
WriteValue(Decimal)

값을 씁니다 Decimal .

(다음에서 상속됨 XmlWriter)
WriteValue(Double)

값을 씁니다 Double .

(다음에서 상속됨 XmlWriter)
WriteValue(Int32)

값을 씁니다 Int32 .

(다음에서 상속됨 XmlWriter)
WriteValue(Int64)

값을 씁니다 Int64 .

(다음에서 상속됨 XmlWriter)
WriteValue(Object)

개체 값을 씁니다.

(다음에서 상속됨 XmlWriter)
WriteValue(Single)

단정밀도 부동 소수점 숫자를 씁니다.

(다음에서 상속됨 XmlWriter)
WriteValue(String)

값을 씁니다 String .

(다음에서 상속됨 XmlWriter)
WriteWhitespace(String)

지정된 공백을 씁니다.

WriteWhitespaceAsync(String)

지정된 공백을 비동기적으로 작성합니다.

(다음에서 상속됨 XmlWriter)

명시적 인터페이스 구현

Name Description
IDisposable.Dispose()

이 멤버에 대한 설명은 을 참조하세요 Dispose().

(다음에서 상속됨 XmlWriter)

확장명 메서드

Name Description
ConfigureAwait(IAsyncDisposable, Boolean)

비동기 삭제 가능 파일에서 반환된 작업에 대한 대기가 수행되는 방법을 구성합니다.

적용 대상

추가 정보