Sdílet prostřednictvím


Literál XML elementu (Visual Basic)

Literál, který představuje XElement objekt.

Syntaxe

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

Součástky

  • <

    Povinný: Otevře počáteční značku prvku.

  • name

    Povinný: Název elementu. Formát je jeden z následujících způsobů:

    • Text literálu pro název elementu formuláře [ePrefix:]eName, kde:

      Část Popis
      ePrefix Nepovinné. Předpona oboru názvů XML pro element Musí být globální obor názvů XML, který je definován příkazem Imports v souboru nebo na úrovni projektu, nebo místní obor názvů XML, který je definován v tomto elementu nebo nadřazený element.
      eName Povinný: Název elementu. Formát je jeden z následujících způsobů:

      - Literálový text. Viz názvy deklarovaných elementů a atributů XML.
      - Vložený výraz formuláře <%= eNameExp %>. Typ eNameExp musí být String nebo typ, který se implicitně konvertibilní na XName.
    • Vložený výraz formuláře <%= nameExp %>. Typ nameExp musí být String nebo typ implicitně konvertibilní na XName. Vložený výraz není povolen ve koncové značce elementu.

  • attributeList

    Nepovinné. Seznam atributů deklarovaných v literálu

    attribute [ attribute ... ]

    Každá attribute z nich má jednu z následujících syntaxí:

    • Přiřazení atributu formuláře [aPrefix:]aName=aValue, kde:

      Část Popis
      aPrefix Nepovinné. Předpona oboru názvů XML pro atribut Musí být globální obor názvů XML, který je definován příkazem Imports , nebo místní obor názvů XML, který je definován v tomto elementu nebo nadřazený element.
      aName Povinný: Název atributu Formát je jeden z následujících způsobů:

      - Literálový text. Viz názvy deklarovaných elementů a atributů XML.
      - Vložený výraz formuláře <%= aNameExp %>. Typ aNameExp musí být String nebo typ, který se implicitně konvertibilní na XName.
      aValue Nepovinné. Hodnota atributu. Formát je jeden z následujících způsobů:

      - Literálový text uzavřený do uvozovek.
      - Vložený výraz formuláře <%= aValueExp %>. Jakýkoli typ je povolený.
    • Vložený výraz formuláře <%= aExp %>.

  • />

    Nepovinné. Označuje, že prvek je prázdný prvek bez obsahu.

  • >

    Povinný: Ukončí počáteční nebo prázdnou značku elementu.

  • elementContents

    Nepovinné. Obsah prvku

    content [ content ... ]

    Každá content z nich může být jedna z následujících možností:

    • Literálový text. Všechny prázdné znaky elementContents se stanou významnými, pokud existuje nějaký literálový text.

    • Vložený výraz formuláře <%= contentExp %>.

    • Literál elementu XML.

    • Literál komentáře XML. Viz Literál komentáře XML.

    • Literál instrukce zpracování XML. Viz Literál instrukce zpracování XML.

    • Literál CDATA XML. Viz literál XML CDATA.

  • </[name]>

    Nepovinné. Představuje pravou značku prvku. Volitelný name parametr není povolen, pokud je výsledkem vloženého výrazu.

Návratová hodnota

Objekt XElement .

Poznámky

K vytvoření XElement objektů v kódu můžete použít syntaxi literálu elementu XML.

Poznámka:

Literál XML může obsahovat více řádků bez použití znaků pokračování řádku. Tato funkce umožňuje kopírovat obsah z dokumentu XML a vložit ho přímo do programu jazyka Visual Basic.

Vložené výrazy formuláře <%= exp %> umožňují přidat dynamické informace do literálu elementu XML. Další informace naleznete v tématu Vložené výrazy v JAZYCE XML.

Kompilátor jazyka Visual Basic převede literál elementu XML na volání konstruktoru XElement a v případě potřeby konstruktor.XAttribute

Obory názvů XML

Předpony oboru názvů XML jsou užitečné, když potřebujete vytvořit literály XML s elementy ze stejného oboru názvů mnohokrát v kódu. Můžete použít globální předpony oboru názvů XML, které definujete pomocí Imports příkazu nebo místních předpon, které definujete pomocí syntaxe atributu xmlns:xmlPrefix="xmlNamespace" . Další informace naleznete v tématu Import – příkaz (obor názvů XML).

V souladu s pravidly oborů oboru názvů XML mají místní předpony přednost před globálními předponami. Pokud však literál XML definuje obor názvů XML, tento obor názvů není k dispozici pro výrazy, které se zobrazí ve vloženém výrazu. Vložený výraz má přístup pouze k globálnímu oboru názvů XML.

Kompilátor jazyka Visual Basic převede každý globální obor názvů XML používaný literálem XML na jednu místní definici oboru názvů v generovaném kódu. Globální obory názvů XML, které se nepoužívají, se ve vygenerovaném kódu nezobrazují.

Příklad 1

Následující příklad ukazuje, jak vytvořit jednoduchý xml element, který má dva vnořené prázdné elementy.

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

Console.WriteLine(test1)

V příkladu se zobrazí následující text. Všimněte si, že literál zachovává strukturu prázdných prvků.

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

Příklad 2

Následující příklad ukazuje, jak použít vložené výrazy k pojmenování elementu a vytvoření atributů.

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)

Tento kód zobrazí následující text:

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

Příklad 3

Následující příklad deklaruje ns jako předponu oboru názvů XML. Potom použije předponu oboru názvů k vytvoření literálu XML a zobrazí konečný formulář elementu.

' 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

Tento kód zobrazí následující text:

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

Všimněte si, že kompilátor převednul předponu globálního oboru názvů XML na definici předpony pro obor názvů XML. Element <ns:middle> předefinuje předponu oboru názvů XML pro <element ns:inner1> . Nicméně ns <:inner2> element používá obor názvů definovaný příkazem Imports .

Viz také