Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A beágyazott kifejezések lehetővé teszik olyan XML-literálok létrehozását, amelyek futásidőben kiértékelt kifejezéseket tartalmaznak. A beágyazott kifejezések szintaxisa megegyezik <%=expression%>a ASP.NET használt szintaxisával.
Létrehozhat például egy XML-elemkonstanst, amely a beágyazott kifejezéseket literális szöveges tartalommal kombinálja.
Dim isbnNumber As String = "12345"
Dim modifiedDate As String = "3/5/2006"
Dim book As XElement =
<book category="fiction" isbn=<%= isbnNumber %>>
<modifiedDate><%= modifiedDate %></modifiedDate>
</book>
Ha isbnNumber az 12345 egész számot tartalmazza, és modifiedDate a 2006.05.03. dátumot tartalmazza, a kód végrehajtásakor a következő érték jelenik book meg:
<book category="fiction" isbn="12345">
<modifiedDate>3/5/2006</modifiedDate>
</book>
Beágyazott kifejezés helye és érvényesítése
A beágyazott kifejezések csak bizonyos helyeken jelenhetnek meg az XML-konstanskifejezéseken belül. A kifejezés helye határozza meg, hogy a kifejezés milyen típusokat tud visszaadni, és hogyan Nothing kezelhető. Az alábbi táblázat a beágyazott kifejezések engedélyezett helyeit és típusait ismerteti.
| Hely literálban | Kifejezés típusa | A Nothing |
|---|---|---|
| XML-elem neve | XName | Hiba |
| XML-elem tartalma |
Object vagy tömbje Object |
Figyelmen kívül hagyva |
| XML-elem attribútumának neve | XName | Hiba, kivéve, ha az attribútum értéke is Nothing |
| XML-elem attribútumának értéke | Object |
Az attribútum deklarációja figyelmen kívül hagyva |
| XML-elem attribútuma | XAttribute vagy gyűjteményét XAttribute | Figyelmen kívül hagyva |
| XML-dokumentum gyökéreleme | XElement vagy egy XElement objektum gyűjteményét, valamint tetszőleges számú XProcessingInstruction és XComment objektumot tartalmazó gyűjteményt | Figyelmen kívül hagyva |
Példa egy beágyazott kifejezésre egy XML-elemnévben:
Dim elementName As String = "contact" Dim contact1 As XElement = <<%= elementName %>/>Példa beágyazott kifejezésre egy XML-elem tartalmában:
Dim contactName As String = "Patrick Hines" Dim contact2 As XElement = <contact><%= contactName %></contact>Példa egy beágyazott kifejezésre egy XML-elem attribútumában:
Dim phoneType As String = "home" Dim contact3 As XElement = <contact <%= phoneType %>="206-555-0144"/>Példa beágyazott kifejezésre egy XML-elem attribútumértékében:
Dim phoneNumber As String = "206-555-0144" Dim contact4 As XElement = <contact home=<%= phoneNumber %>/>Példa beágyazott kifejezésre egy XML-elem attribútumában:
Dim phoneAttribute As XAttribute = New XAttribute(XName.Get(phoneType), phoneNumber) Dim contact5 As XElement = <contact <%= phoneAttribute %>/>Példa beágyazott kifejezésre egy XML-dokumentum gyökérelemében:
Dim document As XDocument = <?xml version="1.0"?><%= contact1 %>
Ha engedélyezi Option Strict, a fordító ellenőrzi, hogy az egyes beágyazott kifejezések típusa a szükséges típusra szélesedik-e. Az egyetlen kivétel egy XML-dokumentum gyökéreleme, amely a kód futtatásakor lesz ellenőrizve. Ha anélkül Option Strictfordít, beágyazhat típuskifejezéseket Object , és azok típusa futásidőben ellenőrizhető.
Azokban a helyeken, ahol a tartalom nem kötelező, a beágyazott kifejezéseket figyelmen kívül hagyja a rendszer Nothing . Ez azt jelenti, hogy nem kell ellenőriznie, hogy az elemtartalmak, az attribútumértékek és a tömbelemek nem Nothing szerepelnek-e xml-literál használata előtt. A szükséges értékek, például az elem- és attribútumnevek nem lehetnek Nothing.
A beágyazott kifejezések adott típusú literálban való használatáról az XML-dokumentumkonstans és az XML-elemkonstans című témakörben talál további információt.
Hatókörkezelési szabályok
A fordító az egyes XML-literálokat konstruktorhívássá alakítja a megfelelő literális típushoz. Az XML-literálban lévő literális tartalom és beágyazott kifejezések argumentumként lesznek átadva a konstruktornak. Ez azt jelenti, hogy az XML-literálhoz elérhető összes Visual Basic programozási elem a beágyazott kifejezések számára is elérhető.
Egy XML-konstanson belül elérheti az utasítással Imports deklarált XML-névtér-előtagokat. Az attribútum használatával xmlns deklarálhat egy új XML-névtérelőtagot vagy árnyékolást egy meglévő XML-névtérelőtagban. Az új névtér az elem gyermekcsomópontjai számára érhető el, a beágyazott kifejezésekben lévő XML-literálok számára azonban nem.
Feljegyzés
Ha a névtérattribútum használatával xmlns deklarál egy XML-névtér-előtagot, az attribútumértéknek állandó sztringnek kell lennie. Ebben a tekintetben az xmlns attribútum használata olyan, mint egy XML-névtér deklarálása az Imports utasítással. Beágyazott kifejezéssel nem adhatja meg az XML-névtér értékét.