XML 요소 리터럴(Visual Basic)

XElement 개체를 나타내는 리터럴입니다.

구문

<name [ attributeList ] />
-or-
<name [ attributeList ] > [ elementContents ] </[ name ]>

부분

  • <

    필수입니다. 시작 요소 태그를 엽니다.

  • name

    필수입니다. 요소 이름입니다. 형식은 다음 중 하나입니다.

    • [ePrefix:]eName 형식의 요소 이름에 대한 리터럴 텍스트입니다. 여기서:

      요소 설명
      ePrefix 선택 사항입니다. 요소의 XML 네임스페이스 접두사입니다. 파일이나 프로젝트 수준에서 Imports 문으로 정의된 전역 XML 네임스페이스이거나 이 요소나 부모 요소에 정의된 로컬 XML 네임스페이스여야 합니다.
      eName 필수입니다. 요소 이름입니다. 형식은 다음 중 하나입니다.

      - 리터럴 텍스트입니다. 선언된 XML 요소 및 특성의 이름을 참조하세요.
      - <%= eNameExp %> 형식의 삽입된 식입니다. eNameExp의 형식은 String이거나 암시적으로 XName으로 변환 가능한 형식이어야 합니다.
    • <%= nameExp %> 형식의 삽입된 식입니다. nameExp의 형식은 String이거나 암시적으로 XName으로 변환할 수 있는 형식이어야 합니다. 요소의 닫는 태그에는 포함된 식이 허용되지 않습니다.

  • attributeList

    선택 사항. 리터럴에 선언된 특성 목록입니다.

    attribute [ attribute ... ]

    attribute에는 다음 구문 중 하나가 있습니다.

    • [aPrefix:]aName=aValue 형식의 특성 할당입니다. 여기서:

      요소 설명
      aPrefix 선택 사항입니다. 특성의 XML 네임스페이스 접두사입니다. Imports 문으로 정의된 전역 XML 네임스페이스이거나 이 요소 또는 부모 요소에 정의된 로컬 XML 네임스페이스여야 합니다.
      aName 필수입니다. 특성 이름입니다. 형식은 다음 중 하나입니다.

      - 리터럴 텍스트입니다. 선언된 XML 요소 및 특성의 이름을 참조하세요.
      - <%= aNameExp %> 형식의 삽입된 식입니다. aNameExp의 형식은 String이거나 암시적으로 XName으로 변환 가능한 형식이어야 합니다.
      aValue 선택 사항. 특성의 값입니다. 형식은 다음 중 하나입니다.

      - 따옴표로 묶인 리터럴 텍스트입니다.
      - <%= aValueExp %> 형식의 삽입된 식입니다. 모든 형식이 허용됩니다.
    • <%= aExp %> 형식의 삽입된 식입니다.

  • />

    선택 사항. 요소가 콘텐츠가 없는 빈 요소임을 나타냅니다.

  • >

    필수입니다. 시작 또는 빈 요소 태그를 종료합니다.

  • elementContents

    선택 사항. 요소의 콘텐츠입니다.

    content [ content ... ]

    content는 다음 중 하나일 수 있습니다.

    • 리터럴 텍스트입니다. 리터럴 텍스트가 있는 경우 elementContents의 모든 공백이 중요해집니다.

    • <%= contentExp %> 형식의 삽입된 식입니다.

    • XML 요소 리터럴입니다.

    • XML 주석 리터럴입니다. XML 주석 리터럴을 참조하세요.

    • XML 처리 명령 리터럴입니다. XML 처리 명령 리터럴을 참조하세요.

    • XML CDATA 리터럴입니다. XML CDATA 리터럴을 참조하세요.

  • </[name]>

    선택 사항. 요소의 닫는 태그를 나타냅니다. 선택적 name 매개 변수는 포함된 식의 결과인 경우 허용되지 않습니다.

Return Value

XElement 개체입니다.

설명

XML 요소 리터럴 구문을 사용하여 코드에 XElement 개체를 만들 수 있습니다.

참고 항목

XML 리터럴은 줄 연속 문자를 사용하지 않고 여러 줄에 걸쳐 있을 수 있습니다. 이 기능을 사용하면 XML 문서의 콘텐츠를 복사하여 Visual Basic 프로그램에 직접 붙여넣을 수 있습니다.

