Sdílet prostřednictvím


Přehled literálů XML (Visual Basic)

Literál XML umožňuje začlenit XML přímo do kódu jazyka Visual Basic. Literálová syntaxe XML představuje objekty LINQ to XML a podobá se syntaxi XML 1.0. To usnadňuje vytváření elementů XML a dokumentů programově, protože váš kód má stejnou strukturu jako konečný XML.

Visual Basic zkompiluje literály XML do objektů LINQ to XML. LINQ to XML poskytuje jednoduchý objektový model pro vytváření a manipulaci s XML a tento model se dobře integruje s jazykem integrovaným dotazem (LINQ). Další informace najdete na webu XElement.

Výraz jazyka Visual Basic můžete vložit do literálu XML. Za běhu aplikace vytvoří objekt LINQ to XML pro každý literál, který obsahuje hodnoty vložených výrazů. To umožňuje zadat dynamický obsah uvnitř literálu XML. Další informace naleznete v tématu Vložené výrazy v JAZYCE XML.

Další informace o rozdílech mezi syntaxí literálu XML a syntaxí XML 1.0 naleznete v tématu Literály XML a specifikace XML 1.0.

Jednoduché literály

V kódu jazyka Visual Basic můžete vytvořit objekt LINQ to XML zadáním nebo vložením platného KÓDU XML. Literál elementu XElement XML vrátí objekt. Další informace naleznete v tématu Literály elementu XML a literály XML a specifikace XML 1.0. Následující příklad vytvoří XML element, který má několik podřízených elementů.

Dim contact1 As XElement = 
    <contact>
      <name>Patrick Hines</name>
      <phone type="home">206-555-0144</phone>
      <phone type="work">425-555-0145</phone>
    </contact>

Dokument XML můžete vytvořit spuštěním literálu XML s <?xml version="1.0"?>, jak je znázorněno v následujícím příkladu. Literál dokumentu XML vrátí XDocument objekt. Další informace naleznete v tématu Literál dokumentu 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>

Poznámka:

Syntaxe literálu XML v jazyce Visual Basic není identická se syntaxí ve specifikaci XML 1.0. Další informace naleznete v tématu Literály XML a specifikace XML 1.0.

Pokračování řádku

Literál XML může obsahovat více řádků bez použití znaků pokračování řádku (sekvence enter mezera podtržítko). To usnadňuje porovnání literálů XML v kódu s dokumenty XML.

Kompilátor zpracovává znaky pokračování řádku jako součást literálu XML. Proto byste měli použít sekvenci mezer-podtržítko-enter pouze v případě, že patří do objektu LINQ to XML.

Pokud však máte víceřádkový výraz ve vloženém výrazu, potřebujete znaky pokračování řádku. Další informace naleznete v tématu Vložené výrazy v JAZYCE XML.

Vkládání dotazů do literálů XML

Dotaz můžete použít ve vloženém výrazu. Když to uděláte, prvky vrácené dotazem se přidají do elementu XML. To umožňuje přidat dynamický obsah, například výsledek dotazu uživatele, do literálu XML.

Například následující kód používá vložený dotaz k vytvoření xml elementů ze členů phoneNumbers2 pole a pak tyto prvky přidat jako podřízené položky 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

Jak kompilátor vytváří objekty z literálů XML

Kompilátor jazyka Visual Basic přeloží literály XML do volání ekvivalentních konstruktorů LINQ to XML pro sestavení objektu LINQ to XML. Kompilátor jazyka Visual Basic například přeloží následující příklad kódu do volání konstruktoru XProcessingInstruction pro instrukce verze XML, volání konstruktoru <contact>XElement pro , <name>a elementy a <phone> volání XAttribute konstruktoru type pro atribut. Konkrétně, vzhledem k atributům v následující ukázce, kompilátor jazyka Visual Basic bude volat XAttribute(XName, Object) konstruktor dvakrát. První předá hodnotu type parametru name a hodnotu home parametru value . Druhá také předá hodnotu type parametru name , ale hodnotu work parametru value .

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>

Viz také