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 %>
. TypeNameExp
musí býtString
nebo typ, který se implicitně konvertibilní na XName.Vložený výraz formuláře
<%= nameExp %>
. TypnameExp
musí býtString
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 %>
. TypaNameExp
musí býtString
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
.