Ana içeriğe geç

XML Sorgu Veri Kaynağı

Bu veri kaynağı, bir XML veritabanında XQuery ifadesi yürütür ve sonucu değerler listesi 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 Parameter öğeleri kullanılarak belirtilebilir; sorgunun kendisi ise Query öğesinin içinde tanımlanır.

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