Team dosen
Pengenalan XML
TIF82/SIF82-01
Prodi Teknik Informatika, Fak. Teknologi Informasi Universitas Mercubuana Yogyakarta
Apa itu XML?
eXtensible Markup Language, sebuah spesifikasi untuk membuat sebuah
bahasa markup
Bahasa Markup adalah sistem modern untuk menganotasi dokumen dengan cara
yang secara sintaksis dibedakan dari teks (Wikipedia Indonesia). Ada tanda-tanda khusus untuk merepresentasikan data/text.
XML digunakan untuk membuat sebuah bahasa dengan konsep eXtensible. Tujuan utama untuk membantu komputer untuk berbagi (sharing) data
Apa itu XML? – cont
XML merupakan kumpulan peraturan sederhana yang memberikan aturan
bagaimana mendefinisikan tags yang memisahkan dokumen menjadi bagian dan sub bagian.
Didefinisikan sebagai teknologi standard yang bersifat terbuka (open
standard)
Data independent, memisahkan konten dari presentasi (tampilan) Sebuah dokumen XML dapat mereferensi ke dokumen lain yang
mendefinisikan struktur dokumen XML Data Type Definition (DTD) atau sebuah Schema (valid).
Sejarah Singkat XML
Berawal dari munculnya Standard Generalized Markup Language (SGML), yang
distandarkan oleh ISO tahun 1986 (ISO 8879)
Masalah dengan SGML
Terlalu kompleks, sulit untuk mengolah, spesifikasi tidak tersedia bebas, perangkat
mahal dan sedikit open source
Muncul HTML yang merupakan turunan dari SGML yang menggabungkan konten
dan tampilan (presentation) misalnya : color, font size, dll.
Sulit untuk mengelola data yang kompleks yang mudah diolah mesin Tags yang kompatibel antar vendor web browser
Sejarah Singkat XML (cont.)
Tahun 1996 komunitas SGML mengajak W3C dan praktisi vendor web untuk
mengadopsi SGML untuk web
XML mulai berkembang dan akhirnya di setujui oleh W3C pada 10 Februari
XML dan HTML
XML didesain untuk menampung/membawa data XML tidak dibuat untuk menggantikan HTML
XML didesian untuk mendeskripsikan data dan berfokus pada data-nya apa.
Sedangkan HTML didesain untuk menampilkan data dan berfokus bagaimana data tersebut ditampilkan.
HTML berhubungan dengan menampilkan informasi, sedang XML
mendeskripsikan informasi
XML dapat diperluas sendiri (eXtensible), tags XML tidak didefinisikan, sedang
Document-Centric XML
Perhatikan sebuah contoh dokumen XML berikut:
<h1>Petunjuk penggunaan Software X</h1><p>Untuk menggunakan <b>software X</b> pastikana mengikuti petunjuk berikut:</p> <list>
<item>Install software dari DVD</item>
<item>Masukkan serial number yang sudah disertakan</item> <item>Aktifkan internet untuk registrasi ulang.</item> </list>
<p>Setelah langkah diatas dilakukan, bisa download template dari link ini <link href=http://software-x.com”>Template X</link>.
<po id="43871" submitted="2004-06-05"> <billTo>
<company>The Skateboard Warehouse</company>
<street>One Warehouse Park, Building 17</street> <city>Boston</city>
<state>MA</state>
<postalCode>01775</postalCode> </billTo>
<shipTo>
<company>The Skateboard Warehouse</company>
<street>One Warehouse Park, Building 17</street> <city>Boston</city>
<state>MA</state>
<postalCode>01775</postalCode> </shipTo>
<order>
<item sku="318-BP" quantity="5">
<description>Skateboard backpack</description> </item>
<item sku="947-TI" quantity="5">
Data
-Centri
c
Data- vs Document-Centric XML
Rasio/perbandingan markup dan konten di data-centric lebih tinggi daripada
document-centric
Data-centric biasanya menyertakan informasi yang dihasilkan mesin/software Dokumen dan tag di data-centric lebih terstruktur
Data-centric dengan mudah dihubungkan dengan struktur sebuah data/class. Biasanya, document-centric berfokus (dibaca) untuk manusia, data lebih ke
mesin/aplikasi
Dokumen XML
Biasanya diawali dengan sebuah Prolog, yang bisa berisi :
Identifikasi dokumen adalah XML Komentar tentang dokumen
Meta-information yang menjelaskann tentang dokumen
Setelah prolog selanjutnya baru di ikuti dengan root elemen yang berisi
dokumen/data XML.
Contoh prolog
<?xml version="1.0" encoding="UTF-8" ?>
Dasar XML (markups)
Dokumen XML hanya berisi text Mengapa dengan markups (tanda) ?
Manusia dapat membacanya
Dapat diolah dengan mudah menggunakan software
Merupakan cara yang efektif untuk merepresentasikan data
Data di markup (ditandai) dengan tags
<person>
Agus Wibowo </person>
Tags, Elemant dan Attribute
Tag diawali dengan tanda < ... > (start tag) dan diakhiri dengan tanda </...>
(end tag). Di antara tags merupakan elemen konten.
Khusus bagian CDATA, markup ditandai dengan tag <![CDATA[ … ]]>
(didalamnya bisa berisi konten apa saja)
Didalam tag sendiri, selain ada nama tag (elemen name) bisa berisi informasi
tambahan Attribute (yang terbagi menjadi attribute name dan attribute value).
Satu set start tags, nama tags , attribute, konten sampai end tags disebut
XML Elements
Nama element bisa menggunakan kata apa saja yang sesuai dengan nama
identifier standard programming
Elements dapat terdiri dari 3 jenis
Elemeny only - hanya berisi sekumpukan elemen saja
Mixed content - kombinasi sekumpulan elemen dan konten Empty content – Elemen kosong bisa disingkat misalnnya:
<emptyElement/> atau
XML Elements –cont
XML elements harus bersarang urut dan tidak overlap. Berikut contoh elemen
yang salah :
<!-- bad syntax -->
<p><i><b> some text</i></b></p>
Hanya boleh ada satu root (top level) elemen didalam sebuah dokumen
(khusus top level elemen saja). Berikut ini tidak boleh :
<!-- This is not correct -->
<first>The first root element</first> <second>The second root element</second>
Attributes
Atribut hanya boleh dituliskan didalam start tags
Nama atribut yang diawali dengan xml merupakan nama cadangan (reserved)
- mempunyai maksud khusus
Penulisan nilai atribut disertai dengan tanda petik tunggal atau ganda.
Misalnya :
<po id="43871" submitted='2004-06-05'> ...
Elemen Konten
Konten sebuah elemen bisa text apa saja semisal UTF-8, termasuk unicode
(huruf china, jepang, arab dsb)
<?xml version="1.0" encoding="UTF-8" ?> <俄语>данные</俄语>
Penulisan karakter/huruf yang dicadangkan harus menggunakan karakter
khusus, semisal tanda < ditulis < dan & ditulis & Kecuali penulisan di
Konflik Nama Eleman
Perhatikan 2 contoh dokumen xml berikut:
Jika 2 dokumen tersebut diolah bersama, maka akan konflik karena nama
elemen yang sama, yaitu table
Dokumen XML Furniture (meja) Tabel buah-buahan
<table>
<name>African Coffee Table</name> <width>80</width> <length>120</length> <price>USD 2000</price> </table> <table> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table>
Konflik Nama Eleman –cont
Untuk menghindari konflik digunakan nama tambahan (prefik)
Contoh diatas, sudah tidak ada konflik lagi karena <table> sudah mempunyai
nama yang berbeda
Dokumen XML Furniture (meja) Tabel buah-buahan
<f:table>
<f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> <f:price>USD 2000</f:price> </f:table> <h:table> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table>
XML Namespace
Jika menggunakan prefik, harus didefinisikan yang namanya Namespace
untuk prefik tersebut.
Namespace didefinisikan dengan atribut xmlns yang ditulis diawal tag (start
tag).
Sintak penulisan namespace adalah xmlns:prefix="URI" Uniform Resource Identifiers (URI), bisa 2 jenis :
Unified Resource Locator (URL) - http://www.domain.com Uniform Resource Names (URN) - urn:uuid:2FAC1234-31F8-11B4-A222-090909889098
XML Namespace –cont
Contoh penulisan namespace
<h:table xmlns:h="http://www.w3.org/TR/html4/"> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table> <f:table xmlns:f="http://www.w3schools.com/furniture"> <f:name>African Coffee Table</f:name>
<f:width>80</f:width> <f:length>120</f:length> </f:table>
Ketika namespace untuk prefix elemen didefinisikan, maka prefix
anak/turunan elemen tsb menggunakan namespace yang sama
XML Namespaces –cont
Namespaces dapat didefinisikan di root level dokumen, misalnya
<root
xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3schools.com/furniture"
>
<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table>
<f:name>African Coffee Table</f:name>
...
XML Namespaces –cont
URI sebuah namespace tidak digunakan oleh pengolah dokumen XML (parser)
untuk mencari informasi
Tujuan namespace untuk memberikan nama unik, tetapi terkadang
namespace juga digunakan sebagai link/pengarah yang berisi informasi tentang namespace tersebut
Kombinasi antara prefik, tanda ‘:’ dan nama (local name) disebut juga
Qualified Name (Qname), contoh :
h:table
Default namespace :
xmlns="http://www.w3.org/1999/xhtml"
XML Schema
Sebuah dokumen XML dapat mempunyai referensi ke dokumen tambahan
(schema) yang memberikan spesifikasi bagaimana struktur dokumen XML
Ketika disertakan Schema, aplikasi pengolah (parser) dapat mengecek
struktur dokumen menggunakan informasi schema tersebut
Schema dapat digunakan untuk mengecek validitas sebuah dokumen XML Schema di representasikan sebagai XML
Tag untuk schema biasanya mempunyai prefik xsd: (XML Schema Definition),
yang berarti merupakan bagian dari schema yang mengarah pada http://www.w3.org/2001/XMLSchema
XML Schema—cont
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.x3.org/2001/XMLSchema"
xmlns="http://www.skatestown.com/ns/po"
targetNamespace ="http://www.skatestown.com/ns/po" > <xsd:annotation>
<xsd:documentation xml:lang="en">
This XML Schema document represents a PO
</xsd:documentation> </xsd:annotation>
...
Schema Data Types
XSD menyertakan 19 data type utama, yaitu :
anyURI, base64Binary, boolean, date, dateTime, decimal, do
uble, duration, float, hexBinary, gDay, gMonth,gMonthDay,
gYear, gYearMonth, NOTATION, QName, string, dan time
Tipe data baru dapat digunakan diturunkan dari 19 tipe data tersebut. Prefik sebuah schema tidak harus xsd, meskipun xsd lebih disukai untuk
digunakan
<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Address">
<xs:complexType> <xs:sequence>
<xs:element name="Recipient" type="xs:string" /> <xs:element name="House" type="xs:string" /> <xs:element name="Street" type="xs:string" /> <xs:element name="Town" type="xs:string" />
<xs:element name="County" type="xs:string" minOccurs="0" /> <xs:element name="PostCode" type="xs:string" />
<xs:element name="Country" minOccurs="0"> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:enumeration value="ID" /> <xs:enumeration value="UK" /> <xs:enumeration value="US" /> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Contoh sebuah XML Schema, yang
mendefinisikan Alamat (Address)
Struktur XML
<root>
<child>
<subchild>...</subchild>
</child>
</root>
XML
<?xml version="1.0" encoding="UTF-8"?>
<data>
<mahasiswa>
<nim>1122011xxx</nim>
<nama>endang</nama>
<jurusan>Teknik Informatika</jurusan>
</mahasiswa>
</data>
Data Mahasiswa
112011xxx
Endang
Teknik Informatika
XML
<?xml version="1.0" encoding="UTF-8"?> <data> <mahasiswa> <nim>112011xxx</nim> <nama>Heti</nama> <jurusan>Teknik Informatika</jurusan> </mahasiswa> <mahasiswa> <nim>11311xxx</nim> <nama>Andi</nama> <jurusan>Sistem Informasi</jurusan> </mahasiswa> </data>Data Mahasiswa
112011xxx
Heti
Teknik Informatika
113011xxx
Andi
Sistem Informasi
XML Attribute
Semua elemen XML dapat memiliki attribut, seperti HTML.
Attribut didesain untuk menampung data yang spesifik terhadap elemen
Attribut vs Elemen
<?xml version="1.0" encoding="UTF-8"?>
<data>
<mahasiswa>
<nim>112011xxx</nim>
<nama>Andi</nama>
<jurusan>Teknik Informatika</jurusan>
</mahasiswa>
</data>
<?xml version="1.0" encoding="UTF-8"?>
<data>
<mahasiswa jurusan=“Teknik Informatika”>
<nim>112011xxx</nim>
<nama>Andi</nama>
</mahasiswa>
</data>
ATTRIBUT
ELEMEN
Aturan XML
Semua elemen harus memiliki tag penutup. XML Tags are Case Sensitive
Elemen XML yang bersarang harus beraturan/berurutan. Dokumen XML harus mempunyai elemen root.
Value dari Attribut XML harus dikutip. Dll.
TUGAS KELAS
Buat dalam bentuk dokumen XML
DIARI
Judul : Kuliah di FTI Created :
Isi :
Hari ini saya masuk kuliah di FTI .
Senang bisa bergabung dengan kelas malam dan pagi. Tanggal : 01-03-2015
<?xml version="1.0" encoding="utf-8"?>
<Address xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="SimpleAddress.xsd"> <Recipient>Mr. Walter C. Brown</Recipient>
<House>49</House>
<Street>Featherstone Street</Street> <Town>LONDON</Town>
<PostCode>EC1Y 8SY</PostCode> <Country>UK</Country>
</Address>
Referensi / Daftar Pustaka
Cerami, E., 2002, Web Services Essentials Distributed Applications
with XMLRPC, SOAP, UDDI & WSDL, O’Reilly: North Sebastopol.