XSD Batas / Facets
- Halaman Sebelumnya Atribut XSD
- Halaman Berikutnya Elemen XSD
Pengaturan (restriction) digunakan untuk mendefinisikan nilai yang diterima bagi elemen XML atau atribut. Pengaturan bagi elemen XML disebut sebagai facet.
Pengaturan nilai
Contoh berikut mendefinisikan elemen yang disebutkan "age" dengan batasan. Nilai "age" tidak boleh kurang dari 0 atau lebih tinggi dari 120:
<xs:element name="age"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="120"/> </xs:restriction> </xs:simpleType> </xs:element>
Pengaturan untuk kelompok nilai
Untuk menentukan konten elemen XML menjadi suatu kelompok nilai yang dapat diterima, kita harus menggunakan pengaturan daftar (enumeration constraint).
Contoh berikut mendefinisikan elemen yang disebutkan "car" dengan batasan. Nilai yang diterima hanya Audi, Golf, BMW:
<xs:element name="car"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Audi"/> <xs:enumeration value="Golf"/> <xs:enumeration value="BMW"/> </xs:restriction> </xs:simpleType> </xs:element>
Contoh di atas juga dapat ditulis:
<xs:element name="car"> type="carType"/> <xs:simpleType name="carType"> <xs:restriction base="xs:string"> <xs:enumeration value="Audi"/> <xs:enumeration value="Golf"/> <xs:enumeration value="BMW"/> </xs:restriction> </xs:simpleType>
Keterangan:Dalam kasus ini, tipe "carType" dapat digunakan oleh elemen lain, karena ia bukan bagian dari elemen "car".
Pengaturan untuk sejumlah nilai
Untuk menentukan konten elemen XML menjadi urutan bilangan atau huruf yang dapat digunakan, kita harus menggunakan pengaturan paten (pattern constraint).
Contoh berikut mendefinisikan elemen yang disebutkan "letter" dengan batasan. Nilai yang diterima hanya huruf kecil a - z satu:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpleType> </xs:element>
Contoh berikut mendefinisikan elemen yang disebutkan "initials" dengan batasan. Nilai yang diterima adalah huruf besar A - Z sebanyak tiga:
<xs:element name="initials"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[A-Z][A-Z][A-Z]"/> </xs:restriction> </xs:simpleType> </xs:element>
Contoh berikut juga mendefinisikan elemen yang disebutkan "initials" dengan batasan. Nilai yang diterima adalah huruf besar atau kecil a - z sebanyak tiga:
<xs:element name="initials"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/> </xs:restriction> </xs:simpleType> </xs:element>
Contoh berikut mendefinisikan elemen yang memiliki batasan bernama "choice". Nilai yang diterima adalah salah satu huruf x, y atau z:
<xs:element name="choice"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[xyz]"/> </xs:restriction> </xs:simpleType> </xs:element>
Contoh berikut mendefinisikan elemen yang memiliki batasan bernama "prodid". Nilai yang diterima adalah urutan lima angka Arab, dan setiap angka berada dalam rentang 0-9:
<xs:element name="prodid"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/> </xs:restriction> </xs:simpleType> </xs:element>
Batasan lain untuk sejumlah nilai
Contoh di bawah ini mendefinisikan elemen yang memiliki batasan bernama "letter". Nilai yang diterima adalah nol atau lebih huruf a-z:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="([a-z])*"/> </xs:restriction> </xs:simpleType> </xs:element>
Contoh di bawah ini mendefinisikan elemen yang memiliki batasan bernama "letter". Nilai yang diterima adalah pasangan atau pasangan-pasangan huruf, setiap pasangan huruf disusun dari huruf kecil diikuti huruf besar. Sebagai contoh, "sToP" akan melalui verifikasi ini, tetapi "Stop", "STOP" atau "stop" tidak dapat melalui verifikasi:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="([a-z][A-Z])+"/> </xs:restriction> </xs:simpleType> </xs:element>
Contoh di bawah ini mendefinisikan elemen yang memiliki batasan bernama "gender". Nilai yang diterima adalah male atau female:
<xs:element name="gender"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="male|female"/> </xs:restriction> </xs:simpleType> </xs:element>
Contoh di bawah ini mendefinisikan elemen yang memiliki batasan bernama "password". Nilai yang diterima adalah baris karakter yang terdiri dari 8 karakter, karakter-karakter ini harus huruf besar atau kecil a-z atau angka 0-9:
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-zA-Z0-9]{8}"/> </xs:restriction> </xs:simpleType> </xs:element>
Batasan karakter spasi
Untuk menentukan cara pengelolaan karakter spasi (whitespace characters), kita harus menggunakan batasan whiteSpace:
Contoh di bawah ini mendefinisikan elemen yang memiliki batasan bernama "address". Batasan whiteSpace ini diatur menjadi "preserve", yang berarti pemroses XML tidak akan menghapus sebarang karakter spasi:
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="preserve"/> </xs:restriction> </xs:simpleType> </xs:element>
Contoh ini juga mendefinisikan elemen yang dinamai "address" dengan batasan. WhiteSpace batasan disetel menjadi "replace", yang berarti pemroses XML akan menghapus semua karakter kosong (garis putar, enter, spasi, dan tab):
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="replace"/> </xs:restriction> </xs:simpleType> </xs:element>
Contoh ini juga mendefinisikan elemen yang dinamai "address" dengan batasan. WhiteSpace batasan disetel menjadi "collapse", yang berarti pemroses XML akan menghapus semua karakter kosong (garis putar, enter, spasi, dan tab akan diganti dengan spasi, spasi awal dan akhir akan dihapus, serta spasi berurutan akan disingkat menjadi satu spasi):
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="collapse"/> </xs:restriction> </xs:simpleType> </xs:element>
Pengaturan panjang
Untuk membatasi panjang nilai elemen, kita perlu menggunakan batasan length, maxLength, dan minLength.
Pada contoh ini, elemen yang memiliki batasan dan dinamai "password" harus tepat 8 karakter:
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="8"/> </xs:restriction> </xs:simpleType> </xs:element>
Contoh ini juga mendefinisikan elemen yang dinamai "password" dengan batasan. Nilainya minimal 5 karakter, maksimal 8 karakter:
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="5"/> <xs:maxLength value="8"/> </xs:restriction> </xs:simpleType> </xs:element>
Pengaturan tipe data
Pengaturan | Deskripsi |
---|---|
enumeration | Definisi daftar nilai yang diizinkan |
fractionDigits | Definisi maksimum titik desimal yang diizinkan. Harus lebih besar atau sama dengan 0. |
length | Definisi jumlah karakter atau item dalam daftar yang diizinkan. Harus lebih besar atau sama dengan 0. |
maxExclusive | Definisi batas atas nilai. Nilai yang diizinkan harus kurang dari nilai ini. |
maxInclusive | Definisi batas atas nilai numerik. Nilai yang diizinkan harus lebih kecil atau sama dengan nilai ini. |
maxLength | Definisi jumlah maksimum karakter atau item dalam daftar yang diizinkan. Harus lebih besar atau sama dengan 0. |
minExclusive | Definisi batas bawah nilai numerik. Nilai yang diizinkan harus lebih besar dari nilai ini. |
minInclusive | Definisi batas bawah nilai numerik. Nilai yang diizinkan harus lebih besar atau sama dengan nilai ini. |
minLength | Definisi jumlah minimum karakter atau item dalam daftar yang diizinkan. Harus lebih besar atau sama dengan 0. |
pattern | Definisi urutan karakter yang diizinkan. Harus lebih besar dari 0. |
totalDigits | Definisi jumlah titik desimal yang diizinkan. Harus lebih besar dari 0. |
whiteSpace | Definisi cara menangani spasi putih (garis putar, enter, spasi, dan tab) |
- Halaman Sebelumnya Atribut XSD
- Halaman Berikutnya Elemen XSD