XPath 2.0 - XPath 2.0
Bu maqola uchun qo'shimcha iqtiboslar kerak tekshirish.2010 yil avgust) (Ushbu shablon xabarini qanday va qachon olib tashlashni bilib oling) ( |
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
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:
Operatorlar | Effekt |
---|---|
+, -, *, div, mod, idiv | Raqamlar, 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, ge | Qiymatni taqqoslash: bitta elementlarni taqqoslash |
bu | Tugun identifikatorini taqqoslang: agar ikkala operand bir xil tugun bo'lsa, rost |
<<, >> | Hujjat tartibiga asoslanib, tugun holatini solishtiring |
birlashma, kesishadi, bundan mustasno | Tugunlarning ketma-ketligini taqqoslang, ularni to'plam sifatida ko'rib chiqing, to'plamning birlashishi, kesishishi yoki farqini qaytaring |
va, yoki | mantiqiy birikma va disjunksiya. Salbiy tomonga emas () funktsiya. |
ga | masalan, butun son oralig'ini belgilaydi 1 dan 10 gacha |
ning misoli | qiymat berilgan tipdagi nusxa ekanligini aniqlaydi |
kabi quyish | qiymatni berilgan turga o'zgartiradi |
sifatida tashlanishi mumkin | qiymatning 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:
Maqsad | Misol vazifalari |
---|---|
Umumiy ishlov berish | kichik 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 iboralar | o'yinlar, almashtirish, tokenizatsiya qilish |
Arifmetik | hisoblash, sum, o'rtacha, min, max, dumaloq, zamin, ship, abs |
Sanalar va vaqtlar | rostlash-sanaTime-to-zone, joriy-sanaTime, kundan-kungaTime, oydan sanaTime, muddatdan kunlar, muddatlardan oylar va boshqalar. |
Tugunlarning xususiyatlari | ism, tugun nomi, mahalliy ism, ism maydoni, asos-uri, maydalangan |
Hujjatlar bilan ishlash | doc, doc-mavjud, document-uri, to'plam, id, idref |
URI | uri uchun kodlash, html-uri qochish, iri-to-uri, hal qilish-uri |
QNames | QName, nom maydoni-uri-dan-QName, prefiks-dan-QName, hal qilish-QName |
Ketma-ketliklar | oldin qo'shish, olib tashlash, ketma-ketlik, indeks ko'rsatkichi, alohida qiymatlar, teskari, tartibsiz, bo'sh, mavjud |
Turini tekshirish | bir 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
Ushbu bo'lim kengayishga muhtoj. Siz yordam berishingiz mumkin unga qo'shilish. (2009 yil dekabr) |
XPath 2.0-ni qo'llab-quvvatlash hali ham cheklangan.
- Brauzerni qo'llab-quvvatlash uchun qarang Tartib dvigatellarini taqqoslash (XML).
Adabiyotlar
- ^ "XML va Semantic Web W3C standartlari xronologiyasi" (PDF). 2012 yil 4-fevral.