Download XML Query in Native and Framework and more Lecture notes Information Systems in PDF only on Docsity!
LECTURE NOTES
ISYS6307 – Data & Information
Management
Week 7
XML Query in Native and Framework
LEARNING OUTCOMES
LO3: Organize data in information as a necessity to make business decision support OUTLINE MATERI :
- Overview of XML
- JSON (JavaScript Object Notation)
- XML Query Languages
- Extending Lore and Lorel to Handle XML
- Integrating PHP Unit
- The phpunit.xml file
Elemen, atau tag, adalah bentuk pemformatan yang paling umum. Elemen pertama harus berupa elemen root, yang dapat berisi elemen (sub) lainnya. Dokumen XML harus memiliki satu elemen utama, dalam contoh kami . Sebuah elemen dimulai dengan tag awal (misalnya ) dan diakhiri dengan tag akhir (misalnya ). Elemen XML peka huruf besar / kecil, jadi elemen akan berbeda dari elemen (perhatikan bahwa ini tidak terjadi pada HTML). Sebuah elemen boleh kosong, dalam hal ini dapat disingkat menjadi . Elemen harus disarangkan dengan benar, seperti yang digambarkan oleh kutipan dari Gambar 7.1 berikut: JohnWhite Dalam kasus ini, elemen NAME bersarang sepenuhnya di elemen STAFF dan elemen FNAME dan LNAME bersarang di elemen NAME. Attributes Atribut adalah pasangan nama-nilai yang berisi informasi deskriptif tentang suatu elemen. Atribut ditempatkan di tag awal setelah nama elemen yang sesuai dengan nilai atribut diapit tanda kutip. Misalnya, kami telah memilih untuk menampilkan branch yang sedang dikerjakan karyawan dengan atribut branchNo di elemen STAFF: Kita bisa saja mewakili branch serta sub-elemen dari STAFF. Jika kita merepresentasikan jenis kelamin anggota staf, kita bisa menggunakan atribut elemen kosong; sebagai contoh: Atribut tertentu mungkin hanya muncul sekali dalam tag; sub-elemen dengan tag yang sama dapat diulang.
Entity references Entitas memiliki tiga tujuan utama:
- Sebagai jalan pintas ke teks yang sering diulang atau untuk memasukkan konten file eksternal;
- Untuk memasukkan karakter Unicode yang berubah-ubah ke dalam teks (misalnya, untuk menampilkan karakter yang tidak dapat diketik secara langsung di keyboard);
- Untuk membedakan karakter yang dipesan dari konten. Misalnya, tanda pangkat dua kiri (<) menunjukkan awal dari tag awal atau tag akhir dari sebuah elemen. Untuk membedakan simbol ini dari konten sebenarnya, XML telah memperkenalkan entitas lt, yang diganti dengan simbol '<'. Setiap entitas harus memiliki nama unik dan penggunaannya dalam dokumen XML disebut referensi entitas. Referensi entitas dimulai dengan ampersand (&) dan diakhiri dengan titik koma (;), misalnya & lt; Comment Komentar ada di <! - dan - > tag dan dapat berisi data apa pun kecuali string literal "-." Komentar dapat dimasukkan dalam markup di mana saja dalam dokumen XML, meskipun prosesor XML tidak diperlukan untuk meneruskan komentar ke aplikasi.
B. JSON (JavaScript Object Notation)
JSON adalah sintaks alternatif dengan standar terbuka untuk menyimpan dan bertukar informasi teks. JSON lebih kecil dari XML dan lebih cepat serta lebih mudah untuk diurai. Meskipun JSON diturunkan dari JavaScript, ini adalah bahasa independen, dengan parser tersedia untuk banyak bahasa. JSON terutama digunakan untuk mengirim data antara server dan aplikasi web dan berfungsi sebagai alternatif XML. Jenis data dasar JSON adalah sebagai berikut:
- Number (format titik mengambang presisi ganda dalam JavaScript).
- String (diapit tanda kutip ganda).
- Boolean.
- Array (rangkaian nilai yang diurutkan, dipisahkan dengan koma dan diapit oleh tanda kurung; nilainya tidak harus dari jenis yang sama).
NAME>$F $L </ STAFF> IN "http://www.dreamhome.co.uk/staff.xml" $ S > 30000 CONSTRUCT $L
D. Extending Lore and Lorel to Handle XML
Dengan munculnya XML, sistem Lore telah bermigrasi untuk memproses XML (Goldman et al., 1999). Dalam Lore baru yang merupakan model data berbasis XML , elemen XML adalah pasangan (eid, value), di mana eid adalah ID elemen unik dan value adalah string atau nilai kompleks yang berisi salah satu dari berikut ini :
- Tag nilai string yang cocok dengan tag XML untuk elemen itu;
- Daftar urutan nama atribut dan pasangan nilai, dengan nilai tipe dasar (misalnya, integer atau string) atau ID, IDREF atau IDREFS;
- Daftar urutan sub-elemen tautan silang dari formulir (label, id), di mana label adalah string (sub-elemen tautan silang diperkenalkan menggunakan IDREF atau IDREFS);
- Daftar berurutan dari sub-elemen normal formulir (label, eid), di mana label adalah string (sub-elemen normal diperkenalkan menggunakan lexical nesting dalam dokumen XML). Komentar dan spasi antara elemen yang diberi tag diabaikan dan bagian CDATA diterjemahkan ke dalam elemen teks atomic. Gambar 7.2 mengilustrasikan pemetaan dokumen XML dari Gambar 7.3 ke model data. Menariknya, Lore mendukung dua representasi data XML: semantik dan literal. Dalam mode semantik, database dilihat sebagai grafik yang saling berhubungan, dengan atribut IDREF dan IDREFS dihilangkan, dan batas sub-elemen dan crosslink dihapus. Dalam mode literal, atribut IDREF dan IDREFS hadir saat string teks dan batas tautan silang dihapus, sehingga database selalu berupa pohon. Pada gambar 7.2, tepi subelemen solid dan tepi crosslink rusak Atribut IDREF terdaftar di {}.
Gambar 7.3. Dokumen XML di Lore. Gambar 7.3. Contoh penggunaan ID dan IDREFS. Lorel Konsep path expression telah diperluas dalam versi XML Lorel untuk memungkinkan navigasi atribut dan sub-elemen, dibedakan dengan path expression qualifier (">" untuk sub- elemen yang cocok saja dan "@" untuk atribut). Jika tidak ada kualifikasi yang diberikan, baik atribut maupun sub-elemen cocok. Selain itu, Lorel telah diperpanjang sehingga ekspresi [range]
F. The phpunit.xml file
PHPUnit membutuhkan file phpunit.xml untuk menentukan cara kita menjalankan pengujian. File ini mendefinisikan sekumpulan aturan seperti lokasi pengujian, kode apa yang diuji, dan sebagainya. Tambahkan file berikut ke direktori root Anda:
./tests/ ./src File ini menjelaskan beberapa hal. Yang utama dijelaskan sebagai berikut:
- Dengan ConvertErrorsToExceptions, convertNoticesToExceptions, dan convertWarningsToExceptions memiliki nilai true akan menyebabkan pengujian Anda gagal jika ada kesalahan, peringatan, atau notifikasi PHP. Tujuannya adalah untuk memastikan kode Anda bebas dari bug minor dalam kasus edge, yang selalu menjadi sumber potensi masalah.
- StopOnFailure memberi tahu PHPUnit apakah akan terus menjalankan sisa pengujian atau tidak jika ada pengujian yang gagal. Dalam hal ini, kita ingin menjalankan semuanya untuk mengetahui berapa banyak pengujian yang gagal dan mengapa.
- bootstrap menentukan file mana yang akan dijalankan sebelum kita mulai menjalankan pengujian. Penggunaan yang paling umum adalah menyertakan pemuat otomatis, tetapi Anda juga dapat menyertakan file yang menginisialisasi dependensi tertentu, seperti database atau pembaca konfigurasi.
- testuites menentukan direktori tempat PHPUnit akan mencari pengujian. Dalam kasus kita, kita mendefinisikan ./tests, tetapi kita dapat menambahkan lebih banyak jika kita memilikinya di direktori yang berbeda.
- whitelist menentukan daftar direktori yang berisi kode yang kita uji. Ini dapat berguna untuk menghasilkan keluaran terkait dengan cakupan kode.
DAFTAR PUSTAKA
- Connolly, T., & Begg, C. (2015). Database System A Practical Approach to Design, Implemetation, and Management 6th Edition. Pearson
- Antonio Lopez. (2016). Learning PHP 7. Published by Packt Publishing Ltd. Livery Place 35 Livery Street. Birmingham B3 2PB, UK. ISBN 978- 1 - 78588 - 054 - 4