Megosztás a következőn keresztül:


XML-konstansok áttekintése (Visual Basic)

Az XML-literál lehetővé teszi, hogy közvetlenül beépítse az XML-t a Visual Basic-kódba. Az XML-literál szintaxis a LINQ-t az XML-objektumokhoz jelöli, és az XML 1.0 szintaxishoz hasonló. Így könnyebben hozhat létre XML-elemeket és dokumentumokat programozott módon, mivel a kód szerkezete megegyezik a végleges XML-fájléval.

A Visual Basic XML-literálokat fordít LINQ-ra XML-objektumokká. A LINQ–XML egyszerű objektummodellt biztosít az XML létrehozásához és manipulálásához, és ez a modell jól integrálható a nyelvvel integrált lekérdezéssel (LINQ). További információ: XElement.

Visual Basic-kifejezéseket xml-literálba ágyazhat be. Futtatáskor az alkalmazás létrehoz egy LINQ-ból XML-objektumot minden egyes literálhoz, amely a beágyazott kifejezések értékeit tartalmazza. Ez lehetővé teszi, hogy dinamikus tartalmat adjon meg egy XML-literálon belül. További információ: Beágyazott kifejezések XML-ben.

Az XML-literális szintaxis és az XML 1.0 szintaxis közötti különbségekről további információt az XML Literálok és az XML 1.0 specifikációja című témakörben talál.

Egyszerű literálok

A Visual Basic-kódban linq-ből XML-objektumot hozhat létre érvényes XML-fájlba való beírással vagy beillesztéssel. Az XML-elem literál egy objektumot XElement ad vissza. További információkért lásd az XML-elem literál - és XML-literáljait, valamint az XML 1.0 specifikációját. Az alábbi példa egy több gyermekelemet tartalmazó XML-elemet hoz létre.

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

XML-dokumentumot úgy hozhat létre, hogy elindít egy XML-literált <?xml version="1.0"?>az alábbi példában látható módon. Egy XML-dokumentum literál egy objektumot XDocument ad vissza. További információ: XML-dokumentumkonstans.

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>

Feljegyzés

A Visual Basic XML-literálszintaxisa nem azonos az XML 1.0 specifikációjának szintaxisával. További információ: XML-literálok és az XML 1.0 specifikációja.

Sor folytatása

Az XML-literál több sort is átfoghat sorfolytatási karakterek (a szóköz aláhúzásjel-enter sorozat) használata nélkül. Így könnyebben összehasonlíthatja a kódban lévő XML-literálokat az XML-dokumentumokkal.

A fordító egy XML-literál részeként kezeli a sorfolytatási karaktereket. Ezért a szóköz aláhúzásjel-enter sorozatot csak akkor érdemes használni, ha az a LINQ-ból XML-objektumba tartozik.

Ha azonban beágyazott kifejezésben többsoros kifejezés van, akkor sorfolytatási karakterekre van szüksége. További információ: Beágyazott kifejezések XML-ben.

Lekérdezések beágyazása XML-literálokban

Egy beágyazott kifejezésben lekérdezést is használhat. Ha ezt teszi, a lekérdezés által visszaadott elemek hozzáadódnak az XML-elemhez. Így dinamikus tartalmat adhat hozzá egy XML-konstanshoz, például egy felhasználó lekérdezésének eredményét.

Az alábbi kód például beágyazott lekérdezéssel hoz létre XML-elemeket a phoneNumbers2 tömb tagjaiból, majd ezeket az elemeket a rendszer gyermekeiként contact2adja hozzá.

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

Objektumok létrehozása XML-konstansokból

A Visual Basic fordítója az XML-konstruktorokkal egyenértékű LINQ-konstruktorokra irányuló hívásokra fordítja le az XML-literálokat, hogy a LINQ-t XML-objektummá alakítsa. A Visual Basic fordító például a következő kód példáját fogja lefordítani XProcessingInstruction az XML-verzióutasítás konstruktorának, a konstruktornak XElement a , <name>és <phone> az elemek konstruktorának<contact>, valamint az XAttribute attribútum konstruktorának type a hívására. Az alábbi mintában szereplő attribútumok alapján a Visual Basic fordító kétszer hívja meg a konstruktort XAttribute(XName, Object) . Az első a paraméter értékét typename és a paraméter értékét homevalue adja át. A második a paraméter értékét typename is átadja, de a value paraméter értékétwork.

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>

Lásd még