XML 리터럴 개요

업데이트: 2007년 11월

XML 리터럴을 사용하면 XML을 사용자의 Visual Basic 코드에 직접 통합할 수 있습니다. XML 리터럴 구문은 LINQ to XML 개체를 나타내고 XML 1.0 구문과 유사합니다. XML 리터럴 구문을 사용하면 최종 XML의 구조가 코드와 유사하기 때문에 프로그래밍 방식으로 XML 요소 및 문서를 쉽게 만들 수 있습니다.

Visual Basic은 XML 리터럴을 LINQ to XML 개체로 컴파일합니다. LINQ to XML은 XML을 만들고 조작하기 위한 간단한 개체 모델을 제공하며 이 모델은 LINQ(통합 언어 쿼리)와 잘 통합됩니다. 자세한 내용은 XElement를 참조하십시오.

XML 리터럴에 Visual Basic 식을 포함시킬 수 있습니다. 실행 시 사용자 응용 프로그램은 각 리터럴에 대해 LINQ to XML 개체를 만들고 포함된 식의 값을 통합합니다. 이를 통해 XML 리터럴 내에 동적 콘텐츠를 지정할 수 있습니다. 자세한 내용은 XML의 포함 식을 참조하십시오.

XML 리터럴 구문과 XML 1.0 구문의 차이점에 대한 자세한 내용은 XML 리터럴 및 XML 1.0 사양을 참조하십시오.

단순 리터럴

유효한 XML을 입력하거나 붙여넣어 Visual Basic 코드에서 LINQ to XML 개체를 만들 수 있습니다. XML 요소 리터럴은 XElement 개체를 반환합니다. 자세한 내용은 XML 요소 리터럴XML 리터럴 및 XML 1.0 사양을 참조하십시오. 다음 예제에서는 여러 개의 자식 요소를 갖는 XML 요소를 만듭니다.

Dim contact1 As XElement = _
    <contact>
      <name>Patrick Hines</name>
      <phone type="home">206-555-0144</phone>
      <phone type="work">425-555-0145</phone>
    </contact>

다음 예제에서와 같이 <?xml version="1.0"?>을 사용하여 XML 리터럴을 시작하여 XML 문서를 만들 수 있습니다. XML 문서 리터럴은 XDocument 개체를 반환합니다. 자세한 내용은 XML 문서 리터럴을 참조하십시오.

Dim contactDoc As XDocument = _
    <?xml version="1.0"?>
    <contact>
      <name>Patrick Hines</name>
      <phone type="home">206-555-0144</phone>
      <phone type="work">425-555-0145</phone>
    </contact>
참고:

Visual Basic의 XML 리터럴 구문은 XML 1.0 사양의 구문과 동일하지 않습니다. 자세한 내용은 XML 리터럴 및 XML 1.0 사양을 참조하십시오.

줄 연속

XML 리터럴은 줄 연속 문자(공백-밑줄-Enter 키 시퀀스)를 사용하지 않고 여러 줄로 나타날 수 있습니다. 이를 통해 코드의 XML 리터럴을 XML 문서와 보다 쉽게 비교할 수 있습니다.

컴파일러는 줄 연속 문자를 XML 리터럴의 일부로 처리합니다. 따라서 공백-밑줄-Enter 시퀀스는 LINQ to XML 개체에 속해 있을 때에만 사용해야 합니다.

그러나 포함된 식에 여러 줄의 식이 들어 있는 경우 줄 연속 문자가 필요합니다. 자세한 내용은 XML의 포함 식을 참조하십시오.

XML 리터럴에 쿼리 포함

포함된 식에서 쿼리를 사용할 수 있습니다. 포함된 식에 쿼리를 사용할 때 쿼리에 의해 반환되는 요소는 XML 요소에 추가됩니다. 이를 통해 사용자 쿼리의 결과와 같은 동적 콘텐츠를 XML 리터럴에 추가할 수 있습니다.

예를 들어 다음 코드는 포함된 쿼리를 사용하여 phoneNumbers2 배열의 멤버로부터 XML 요소를 만든 다음 이 요소들을 contact2의 자식으로 추가합니다.

Public Class XmlSamples

  Public Sub Main()
    ' Initialize the objects. 

    Dim phoneNumbers2 As Phone() = { _
        New Phone("home", "206-555-0144"), _
        New Phone("work", "425-555-0145")}

    ' Convert the data contained in phoneNumbers2 to XML. 

    Dim contact2 = _
        <contact>
          <name>Patrick Hines</name>
          <%= From p In phoneNumbers2 _
            Select <phone type=<%= p.Type %>><%= p.Number %></phone> _
          %>
        </contact>

    Console.WriteLine(contact2)
  End Sub

End Class

Class Phone
  Public Type As String
  Public Number As String
  Public Sub New(ByVal t As String, ByVal n As String)
    Type = t
    Number = n
  End Sub
End Class

컴파일러가 XML 리터럴로부터 개체를 만드는 방법

Visual Basic 컴파일러는 XML 리터럴을 그에 해당하는 LINQ to XML 생성자에 대한 호출로 변환하여 LINQ to XML 개체를 빌드합니다. 예를 들어 Visual Basic 컴파일러는 다음 코드 예제를 XML 버전 명령의 XProcessingInstruction 생성자에 대한 호출, <contact>, <name> 및 <phone>의 XElement 생성자에 대한 호출, type 특성의 XAttribute 생성자에 대한 호출로 변환합니다. 특히 다음 샘플에서의 특성을 사용할 경우 Visual Basic 컴파일러는 XAttribute(XName, Object) 생성자를 두 번 호출합니다. 첫 번째는 name 매개 변수의 type 값과 value 매개 변수의 home 값을 전달합니다. 두 번째에서는 name 매개 변수의 type 값과 value 매개 변수의 work 값을 전달합니다.

Dim contactDoc As XDocument = _
    <?xml version="1.0"?>
    <contact>
      <name>Patrick Hines</name>
      <phone type="home">206-555-0144</phone>
      <phone type="work">425-555-0145</phone>
    </contact>

참고 항목

개념

XML의 포함 식

참조

XML 문서 리터럴

XML 요소 리터럴

XElement

기타 리소스

Visual Basic에서 XML 만들기

XML 리터럴