1. BAB III Konsistensi Data Dengan XML
Schema
Riza Muhammad Nurman, S.Kom
Email : rizaman@eng.ui.ac.id ; rizamn@ymail.com
2. Monday, March 19, 2018 Riza Muhammad Nurman 2
CONTENT
Pengenalan XML Schema
Tipe Data Pada XML Schema
Elemen Pada XML Schema
Atribut Pada XML Schema
Pengenalan XML Namespaces
Penggunaan Kembali Komponen Dalam Schema
Membuat Grup Elemen dan Grup Atribut
3. Monday, March 19, 2018 Riza Muhammad Nurman 3
Pengenalan XML Schema
• XML Schema digunakan untuk mendefinisikan struktur dari sebuah
dokumen XML.
– daftar elemen dan atribut
– urutan bagaimana setiap elemen akan ditampilkan di dalam
dokumen XML
– tipe data dari masing-masing elemen.
4. Monday, March 19, 2018 Riza Muhammad Nurman 4
Keuntungan XML Schema
• XSD menyediakan lebih banyak tipe data yang dapat digunakan
dalam pendeklarasian elemen dan atribut.
• XSD memperbolehkan developer untuk membuat sendiri tipe data
yang diperlukan (user defined data types).
• XSD dapat digunakan untuk membatasi nilai dari data.
• XSD menggunakan sintak penulisan yang sama seperti XML.
• XSD memungkinkan untuk memvalidasi elemen dengan mixed
content.
• Komponen dalam XSD dapat digunakan kembali pada XSD yang lain
(extensible).
• Dimungkinkan untuk menuliskan komentar pada dokumen XSD.
5. Monday, March 19, 2018 Riza Muhammad Nurman 5
Tipe Data XML Schema (1)
1. Primitive
Tipe data yang paling dasar di dalam XSD.
Tidak boleh berisi elemen atau atribut dan hanya boleh berisi nilai
Tipe Data Primitive Deskripsi
String Mewakili sekelompok karakter
Decimal Mewakili angka desimal
Float Mewakili 32 bit nilai floating
Boolean
Mewakili nilai boolean yang hanya dapat
berisi nilai benar atau salah
timeDuration Mewakili durasi waktu tertentu.
recurringDuration
Mewakili durasi waktu yang berulang
setelah interval tertentu
6. Monday, March 19, 2018 Riza Muhammad Nurman 6
Tipe Data XML Schema (2)
2. Derived
Tipe data turunan dari tipe data dasar (tipe data primitive / derived)
Tipe data derived bisa merupakan tipe data yang sudah disediakan oleh
XSD ataupun tipe data yang dibuat oleh pengguna
Tipe Data Turunan Tipe Data Dasar Deskripsi
integer Decimal
mewakili urutan angka desimal yang dapat
memiliki tanda positif(+) atau negatif(-)
long Integer
mewakili nilai dalam jangkauan -
9223372036854775808 sampai dengan
9223372036854775807
NonNegativeInteger Integer
mewakili nilai integer yang lebih besar atau sama
dengan 0
positiveInteger NonNegativeInteger mewakili nilai integer yang lebih besar dari 0
int Long
mewakili integer dalam jangkauan -2147483648
sampai dengan 2147483647
time recurringDuration
mewakili informasi waktu yang berulang setiap
harinya
date timeDuration
mewakili periode waktu yang dimulai pada tengah
malam dan berakhir tengah malam pada hari
berikutnya
7. Monday, March 19, 2018 Riza Muhammad Nurman 7
Tipe Data XML Schema (3)
3. Atomic
Tipe data yang tidak dapat dipecah menjadi satuan yang lebih kecil
Bisa merupakan tipe data primitive / tipe data derived.
Contoh: karakter
4. List
Tipe data turunan yang berisi sekelompok nilai dari tipe data atomic
Hanya boleh berisi data yang sesuai dengan yang telah didefinisikan
5. Union
Tipe data Union diturunkan dari tipe data atomic dan list
Contoh:
Zipname: tipe data dari tipe atomic yang diisi hanya dengan nilai string
Zipnum: tipe data list yang berisi beberapa data kode pos
Tipe data baru zips: yang dapat berisi kedua tipe data tersebut.
8. Monday, March 19, 2018 Riza Muhammad Nurman 8
Elemen Pada XML Schema
Simple element
Elemen dengan tipe simple element tidak boleh berisi elemen lain
ataupun atribut. Simple element hanya boleh berisi nilai seperti angka,
huruf dan tanggal
Complex element
Complex element berisi elemen lain, atribut atau juga mixed content
9. Monday, March 19, 2018 Riza Muhammad Nurman 9
Simple Element
• Penulisan:
<xsd:element name="element_name" type="data_type"
minOccurs="nonNegativeInteger"
maxOccurs="nonNegativeInteger|unbounded"/>
Atribut Deskripsi
name Menunjukkan nama dari elemen yang dideklarasikan
type Menunjukkan tipe data dari elemen yang dideklarasikan
minOccurs
Menunjukkan jumlah minimum sebuah elemen dapat dituliskan
pada dokumen XML.Nilai 0 pada atribut ini berarti bahwa elemen
tersebut optional. Jika nilai atribut ini lebih dari 0, maka elemen
tersebut harus dituliskan minimal sebanyak nilai dari atribut min
Occurs
maxOccurs
Menunjukkan jumlah maksimum sebuah elemen dapat dituliskan
pada dokumen XML. Jika atribut ini memiliki nilai "unbounded"
berarti elemen dapat dituliskan sebanyak berapapun di dalam
dokumen XML
10. Monday, March 19, 2018 Riza Muhammad Nurman 10
Contoh Deklarasi Element
<xs:element name="Nama_Nasabah" type="xs:string"/>
<xs:element name="Alamat" type="xs:string" />
<xs:element name="Tgl_lhr" type="xs:date"/>
<xs:element name="Pekerjaan" type="xs:string" />
<xs:element name="Nama_Ibu_Kandung"
type="xs:string"/>
11. Monday, March 19, 2018 Riza Muhammad Nurman 11
Contoh Simple Element (1)
<xs:simpleType name="JenKel">
<xs:restriction base="xs:string">
<xs:pattern value="Perempuan|Laki-laki"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="Jen_Kel" type="JenKel" />
12. Monday, March 19, 2018 Riza Muhammad Nurman 12
Contoh Simple Element (2)
<xs:simpleType name="Tlp">
<xs:restriction base="xs:string">
<xs:length value="12"/>
<xs:pattern value="d{3}-d{8}"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="No_Tlp" type="Tlp" />
13. Monday, March 19, 2018 Riza Muhammad Nurman 13
Contoh Simple Element (3)
<xs:simpleType name="Pdpt_bln">
<xs:restriction base="xs:positiveInteger">
<xs:minInclusive value="1000000"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="Pendapatan_bln" type="Pdpt_bln" />
14. Monday, March 19, 2018 Riza Muhammad Nurman 14
Complex Element
• Penulisan
<xsd:complexType name="Nama_Tipe_Data">
Pendeklarasian content model
</xsd:complexType>
16. Monday, March 19, 2018 Riza Muhammad Nurman 16
Contoh Complex Element (2)
<xs:complexType name="Dt_Nasabah">
<xs:sequence>
<xs:element maxOccurs="unbounded"
minOccurs="1" name="Nasabah"
type="Nsbh"/>
</xs:sequence>
</xs:complexType>
Membuat elemen dengan menggunakan complex type Dt_Nasabah:
<xs:element name="Data_Nasabah" type="Dt_Nasabah"/>
17. Monday, March 19, 2018 Riza Muhammad Nurman 17
Atribut Pada XML Schema
• Dideklarasikan dengan cara yang sama dengan deklarasi elemen
• Atribut dapat dideklarasikan :
– simple type definitions : ruang lingkup lokal
– global definition : ruang lingkup global
• Penulisan:
<attribute name="attributename" ref="attributename"
type="datatypename" use="value"
value="value"></attribute>
18. Monday, March 19, 2018 Riza Muhammad Nurman 18
Contoh
<xs:attribute name="nip" type="xs:string"
use="required"/>
<xs:attribute name="status" type="xs:string"
default="Tidak Aktif"/>
<xs:attribute name="posisi" type="xs:string"
use="optional"/>
<xs:attribute name="gaji" type="xs:positiveInteger"
fixed="1000000"/>
20. Monday, March 19, 2018 Riza Muhammad Nurman 20
Pengenalan XML Namespaces
• Menghilangkan keambiguitasan nama elemen
• Caranya:
– 1. Buat setiap nama elemen unik
– 2. Gunakan prefix (memakai URI-Uniform Resource Identifier: URL /
URN)
• Contoh
– Person.xml
– Person2.xml
– Person3.xml
– Namespace.xsd
– Namespace.xml
21. Monday, March 19, 2018 Riza Muhammad Nurman 21
Penggunaan Kembali Komponen Dalam Schema
• Elemen Import
– Mengimport deklarasi global dari XML Schema yang lain
– Perintah <import> biasanya digunakan untuk menggabungkan
XML Schema yang memiliki targetNamespaces yang berbeda
– Dengan menggunakan perintah import, kedua XML Schema tersebut
dapat digunakan bersamaan dalam sebuah dokumen
• Penulisan:
<import namespace="" schemaLocation="">
Contoh:
DataImport1.xsd, DataImport2.xsd, DataImport.xml
Namespace.xsd, Karyawan1.xsd, Karyawan1.xml
22. Monday, March 19, 2018 Riza Muhammad Nurman 22
Penggunaan Kembali Komponen Dalam Schema -
2
• Elemen Include
– Elemen import digunakan ketika targetNamespace yang dipanggil
berbeda
– Elemen include digunakan ketika sebuah schema berada dalam
target namespace yang sama, sehingga kedua dokumen tersebut
dapat digunakan seolah-olah terletak di dalam sebuah dokumen
yang sama
– Pendeklarasian elemen include tidak lagi diperlukan nama
namespace, cukup lokasi dimana schema yang dimaksud berada
– Penulisan:
<include schemaLocation="filename">
23. Monday, March 19, 2018 Riza Muhammad Nurman 23
Membuat Group Elements, Attribute
• Membuat deklarasi elemen-elemen atau atribut-atribut yang saling
berhubungan kedalam sebuah kelompok yang sama
• Elemen yang tergabung dalam sebuah kelompok: group elements
• Atribut yang terletak di dalam kelompok: group attribute
• Mempermudah developer untuk melakukan beberapa pekerjaan:
– Membuat elemen dan atribut yang dapat digunakan kembali.
– Memilih salah satu anggota dari elemen.
– Menentukan urutan dari elemen.
• XML Schema menyediakan beberapa elemen yang dapat digunakan
untuk membuat sebuah group elements dan group attributes, yaitu:
sequence, group, choice, dan all.