XML'de Katıştırılmış İfadeler (Visual Basic)
Katıştırılmış ifadeler, çalışma zamanında değerlendirilen ifadeler içeren XML değişmez değerleri oluşturmanıza olanak tanır. Katıştırılmış ifadenin söz dizimi, <%=
expression
%>
ASP.NET kullanılan söz dizimi ile aynıdır.
Örneğin, eklenmiş ifadeleri değişmez metin içeriğiyle birleştiren bir XML öğesi değişmez değeri oluşturabilirsiniz.
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>
isbnNumber
12345 tamsayısını ve modifiedDate
5/3/3/2006 tarihini içeriyorsa, bu kod yürütürken değeri book
şu şekildedir:
<book category="fiction" isbn="12345">
<modifiedDate>3/5/2006</modifiedDate>
</book>
Katıştırılmış İfade Konumu ve Doğrulama
Katıştırılmış ifadeler yalnızca XML değişmez değer ifadeleri içindeki belirli konumlarda görünebilir. İfade konumu, ifadenin döndürebileceği türleri ve nasıl Nothing
işleneceğini denetler. Aşağıdaki tabloda, izin verilen konumlar ve ekli ifade türleri açıklanmaktadır.
Değişmez değerde konum | İfade türü | İşleme Nothing |
---|---|---|
XML öğesi adı | XName | Hata |
XML öğesi içeriği | Object veya dizisi Object |
Yoksayıldı |
XML öğesi öznitelik adı | XName | Hata, öznitelik değeri de Nothing |
XML öğesi öznitelik değeri | Object |
Öznitelik bildirimi yoksayıldı |
XML öğesi özniteliği | XAttribute veya bir koleksiyon XAttribute | Yoksayıldı |
XML belgesi kök öğesi | XElement veya bir XElement nesne koleksiyonu ve rastgele sayıda XProcessingInstruction ve XComment nesnesi | Yoksayıldı |
XML öğesi adında eklenmiş ifade örneği:
Dim elementName As String = "contact" Dim contact1 As XElement = <<%= elementName %>/>
XML öğesinin içeriğindeki eklenmiş ifade örneği:
Dim contactName As String = "Patrick Hines" Dim contact2 As XElement = <contact><%= contactName %></contact>
XML öğesi öznitelik adına eklenmiş ifade örneği:
Dim phoneType As String = "home" Dim contact3 As XElement = <contact <%= phoneType %>="206-555-0144"/>
XML öğesi öznitelik değerindeki katıştırılmış ifade örneği:
Dim phoneNumber As String = "206-555-0144" Dim contact4 As XElement = <contact home=<%= phoneNumber %>/>
XML öğesi özniteliğindeki katıştırılmış ifade örneği:
Dim phoneAttribute As XAttribute = New XAttribute(XName.Get(phoneType), phoneNumber) Dim contact5 As XElement = <contact <%= phoneAttribute %>/>
XML belgesi kök öğesindeki katıştırılmış ifade örneği:
Dim document As XDocument = <?xml version="1.0"?><%= contact1 %>
'yi etkinleştirirseniz Option Strict
, derleyici her eklenmiş ifade türünün gerekli türe genişlediğini denetler. Tek özel durum, kod çalıştırıldığında doğrulanan xml belgesinin kök öğesi içindir. olmadan Option Strict
derlerseniz, türündeki Object
ifadeleri ekleyebilirsiniz ve türleri çalışma zamanında doğrulanır.
İçeriğin isteğe bağlı olduğu konumlarda, içeren Nothing
eklenmiş ifadeler yoksayılır. Bu, XML değişmez değerini kullanmadan önce öğe içeriğinin, öznitelik değerlerinin ve dizi öğelerinin olmadığını denetlemeniz gerekmediği Nothing
anlamına gelir. Öğe ve öznitelik adları gibi gerekli değerler olamaz Nothing
.
Belirli bir değişmez değer türünde katıştırılmış ifade kullanma hakkında daha fazla bilgi için bkz . XML Belgesi Değişmez Değeri, XML Öğesi Değişmez Değeri.
Kapsam Belirleme Kuralları
Derleyici her XML değişmez değerini uygun değişmez değer türü için bir oluşturucu çağrısına dönüştürür. Bir XML değişmez değeri içindeki değişmez değer içeriği ve eklenmiş ifadeler, oluşturucuya bağımsız değişken olarak geçirilir. Bu, bir XML değişmez değeri için kullanılabilen tüm Visual Basic programlama öğelerinin ekli ifadelerinde de kullanılabildiğini gösterir.
XML değişmez değeri içinde, deyimiyle Imports
bildirilen XML ad alanı ön eklerine erişebilirsiniz. özniteliğini kullanarak bir öğede yeni bir XML ad alanı ön eki bildirebilir veya var olan bir XML ad alanı ön ekini gölgeleyebilirsiniz xmlns
. Yeni ad alanı, bu öğenin alt düğümleri tarafından kullanılabilir, ancak katıştırılmış ifadelerdeki XML değişmez değerleri için kullanılamaz.
Not
Ad alanı özniteliğini kullanarak xmlns
bir XML ad alanı ön eki bildirdiğinizde, öznitelik değeri sabit bir dize olmalıdır. Bu bağlamda özniteliğini xmlns
kullanmak, xml ad alanını bildirmek için deyimini Imports
kullanmak gibidir. XML ad alanı değerini belirtmek için katıştırılmış ifade kullanamazsınız.