XPath 2.0 - XPath 2.0

XPath 2.0 ning versiyasidir XPath tomonidan belgilangan til Butunjahon Internet tarmog'idagi konsortsium, W3C. Bu 2007 yil 23-yanvarda tavsiyanomaga aylandi.[1] W3C tavsiyasi sifatida uning o'rnini egalladi XPath 3.0 2014 yil 10 aprelda.

XPath asosan an qismlarini tanlash uchun ishlatiladi XML hujjat. Shu maqsadda XML hujjati tugunlar daraxti sifatida modellashtirilgan. XPath tugunlarni hujjat daraxti orqali ierarxik navigatsiya yo'li orqali tanlashga imkon beradi.

Til avvalgisiga qaraganda ancha katta, XPath 1.0 va ma'lumotlar modeli va turdagi tizim kabi ba'zi bir asosiy tushunchalar o'zgardi. Shuning uchun ikkita til versiyalari alohida maqolalarda tasvirlangan.

XPath 2.0 ning sublanguage sifatida ishlatiladi XSLT 2.0, va u ham XQuery 1.0. Uch tilda ham bir xil ma'lumotlar modeli mavjud XDM ), tizim tizimi va funktsiyalar kutubxonasi, birgalikda ishlab chiqilgan va o'sha kuni nashr etilgan.

Ma'lumotlar modeli

XPath 2.0 ning har bir qiymati a ketma-ketlik ning buyumlar. Mahsulotlar bo'lishi mumkin tugunlar yoki atom qiymatlari. Alohida tugun yoki atom qiymati uzunlik ketma-ketligi deb hisoblanadi. Ketma-ket uyalar bo'lmasligi mumkin.

