XQuery - İlk Uygulama

Misal

Aşağıda, çeşitli kitapların bir kitabevinin kayıtlarını içeren örnek bir XML belgesi verilmiştir.

books.xml

<?xml version="1.0" encoding="UTF-8"?>
<books>
   
   <book category="JAVA">
      <title lang="en">Learn Java in 24 Hours</title>
      <author>Robert</author>
      <year>2005</year>
      <price>30.00</price>
   </book>
   
   <book category="DOTNET">
      <title lang="en">Learn .Net in 24 hours</title>
      <author>Peter</author>
      <year>2011</year>
      <price>70.50</price>
   </book>
   
   <book category="XML">
      <title lang="en">Learn XQuery in 24 hours</title>
      <author>Robert</author>
      <author>Peter</author> 
      <year>2013</year>
      <price>50.00</price>
   </book>
   
   <book category="XML">
      <title lang="en">Learn XPath in 24 hours</title>
      <author>Jay Ban</author>
      <year>2010</year>
      <price>16.50</price>
   </book>
   
</books>

Aşağıda, yukarıdaki XML belgesinde yürütülecek sorgu ifadesini içeren örnek bir Xquery belgesi verilmiştir. Amaç, fiyatın 30'dan fazla olduğu XML düğümlerinin başlık öğelerini elde etmektir.

books.xqy

for $x in doc("books.xml")/books/book where $x/price>30
return $x/title

Sonuç

<title lang="en">Learn .Net in 24 hours</title>
<title lang="en">Learn XQuery in 24 hours</title>

Sonucu Doğrula

Sonucu doğrulamak için, books.xqy'nin içeriğini ( Ortam Kurulumu bölümünde verilmiştir) yukarıdaki XQuery ifadesiyle değiştirin ve XQueryTester java programını çalıştırın.

XQuery İfadeleri

Yukarıdaki XQuery ifadesinin her bir parçasını anlayalım.

Fonksiyonların kullanımı

doc("books.xml")

doc (), XML kaynağını bulmak için kullanılan XQuery işlevlerinden biridir. Burada "books.xml" yi geçtik. Göreli yol göz önüne alındığında, books.xml, books.xqy'nin bulunduğu aynı yolda yer almalıdır.

XPath ifadelerinin kullanımı

doc("books.xml")/books/book

XQuery, üzerinde aramanın yapılacağı XML'nin gerekli bölümünü bulmak için yoğun bir şekilde XPath ifadeleri kullanır. Burada, kitaplar düğümü altında bulunan tüm kitap düğümlerini seçtik.

Nesneleri yineleyin

for $x in doc("books.xml")/books/book

XQuery, xml verilerini nesneler olarak değerlendirir. Yukarıdaki örnekte, $ x seçili düğümü temsil ederken, for döngüsü düğüm koleksiyonunu yineler.

Koşulu uygulayın

where $x/price>30

$ X seçilen düğümü temsil ettiğinden, "/" gerekli elemanın değerini almak için kullanılır; Arama sonuçlarına bir koşul koymak için "nerede" cümlesi kullanılır.

Sonucu döndür

return $x/title

$ X seçilen düğümü temsil ettiğinden, "/" gerekli öğe, fiyat, başlık değerini almak için kullanılır; "return" yan tümcesi, öğeleri arama sonuçlarından döndürmek için kullanılır.