<%= exp %> 형식의 삽입된 식을 사용하면 XML 요소 리터럴에 동적 정보를 추가할 수 있습니다. 자세한 내용은 XML에 포함된 식을 참조하세요.

Visual Basic 컴파일러는 XML 요소 리터럴을 XElement 생성자 및 필요한 경우 XAttribute 생성자에 대한 호출로 변환합니다.

XML 네임스페이스

XML 네임스페이스 접두사는 코드에서 동일한 네임스페이스의 요소로 XML 리터럴을 여러 번 만들어야 할 때 유용합니다. Imports 문을 사용하여 정의하는 전역 XML 네임스페이스 접두사 또는 xmlns:xmlPrefix="xmlNamespace" 특성 구문을 사용하여 정의하는 로컬 접두사를 사용할 수 있습니다. 자세한 내용은 Imports 문(XML 네임스페이스)을 참조하세요.

XML 네임스페이스의 범위 지정 규칙에 따라 로컬 접두사는 전역 접두사보다 우선합니다. 그러나 XML 리터럴이 XML 네임스페이스를 정의하는 경우 해당 네임스페이스는 포함된 식에 나타나는 식에 사용할 수 없습니다. 포함된 식은 전역 XML 네임스페이스에만 액세스할 수 있습니다.

Visual Basic 컴파일러는 XML 리터럴에서 사용되는 각 전역 XML 네임스페이스를 생성된 코드의 하나의 로컬 네임스페이스 정의로 변환합니다. 사용되지 않는 전역 XML 네임스페이스는 생성된 코드에 표시되지 않습니다.

예 1

다음 예에서는 두 개의 중첩된 빈 요소가 있는 간단한 XML 요소를 만드는 방법을 보여 줍니다.

Dim test1 As XElement = 
<outer>
    <inner1></inner1>
    <inner2/>
</outer>

Console.WriteLine(test1)

이 예에서는 다음 텍스트를 표시합니다. 리터럴은 빈 요소의 구조를 유지합니다.

<outer>
  <inner1></inner1>
  <inner2 />
</outer>

예제 2

다음 예에서는 포함된 식을 사용하여 요소 이름을 지정하고 특성을 만드는 방법을 보여 줍니다.

Dim elementType = "book"
Dim authorName = "My Author"
Dim attributeName1 = "year"
Dim attributeValue1 = 1999
Dim attributeName2 = "title"
Dim attributeValue2 = "My Book"

Dim book As XElement = 
<<%= elementType %>
    isbn="1234"
    author=<%= authorName %>
    <%= attributeName1 %>=<%= attributeValue1 %>
    <%= New XAttribute(attributeName2, attributeValue2) %>
/>

Console.WriteLine(book)

이 코드의 텍스트는 다음과 같습니다.

<book isbn="1234" author="My Author" year="1999" title="My Book" />

예 3

다음 예제에서는 ns를 XML 네임스페이스 접두사로 선언한 다음 그런 다음 네임스페이스의 접두사를 사용하여 XML 리터럴을 만들고 요소의 최종 형식을 표시합니다.

' Place Imports statements at the top of your program.  
Imports <xmlns:ns="http://SomeNamespace">

Class TestClass1

    Shared Sub TestPrefix()
        ' Create test using a global XML namespace prefix. 
        Dim inner2 = <ns:inner2/>

        Dim test = 
        <ns:outer>
            <ns:middle xmlns:ns="http://NewNamespace">
                <ns:inner1/>
                <%= inner2 %>
            </ns:middle>
        </ns:outer>

        ' Display test to see its final form. 
        Console.WriteLine(test)
    End Sub

End Class

이 코드의 텍스트는 다음과 같습니다.

<ns:outer xmlns:ns="http://SomeNamespace">
  <ns:middle xmlns:ns="http://NewNamespace">
    <ns:inner1 />
    <inner2 xmlns="http://SomeNamespace" />
  </ns:middle>
</ns:outer>

컴파일러는 전역 XML 네임스페이스의 접두사를 XML 네임스페이스의 접두사 정의로 변환했습니다. <ns:middle> 요소는 <ns:inner1> 요소의 XML 네임스페이스 접두사를 재정의합니다. 그러나 <ns:inner2> 요소는 Imports 문으로 정의된 네임스페이스를 사용합니다.

참고 항목