Literał elementu XML (Visual Basic)

Literał reprezentujący XElement obiekt.

Składnia

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

generatora

  • <

    Wymagany. Otwiera tag elementu początkowego.

  • name

    Wymagany. Nazwa elementu. Format jest jednym z następujących elementów:

    • Tekst literału dla nazwy elementu formularza [ePrefix:]eName, gdzie:

      Element opis
      ePrefix Opcjonalny. Prefiks przestrzeni nazw XML dla elementu. Musi być globalną przestrzenią nazw XML zdefiniowaną za Imports pomocą instrukcji w pliku lub na poziomie projektu albo lokalną przestrzenią nazw XML zdefiniowaną w tym elemecie lub elemercie nadrzędnym.
      eName Wymagany. Nazwa elementu. Format jest jednym z następujących elementów:

      - Tekst literału. Zobacz Nazwy zadeklarowanych elementów XML i atrybutów.
      - Osadzone wyrażenie formularza <%= eNameExp %>. Typ eNameExp musi mieć String typ lub typ niejawnie konwertowany na XName.
    • Osadzone wyrażenie formularza <%= nameExp %>. Typ nameExp musi być String lub typ niejawnie konwertowany na XName. Wyrażenie osadzone nie jest dozwolone w tagu zamykającym elementu.

  • attributeList

    Opcjonalny. Lista atrybutów zadeklarowanych w literału.

    attribute [ attribute ... ]

    Każda attribute z nich ma jedną z następujących składni:

    • Przypisanie atrybutu formularza [aPrefix:]aName=aValue, gdzie:

      Element opis
      aPrefix Opcjonalny. Prefiks przestrzeni nazw XML dla atrybutu. Musi być globalną przestrzenią nazw XML zdefiniowaną za Imports pomocą instrukcji lub lokalną przestrzenią nazw XML zdefiniowaną w tym elemecie lub elemercie nadrzędnym.
      aName Wymagany. Nazwa atrybutu. Format jest jednym z następujących elementów:

      - Tekst literału. Zobacz Nazwy zadeklarowanych elementów XML i atrybutów.
      - Osadzone wyrażenie formularza <%= aNameExp %>. Typ aNameExp musi mieć String typ lub typ niejawnie konwertowany na XName.
      aValue Opcjonalny. Wartość atrybutu. Format jest jednym z następujących elementów:

      - Tekst literału, ujęty w znaki cudzysłowu.
      - Osadzone wyrażenie formularza <%= aValueExp %>. Dowolny typ jest dozwolony.
    • Osadzone wyrażenie formularza <%= aExp %>.

  • />

    Opcjonalny. Wskazuje, że element jest pustym elementem bez zawartości.

  • >

    Wymagany. Kończy tag początku lub pustego elementu.

  • elementContents

    Opcjonalny. Zawartość elementu.

    content [ content ... ]

    Każdy content z nich może być jednym z następujących elementów:

    • Tekst literału. Wszystkie białe znaki w elementContents obiekcie stają się znaczące, jeśli istnieje jakikolwiek tekst literału.

    • Osadzone wyrażenie formularza <%= contentExp %>.

    • Literał elementu XML.

    • Literał komentarza XML. Zobacz Literał komentarza XML.

    • Literał instrukcji przetwarzania XML. Zobacz Literał instrukcji przetwarzania XML.

    • Literał CDATA XML. Zobacz Literał CDATA XML.

  • </[name]>

    Opcjonalny. Reprezentuje tag zamykający elementu. Opcjonalny name parametr nie jest dozwolony, gdy jest wynikiem wyrażenia osadzonego.

Wartość zwracana

Obiekt XElement.

Uwagi

Składnia literału elementu XML umożliwia tworzenie XElement obiektów w kodzie.

Uwaga

Literał XML może obejmować wiele wierszy bez używania znaków kontynuacji wiersza. Ta funkcja umożliwia kopiowanie zawartości z dokumentu XML i wklejanie jej bezpośrednio do programu Visual Basic.

Wyrażenia osadzone formularza <%= exp %> umożliwiają dodawanie informacji dynamicznych do literału elementu XML. Aby uzyskać więcej informacji, zobacz Wyrażenia osadzone w języku XML.

Kompilator języka Visual Basic konwertuje literał elementu XML na wywołania XElement konstruktora i, jeśli jest to wymagane, XAttribute konstruktor.

Przestrzenie nazw XML

Prefiksy przestrzeni nazw XML są przydatne podczas tworzenia literałów XML z elementami z tej samej przestrzeni nazw wiele razy w kodzie. Można użyć globalnych prefiksów przestrzeni nazw XML, które definiuje się za pomocą Imports instrukcji lub prefiksów lokalnych, które definiuje się przy użyciu składni atrybutu xmlns:xmlPrefix="xmlNamespace" . Aby uzyskać więcej informacji, zobacz Import Statement (XML Namespace).

Zgodnie z regułami określania zakresu dla przestrzeni nazw XML lokalne prefiksy mają pierwszeństwo przed globalnymi prefiksami. Jeśli jednak literał XML definiuje przestrzeń nazw XML, ta przestrzeń nazw nie jest dostępna dla wyrażeń wyświetlanych w wyrażeniu osadzonym. Osadzone wyrażenie może uzyskiwać dostęp tylko do globalnej przestrzeni nazw XML.

Kompilator języka Visual Basic konwertuje każdą globalną przestrzeń nazw XML używaną przez literał XML na jedną lokalną definicję przestrzeni nazw w wygenerowanym kodzie. Globalne przestrzenie nazw XML, które nie są używane, nie są wyświetlane w wygenerowany kod.

Przykład 1

W poniższym przykładzie pokazano, jak utworzyć prosty element XML zawierający dwa zagnieżdżone puste elementy.

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

Console.WriteLine(test1)

W przykładzie zostanie wyświetlony następujący tekst. Zwróć uwagę, że literał zachowuje strukturę pustych elementów.

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

Przykład 2

W poniższym przykładzie pokazano, jak używać wyrażeń osadzonych do nazywania elementu i tworzenia atrybutów.

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)

Ten kod wyświetla następujący tekst:

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

Przykład 3

Poniższy przykład deklaruje ns jako prefiks przestrzeni nazw XML. Następnie używa prefiksu przestrzeni nazw do utworzenia literału XML i wyświetla ostateczny formularz 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

Ten kod wyświetla następujący tekst:

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

Zwróć uwagę, że kompilator przekonwertował prefiks globalnej przestrzeni nazw XML na definicję prefiksu dla przestrzeni nazw XML. Element <ns:middle> definiuje prefiks przestrzeni nazw XML dla <elementu ns:inner1> . <Jednak element ns:inner2> używa przestrzeni nazw zdefiniowanej przez instrukcję Imports .

Zobacz też