TeknikInformatika-UniversitasIslamIndonesia
Dasar XML
dan XML Schema
Teduh Dirgahayu
teduh.dirgahayu@uii.ac.id
TeknikInformatika-UniversitasIslamIndonesia
Agenda
• Peran Web Services
• XML
• Syntax
• Namespace
• XML Schema
21/03/2013
Layanan Web
2
TeknikInformatika-UniversitasIslamIndonesia
Peran Web Services
• 3-tier architecture
21/03/2013
Layanan Web
3
Basisdata
Web server
Presentasi
Internet
App server
Logika
bisnis
Web
Services
TeknikInformatika-UniversitasIslamIndonesia
• Web Services
21/03/2013
Layanan Web
4
Service
provider
(server)
Service
requester
(client)
Service
description
Message
WSDL
SOAP/HTTP
XML +
XML Schema
TeknikInformatika-UniversitasIslamIndonesia
XML
• Extensible Markup Language
• Bahasa penanda (markup), seperti HTML
• Dapat diperluas (extensible)
• Markup bisa didefinisikan sendiri sesuai kebutuhan
• File/dokumen teks
• Untuk penyimpanan dan pengiriman data
• Distandarkan oleh W3C
21/03/2013
Layanan Web
5
TeknikInformatika-UniversitasIslamIndonesia
• Dasar bagi “bahasa” Internet lain
• ebXML : electronic business XML
• KML : Keyhole Markup Language
• MathML : Mathematical Markup Language
• SVG : Scalable Vector Graphic
• WML : Wireless Markup Language
• WSDL : Web Services Description Language
• XHTML : Extensible HTML
• http://en.wikipedia.org/wiki/List_of_XML_markup
_languages
21/03/2013
Layanan Web
6
TeknikInformatika-UniversitasIslamIndonesia
Contoh
• Referensi
• E. Newcomer dan G.Lommow, Understanding SOA with
Web Services, Addison-Wesley Publishing, 2004
• S. Potts dan M. Kopack, SAMS Teach Yourself Web
Services in 24 hours, SAMS, 2003
• H. Gaur dan M. Zirn (editor), BPEL Cookbook, Packt
Publishing, 2006
• L. Richardson dan S. Ruby, RESTful Web Services,
O’Reilly, 2007
• J. Sandoval, RESTful Java Web Services, Packt
Publishing, 2009
• M.D. Hansen, SOA using Java Web Services, Prentice
Hall, 2007
21/03/2013
Layanan Web
7
Penulis Judul Penerbit
Tahun
TeknikInformatika-UniversitasIslamIndonesia
• M.D. Hansen, SOA using Java Web Services,
Prentice Hall, 2007
<buku>
<penulis>M.D. Hansen</penulis>
<judul>SOA using Java Web Services</judul>
<penerbit>Prentice Hall</penerbit>
<tahun>2007</tahun>
</buku>
21/03/2013
Layanan Web
8
Tag (markup) berupa
label arti data
Satu kesatuan
elemen data
Elemen: diawali
dan ditutup tag
TeknikInformatika-UniversitasIslamIndonesia
<referensi>
<buku>
<penulis>M.D. Hansen</penulis>
<judul>SOA using Java Web Services</judul>
<penerbit>Prentice Hall</penerbit>
<tahun>2007</tahun>
</buku>
<buku>
<penulis>J. Sandoval</penulis>
<judul>RESTful Java Web Services</judul>
<penerbit>Packt Publishing</penerbit>
<tahun>2009</tahun>
</buku>
</referensi>
21/03/2013
Layanan Web
9
Buku 1
Buku 2
Satu kesatuan
elemen data
TeknikInformatika-UniversitasIslamIndonesia
• XML harus berstruktur pohon (tree)
21/03/2013
Layanan Web
10
Referensi
Buku
Penulis
Judul Penerbit
Tahun
Buku
Penulis
Judul Penerbit
Tahun
TeknikInformatika-UniversitasIslamIndonesia
Kerjakan
• Buat dalam dokumen XML (15”)
21/03/2013
Layanan Web
11
Matakuliah Kelas Hari Jam Ruang
Rekayasa
Perangkat Lunak
B Rabu 07.00 – 09.30 R. 4.11
Rekayasa
Perangkat Lunak
D Rabu 09.30 – 12.00 R. 4.11
Layanan Web A Kamis 07.00 – 09.30 R. Tutorial
Layanan Web B Kamis 12.00 – 15.00 R. 405
TeknikInformatika-UniversitasIslamIndonesia
Syntax
• Tag buka harus diikuti dengan tag tutup
• <penulis>M.D. Hansen</penulis>
• Tag case-sensitive (peka huruf besar-kecil)
• Huruf tag buka harus sama dengan tag tutup
• <penulis>M.D. Hansen</PENULIS>
21/03/2013
Layanan Web
12
Tag buka
(start tag)
Tag tutup
(end tag)
Salah
TeknikInformatika-UniversitasIslamIndonesia
• Struktur sarang (nest) harus tepat
• <buku>
<penulis> ... </penulis>
</buku>
• <buku>
<penulis> ... </buku>
</penulis>
21/03/2013
Layanan Web
13
Benar
Salah
TeknikInformatika-UniversitasIslamIndonesia
• Hanya punya satu elemen akar
<referensi>
<buku>
<penulis>M.D. Hansen</penulis>
...
</buku>
<buku>
<penulis>J. Sandoval</penulis>
...
</buku>
</referensi>
21/03/2013
Layanan Web
14
Elemen akar
(root)
TeknikInformatika-UniversitasIslamIndonesia
Atribut
• Informasi tambahan pada elemen
<buku isbn=“0132713004” halaman=“608”>
<penulis>M.D. Hansen</penulis>
<judul>SOA using Java Web Services</judul>
<penerbit>Prentice Hall</penerbit>
<tahun>2007</tahun>
</buku>
21/03/2013
Layanan Web
15
Atribut (dalam
tanda petik)
TeknikInformatika-UniversitasIslamIndonesia
Kerjakan
• Jadikan kelas sbg atribut matakuliah (5”)
21/03/2013
Layanan Web
16
Matakuliah Kelas Hari Jam Ruang
Rekayasa
Perangkat Lunak
B Rabu 07.00 – 09.30 R. 4.11
Rekayasa
Perangkat Lunak
D Rabu 09.30 – 12.00 R. 4.11
Layanan Web A Kamis 07.00 – 09.30 R. Tutorial
Layanan Web B Kamis 12.00 – 15.00 R. 405
TeknikInformatika-UniversitasIslamIndonesia
• Elemen kosong
• Tidak mempunyai data elemen
• Data diletakkan di atribut
• <penulis nama=“M.D. Hansen”/>
21/03/2013
Layanan Web
17
Data diletakkan
di atribut
Tidak ada elemen data,
tag langsung ditutup
TeknikInformatika-UniversitasIslamIndonesia
Deklarasi
• <?xml version=“1.0”?>
• Diletakkan di awal dokumen
• Sebagai identifier: dokumen adalah XML
21/03/2013
Layanan Web
18
TeknikInformatika-UniversitasIslamIndonesia
<?xml version=“1.0”?>
<referensi>
<buku>
<penulis>M.D. Hansen</penulis>
<judul>SOA using Java Web Services</judul>
<penerbit>Prentice Hall</penerbit>
<tahun>2007</tahun>
</buku>
<buku>
<penulis>J. Sandoval</penulis>
<judul>RESTful Java Web Services</judul>
<penerbit>Packt Publishing</penerbit>
<tahun>2009</tahun>
</buku>
</referensi>
21/03/2013
Layanan Web
19
Deklarasi
dokumen XML
TeknikInformatika-UniversitasIslamIndonesia
Kerjakan
• Tambahkan deklarasi dokumen XML
21/03/2013
Layanan Web
20
TeknikInformatika-UniversitasIslamIndonesia
• Well-formed XML
• Dokumen XML yang mematuhi syntax XML
21/03/2013
Layanan Web
21
TeknikInformatika-UniversitasIslamIndonesia
Namespace
• Siapa saja bisa membuat tag XML
• Bisa terjadi tabrakan (conflict)
• Dua elemen yang sama dari pembuat yang
berbeda bisa mempunyai arti beda
• <judul> bisa berarti judul buku, judul
lagu, judul film, judul artikel, ...
• Tergantung pada siapa yang membuat dokumen
21/03/2013
Layanan Web
22
TeknikInformatika-UniversitasIslamIndonesia
• Elemen dibuat unik dengan cara
dihubungkan dengan URL atau URI
• URL menjadi namespace bagi elemen
• URL disingkat sebagai prefix
• Prefix dimasukkan pada nama elemen
21/03/2013
Layanan Web
23
TeknikInformatika-UniversitasIslamIndonesia
<ref:referensi xmlns:ref=“http://example.com”>
<ref:buku>
<ref:penulis> ... </ref:penulis>
<ref:judul> ... </ref:judul>
...
</ref:buku>
</ref:referensi>
• URL boleh sembarang atau fiktif
21/03/2013
Layanan Web
24
Definisi
prefix
URL
Indikator
namespace
prefix
TeknikInformatika-UniversitasIslamIndonesia
Kerjakan
• Beri namespace pada dokumen XML (10”)
21/03/2013
Layanan Web
25
TeknikInformatika-UniversitasIslamIndonesia
XML Schema
• Menentukan format dokumen XML
• Urutan elemen
• Tipe data elemen dan atribut
• Kemunculan/cacah elemen dan atribut
• Batasan nilai data elemen dan atribut
• Nilai default elemen dan atribut
21/03/2013
Layanan Web
26
TeknikInformatika-UniversitasIslamIndonesia
• Dokumen
<buku>
<penulis>M.D. Hansen</penulis>
<judul>SOA using Java Web Services</judul>
<penerbit>Prentice Hall</penerbit>
<tahun>2007</tahun>
</buku>
21/03/2013
Layanan Web
27
TeknikInformatika-UniversitasIslamIndonesia
• Format
<xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema”
targetnamespace=“http://example.com”
xmlns=“http://example.com”
elementFormDefault=“qualified”>
<xs:element name=“buku”>
<xs:complexType>
<xs:sequence>
<xs:element name=“penulis” type=“xs:string”/>
<xs:element name=“judul” type=“xs:string”/>
<xs:element name=“penerbit” type=“xs:string”/>
<xs:element name=“tahun” type=“xs:integer”/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
21/03/2013
Layanan Web
28
URL
wajib
target
terima
saja :-)
urutan
tipe data
TeknikInformatika-UniversitasIslamIndonesia
• Dokumen dg deklarasi dan namespace
<?xml version=“1.0”?>
<buku xmlns=“http://example.com”>
<penulis>M.D. Hansen</penulis>
<judul>SOA using Java Web Services</judul>
<penerbit>Prentice Hall</penerbit>
<tahun>2007</tahun>
</buku>
• Cek validasi
21/03/2013
Layanan Web
29
TeknikInformatika-UniversitasIslamIndonesia
• Bentuk lain: skema disebutkan dalam
dokumen
<?xml version=“1.0”?>
<buku xmlns=“http://example.com”
xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance" xsi:schemaLocation="buku.xsd">
<penulis>M.D. Hansen</penulis>
...
• Cek validasi
21/03/2013
Layanan Web
30
URL
wajib
Lokasi file
schema
TeknikInformatika-UniversitasIslamIndonesia
• Format bentuk lain
<xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema”
targetnamespace=“http://example.com”
xmlns=“http://example.com”
elementFormDefault=“qualified”>
<xs:element name=“buku” type=“bukuType”/>
<xs:complexType name=“bukuType”>
<xs:sequence>
<xs:element name=“penulis” type=“xs:string”/>
<xs:element name=“judul” type=“xs:string”/>
<xs:element name=“penerbit” type=“xs:string”/>
<xs:element name=“tahun” type=“xs:integer”/>
</xs:sequence>
</xs:complexType>
</xs:schema>
21/03/2013
Layanan Web
31
Definisi
tipe data
Merujuk
tipe data
TeknikInformatika-UniversitasIslamIndonesia
• Tipe data dasar (yang lazim digunakan)
• xs:string
• xs:decimal : pecahan
• xs:integer : bulat
• xs:boolean
• xs:date : YYYY-MM-DD
• xs:time : hh-mm-ss
21/03/2013
Layanan Web
32
TeknikInformatika-UniversitasIslamIndonesia
• Elemen dengan atribut
<?xml version=“1.0”?>
<buku xmlns=“http://example.com”
isbn=“0132713004”>
<penulis>M.D. Hansen</penulis>
<judul>SOA using Java Web Services</judul>
<penerbit>Prentice Hall</penerbit>
<tahun>2007</tahun>
</buku>
21/03/2013
Layanan Web
33
Atribut
TeknikInformatika-UniversitasIslamIndonesia
<xs:complexType name=“bukuType”>
<xs:sequence>
<xs:element name=“penulis” type=“xs:string”/>
<xs:element name=“judul” type=“xs:string”/>
<xs:element name=“penerbit” type=“xs:string”/>
<xs:element name=“tahun” type=“xs:integer”/>
</xs:sequence>
<xs:attribute name=“isbn” type=“xs:string”/>
</xs:element>
</xs:schema>
21/03/2013
Layanan Web
34
Definisi
atribut
TeknikInformatika-UniversitasIslamIndonesia
• Valid XML
• Dokumen XML yang mematuhi format skemanya
21/03/2013
Layanan Web
35
TeknikInformatika-UniversitasIslamIndonesia
Kerjakan
• Buat schema untuk dokumen sebelumnya
(20”)
21/03/2013
Layanan Web
36
Matakuliah Kelas Hari Jam Ruang
Rekayasa
Perangkat Lunak
B Rabu 07.00 – 09.30 R. 4.11
Rekayasa
Perangkat Lunak
D Rabu 09.30 – 12.00 R. 4.11
Layanan Web A Kamis 07.00 – 09.30 R. Tutorial
Layanan Web B Kamis 12.00 – 15.00 R. 405
atribute
TeknikInformatika-UniversitasIslamIndonesia
Rangkuman
• XML
• Namespace
• XML Schema
21/03/2013
Layanan Web
37

xml dan_xml_schema