1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
---
language: xml
filename: learnxml-id.xml
contributors:
- ["João Farias", "https://github.com/JoaoGFarias"]
translators:
- ["Rizky Luthfianto", "https://github.com/rilut"]
lang: id-id
---
XML adalah bahasa markup yang dirancang untuk menyimpan dan mengirim data.
Tidak seperti HTML, XML tidak menentukan bagaimana menampilkan atau format data, hanya membawanya.
* Sintaks XML
```xml
<!-- Komentar di XML seperti ini -->
<?xml version="1.0" encoding="UTF-8"?>
<tokobuku>
<buku category="MEMASAK">
<judul lang="en">Everyday Italian</judul>
<pengarang>Giada De Laurentiis</pengarang>
<tahun>2005</tahun>
<harga>30.00</harga>
</buku>
<buku category="ANAK">
<judul lang="en">Harry Potter</judul>
<pengarang>J K. Rowling</pengarang>
<tahun>2005</tahun>
<harga>29.99</harga>
</buku>
<buku category="WEB">
<judul lang="en">Learning XML</judul>
<pengarang>Erik T. Ray</pengarang>
<tahun>2003</tahun>
<harga>39.95</harga>
</buku>
</tokobuku>
<!-- Di atas adalah contoh file XML biasa.
Dimulai dengan deklarasi, menginformasikan beberapa metadata (opsional).
XML menggunakan struktur pohon. Di atas, simpul akar adalah 'tokobuku',
yang memiliki tiga node anak, para 'buku'. Node-node tersebut dapat memiliki
node-node anak, dan seterusnya ...
Node dibuat menggunakan tag buka/tutup, dan node-node anak hanya
berada di antara tag buka dan tutup .-->
<!-- XML membawa dua jenis data:
1 - Atribut -> Itu metadata tentang sebuah node.
Biasanya, parser XML menggunakan informasi ini untuk menyimpan data dengan
benar. Hal ini ditandai dengan muncul dengan format nama = "nilai" dalam pembukaan tag.
2 - Elemen -> Itu data yang murni.
Itulah yang parser akan mengambil dari file XML.
Elemen muncul antara tag membuka dan menutup.-->
<!-- Di bawah ini, unsur dengan dua atribut-->
<file type="gif" id="4293">komputer.gif</file>
```
* Dokumen yang well-formated & Validasi
Sebuah dokumen XML disebut well-formated jika sintaksisnya benar.
Namun, juga mungkin untuk mendefinisikan lebih banyak batasan dalam dokumen,
menggunakan definisi dokumen, seperti DTD dan XML Schema.
Sebuah dokumen XML yang mengikuti definisi dokumen disebut valid,
jika sesuai dokumen itu.
Dengan alat ini, Anda dapat memeriksa data XML di luar logika aplikasi.
```xml
<!-- Di bawah, Anda dapat melihat versi sederhana dari dokumen tokobuku,
dengan penambahan definisi DTD .-->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE catatan SYSTEM "tokobuku.dtd">
<tokobuku>
<buku category="MEMASAK">
<judul >Everyday Italian</judul>
<harga>30.00</harga>
</buku>
</tokobuku>
<!-- This DTD could be something like:-->
<!DOCTYPE catatan
[
<!ELEMENT tokobuku (buku+)>
<!ELEMENT buku (judul,harga)>
<!ATTLIST buku category CDATA "Sastra">
<!ELEMENT judul (#PCDATA)>
<!ELEMENT harga (#PCDATA)>
]>
<!-- DTD dimulai dengan deklarasi.
Berikut, node akar dinyatakan, membutuhkan 1 atau lebih anak node 'buku'.
Setiap 'buku' harus berisi tepat satu 'judul' dan 'harga' dan atribut
disebut 'kategori', dengan "Sastra" sebagai nilai default.
Node yang 'judul' dan 'harga' mengandung karakter data diurai .-->
<!-- DTD dapat dideklarasikan di dalam file XML itu sendiri .-->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE catatan
[
<!ELEMENT tokobuku (buku+)>
<!ELEMENT buku (judul,harga)>
<!ATTLIST buku category CDATA "Sastra">
<!ELEMENT judul (#PCDATA)>
<!ELEMENT harga (#PCDATA)>
]>
<tokobuku>
<buku category="MEMASAK">
<judul >Everyday Italian</judul>
<harga>30.00</harga>
</buku>
</tokobuku>
```
|