Ana içeriğe geç

XML Sorgu Veri Kaynağı

Bu veri kaynağı, XQuery ifadesini XML veritabanında çalıştırır ve sonucu değerlerden oluşan bir liste olarak döndürür.

XQuery'nin esnekliği sayesinde bu veri kaynağı, XML verilerini birçok farklı şekilde sorgulamak ve dönüştürmek için kullanılabilir.

Sorgu parametreleri şu Parameter öğeler kullanılarak belirtilebilir; sorgunun kendisi ise şu Query öğesi içinde tanımlanır.

Şu ItemXPath öğesi, sorgu sonucu olarak döndürülecek XML verisindeki öğelerin yolunu belirtir.

Örnek

Aşağıdaki örnek, bir XML veritabanından kişileri alan basit bir sorguyu gösterir. Sorgu, kişileri arama adına ve ilişki türüne göre filtreler ve kişileri görüntüleme adına göre sıralı olarak döndürür.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<XmlQueryDataSource TextFormat="{{DisplayName}}" ValueFormat="{{Id}}" Enabled="True">
    <Mappings/>
    <ItemXPath><![CDATA[Contract]]></ItemXPath>
    <Parameters>
        <Parameter Name="filter"><![CDATA[Filter/SearchName]]></Parameter>
        <Parameter Name="typeId"><![CDATA[Filter/RelationType/Id]]></Parameter>
    </Parameters>
    <Query><![CDATA[

for $c in Contact
where ($filter='' or contains(lower-case($c/SearchName),lower-case($filter)))
    and ($typeId='' or $c/RelationType/Id=$typeId)
order by $c/DisplayName
return $c

]]></Query>
</XmlQueryDataSource>

Bu yapılandırmada:

  • TextFormat olarak ayarlanır {{DisplayName}}, bu da DisplayName XML sonucundaki öğenin görüntüleme metni olarak kullanılacağını belirtir.
  • ValueFormat şuna ayarlanmıştır {{Id}}, şu Id öğesinin temel değer olarak kullanılacağını belirtir.
  • Enabled şuna ayarlanmıştır True, veri kaynağını etkinleştirir.
  • Mappings boştur; ek eşlemelerin belirtilmediği anlamına gelir.
  • ItemXPath şuna ayarlanmıştır <![CDATA[Contract]]>, öğe olarak işlenecek öğelerin yolunu belirtir.
  • Şu Parameters öğesi iki parametre tanımlar:
    • filter, veri modelindeki şu Filter/SearchName öğesine eşlenir.
    • typeId, veri modelindeki şu Filter/RelationType/Id öğesine eşlenir.
  • Şu Query öğesi, aşağıdakileri yapan XQuery ifadesini içerir:
    • Tüm şu öğeler üzerinde yineleme yapar: Contact öğeler.
    • Kişileri şu filter ve typeId parametrelere göre filtreler; şu öğede büyük/küçük harfe duyarsız arama yapar: SearchName öğesi.
    • Sonuçları şu DisplayName öğeye göre sıralar.
    • Eşleşen her şu Contact öğeyi döndürür.