Tugunlari sintaksisidagi turli xil tuzilmalarga mos keladigan etti xil XML: elementlar, atributlar, matn tugunlari, sharhlar, ishlov berish bo'yicha ko'rsatmalar, nomlar maydoni va hujjatlar tugunlari. (Hujjat tuguni. Ning o'rnini bosadi ildiz tuguni ning XPath 1.0, chunki XPath 2.0 modeli daraxtlarni boshqa tugunlarga, xususan elementlarga ildiz otishiga imkon beradi.)

Tugunlar yozilishi yoki yozilishi mumkin. Tugun an ga qarshi tekshirish natijasida turga ega bo'ladi XML sxemasi. Agar element yoki atribut ma'lum bir murakkab turga yoki sxemada aniqlangan oddiy turga nisbatan muvaffaqiyatli tasdiqlangan bo'lsa, ushbu turdagi nom tugunga izoh sifatida biriktiriladi va ushbu tugunga tatbiq qilingan operatsiyalar natijasini aniqlaydi: masalan, qachon saralash, butun son sifatida izohlangan tugunlar butun son sifatida saralanadi.

Atom qiymatlari ichida belgilangan 19 ibtidoiy turlardan biriga tegishli bo'lishi mumkin XML sxemasi spetsifikatsiya (masalan, string, boolean, double, float, decimal, dateTime, QName va boshqalar). Ular, shuningdek, ushbu ibtidoiy turlardan biridan kelib chiqadigan turga tegishli bo'lishi mumkin: yoki butun son yoki Ism singari o'rnatilgan olingan turdagi yoki foydalanuvchi tomonidan yozilgan sxemada aniqlangan foydalanuvchi tomonidan aniqlangan turdagi.

Tizim turi

The XDM turi ierarxiyasi

XPath 2.0 tizimining tizimi aralashganligi bilan diqqatga sazovordir kuchli yozuv va zaif terish bitta til ichida.

Arifmetik va mantiqiy taqqoslash kabi operatsiyalar o'zlarining operandalari sifatida atom qiymatlarini talab qiladi. Agar operand tugunni qaytarsa ​​(masalan, @ narx * 1.2), keyin tugun avtomatik ravishda bo'ladi atomlangan atom qiymatini chiqarish. Agar kirish hujjati sxema bo'yicha tasdiqlangan bo'lsa, unda tugun odatda tipik izohga ega bo'ladi va natijada hosil bo'lgan atom qiymatining turini aniqlaydi (ushbu misolda narx atribut turga ega bo'lishi mumkin o‘nli kasr). Agar biron bir sxema ishlatilmasa, tugun tiplanmagan bo'ladi va natijada hosil bo'lgan atom qiymatining turi bo'ladi untypedAtomic. Yozilgan atom qiymatlari ular ishlatilgan kontekst uchun mos turga ega ekanligiga ishonch hosil qilish uchun tekshiriladi: masalan, sanani raqamga ko'paytirish mumkin emas. Tiplanmagan atom qiymatlari, aksincha, zaif terish intizomiga amal qiladi: ular avtomatik ravishda ular ishlatilgan operatsiyaga mos turga aylantiriladi: masalan, arifmetik operatsiya bilan tiplanmagan atom qiymati turga aylantiriladi ikki baravar.

Yo'l ifodalari

The joylashish yo'llari ning XPath 1.0 XPath 2.0 da quyidagicha nomlanadi yo'l ifodalari. Norasmiy ravishda yo'l ifodasi - bu "bilan ajratilgan qadamlar ketma-ketligi/"operatori, masalan a / b / c (bu qisqa bola :: a / bola :: b / bola :: v). Ammo rasmiyroq "/"bu shunchaki ikkilik operator bo'lib, uning chap tomonidagi ifoda tomonidan tanlangan navbat bilan har bir elementga o'z navbatida ifodani qo'llaydi. Shuning uchun bu misolda a nomlangan kontekst tugunining barcha element bolalarini tanlaydi <a>; ifoda bola :: b keyin barcha tugunlarni tanlab, ushbu tugunlarning har biriga qo'llaniladi <b> ning bolalari <a> elementlar; va ifoda bola :: v keyin barcha ketma-ketlikni tanlaydigan ushbu ketma-ketlikdagi har bir tugunga qo'llaniladi <c> bularning farzandlari <b> elementlar.

"/"operator har qanday ifodani operand sifatida ishlatishga imkon berish uchun XPath 2.0 da umumlashtiriladi: XPath 1.0 da o'ng tomon har doim o'q o'qi qadamida bo'lgan. Masalan, funktsiya chaqiruvi o'ng tomonda ishlatilishi mumkin Operator uchun yozish qoidalari birinchi operandning natijasi tugunlarning ketma-ketligini talab qiladi, o'ng qo'l operandasi tugunlarni ham, atom qiymatlarini ham qaytarishi mumkin (lekin aralash emas) .Natija tugunlardan iborat bo'lsa, unda takroriy nusxalar o'chiriladi. va tugunlar qaytariladi hujjat buyurtmasi, asl XML daraxtidagi tugunlarning nisbiy pozitsiyalari bo'yicha aniqlangan buyurtma.

Ko'p hollarda "operandlari"/"o'qi qadamlar bo'ladi: ular XPath 1.0 dan deyarli o'zgarmagan va maqolada tasvirlangan XPath 1.0.

Boshqa operatorlar

XPath 2.0-da mavjud bo'lgan boshqa operatorlarga quyidagilar kiradi:

OperatorlarEffekt
+, -, *, div, mod, idivRaqamlar, sanalar va muddatlar bo'yicha arifmetik
=, !=, <, >, <=, >=Umumiy taqqoslash: o'zboshimchalik bilan ketma-ketlikni taqqoslash. Natija, agar har bir ketma-ketlikdan bittadan har qanday juftlik taqqoslashni qondirsa
eq, ne, lt, gt, le, geQiymatni taqqoslash: bitta elementlarni taqqoslash
buTugun identifikatorini taqqoslang: agar ikkala operand bir xil tugun bo'lsa, rost
<<, >>Hujjat tartibiga asoslanib, tugun holatini solishtiring
birlashma, kesishadi, bundan mustasnoTugunlarning ketma-ketligini taqqoslang, ularni to'plam sifatida ko'rib chiqing, to'plamning birlashishi, kesishishi yoki farqini qaytaring
va, yokimantiqiy birikma va disjunksiya. Salbiy tomonga emas () funktsiya.
gamasalan, butun son oralig'ini belgilaydi 1 dan 10 gacha
ning misoliqiymat berilgan tipdagi nusxa ekanligini aniqlaydi
kabi quyishqiymatni berilgan turga o'zgartiradi
sifatida tashlanishi mumkinqiymatning berilgan turga aylantirilishini tekshiradi

Sintaksis yordamida shartli iboralar yozilishi mumkin agar (A), keyin B boshqa C.

XPath 2.0 shuningdek uchun ning kichik bir qismi bo'lgan ifoda FLWOR dan ifoda XQuery. Ifoda $ X $ uchun $ Y $ qaytarish ifodani baholaydi Y ifoda natijasidagi har bir qiymat uchun X o'z navbatida, o'zgaruvchan mos yozuvlar yordamida ushbu qiymatga ishora qiladi $ x.

Funktsiyalar kutubxonasi

XPath 2.0-dagi funktsiyalar kutubxonasi XPath 1.0-dagi funktsiyalar kutubxonasidan ancha kengaytirilgan. (Qalin ma'lumotlar XPath 1.0-da mavjud)

Mavjud funktsiyalar quyidagilarni o'z ichiga oladi:

MaqsadMisol vazifalari
Umumiy ishlov berishkichik harf, katta harf, pastki chiziq, oldin, pastki chiziq, tarjima qilish, bilan boshlanadi, bilan tugaydi, o'z ichiga oladi, mag'lubiyat uzunligi, konkret, normalizatsiya-bo'shliq, normalize-unicode
Doimiy iboralaro'yinlar, almashtirish, tokenizatsiya qilish
Arifmetikhisoblash, sum, o'rtacha, min, max, dumaloq, zamin, ship, abs
Sanalar va vaqtlarrostlash-sanaTime-to-zone, joriy-sanaTime, kundan-kungaTime, oydan sanaTime, muddatdan kunlar, muddatlardan oylar va boshqalar.
Tugunlarning xususiyatlariism, tugun nomi, mahalliy ism, ism maydoni, asos-uri, maydalangan
Hujjatlar bilan ishlashdoc, doc-mavjud, document-uri, to'plam, id, idref
URIuri uchun kodlash, html-uri qochish, iri-to-uri, hal qilish-uri
QNamesQName, nom maydoni-uri-dan-QName, prefiks-dan-QName, hal qilish-QName
Ketma-ketliklaroldin qo'shish, olib tashlash, ketma-ketlik, indeks ko'rsatkichi, alohida qiymatlar, teskari, tartibsiz, bo'sh, mavjud
Turini tekshirishbir yoki bir nechta, to'liq bitta, nol yoki bitta

Orqaga moslik

Ma'lumotlar modeli va turdagi tizimdagi o'zgarishlar tufayli barcha ifodalar XPath 2.0 da xuddi shunday ta'sirga ega emas. Asosiy farq shundaki, XPath 1.0 turni konvertatsiya qilishda ko'proq erkin edi, masalan, ikkita satrni taqqoslash ("4" > "4.0") mumkin edi, ammo raqamli taqqoslashni amalga oshiradi; XPath 2.0-da, bu ikkita qiymatni satrlar sifatida kontekstda belgilangan taqqoslash ketma-ketligi yordamida taqqoslash uchun belgilangan.

O'tishni engillashtirish uchun XPath 2.0 bajarilish rejimini belgilaydi, unda semantikani XPath 1.0 xatti-harakatiga iloji boricha yaqinroq qilib o'zgartiradi. Foydalanishda XSLT 2.0, ushbu rejim sozlash orqali faollashtiriladi versiya = "1.0" xususiyati sifatida xsl: uslublar jadvali element. Bu hali ham 100% moslikni taklif qilmaydi, ammo qolgan farqlar faqat g'ayrioddiy holatlarda yuzaga kelishi mumkin.

Qo'llab-quvvatlash

XPath 2.0-ni qo'llab-quvvatlash hali ham cheklangan.

Adabiyotlar

  1. ^ "XML va Semantic Web W3C standartlari xronologiyasi" (PDF). 2012 yil 4-fevral.

Tashqi havolalar