XML 리터럴 개요(Visual Basic)
XML 리터럴을 사용하면 XML을 Visual Basic 코드에 직접 통합할 수 있습니다. XML 리터럴 구문은 LINQ to XML 개체를 나타내며 XML 1.0 구문과 유사합니다. 이렇게 하면 코드가 최종 XML과 동일한 구조를 가지므로 프로그래밍 방식으로 XML 요소와 문서를 더 쉽게 만들 수 있습니다.
Visual Basic은 XML 리터럴을 LINQ to XML 개체로 컴파일합니다. LINQ to XML은 XML을 만들고 조작하기 위한 간단한 개체 모델을 제공하며 이 모델은 LINQ(Language-Integrated Query)와 잘 통합됩니다. 자세한 내용은 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 리터럴은 줄 연속 문자(공백 밑줄 입력 시퀀스)를 사용하지 않고 여러 줄에 걸쳐 있을 수 있습니다. 이렇게 하면 코드의 XML 리터럴을 XML 문서와 더 쉽게 비교할 수 있습니다.
컴파일러는 줄 연속 문자를 XML 리터럴의 일부로 처리합니다. 따라서 공백-밑줄-입력 시퀀스는 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>
참고 항목
.NET
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기