Fasilitas/Facets XSD
- Halaman Sebelumnya Atribut XSD
- Halaman Berikutnya Elemen Kombinasi XSD
Pembatasan (restriction) digunakan untuk mendefinisikan nilai yang diterima untuk elemen XML atau atribut. Pembatasan untuk elemen XML disebut dengan facet.
Pembatasan nilai
Contoh di bawah ini mendefinisikan elemen yang mempunyai batas dan dinamai "age". 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>
Pembatasan untuk sekumpulan nilai
Untuk membatasi konten elemen XML menjadi sekumpulan nilai yang diterima, kita harus menggunakan batasan enumerasi (enumeration constraint).
Contoh berikut menentukan elemen yang memiliki batasan bernama "car". 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 seperti ini:
<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".
Pembatasan untuk sekumpulan nilai
Untuk membatasi konten elemen XML menjadi sekumpulan angka atau huruf yang dapat digunakan, kita harus menggunakan batasan pola (pattern constraint).
Contoh berikut menentukan elemen yang memiliki batasan bernama "letter". Nilai yang diterima hanya huruf kecil a - z yang 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 juga menentukan elemen yang memiliki batasan bernama "initials". Nilai yang diterima adalah tiga huruf besar A - Z:
<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 menentukan elemen yang memiliki batasan bernama "initials". Nilai yang diterima adalah tiga huruf besar atau kecil a - z:
<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 juga menentukan elemen yang memiliki batasan bernama "choice". Nilai yang diterima adalah huruf x, y, atau z yang satu:
<xs:element name="choice"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[xyz]"/> </xs:restriction> </xs:simpleType> </xs:element>
Contoh berikut menentukan elemen yang memiliki batasan bernama "prodid". Nilai yang diterima adalah deretan lima angka Arab, dan setiap angka berada dalam kisaran 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 sekuensia nilai
Contoh di bawah ini mendefinisikan elemen dengan nama yang disebut "letter" yang memiliki batasan. Nilai yang diterima adalah nol atau beberapa huruf dari 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 dengan nama yang disebut "letter" yang memiliki batasan. Nilai yang diterima adalah pasangan atau beberapa pasangan huruf, setiap pasangan huruf disusun dari huruf kecil kemudian 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 dengan nama yang disebut "gender" yang memiliki batasan. 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 dengan nama yang disebut "password" yang memiliki batasan. 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 kosong
Untuk menentukan cara menangani karakter kosong (karakter whitespace), kita perlu menggunakan batasan whiteSpace.
Contoh di bawah ini mendefinisikan elemen dengan nama yang disebut "address" yang memiliki batasan. Batasan whiteSpace ini diatur menjadi "preserve", yang berarti pemroses XML tidak akan menghilangkan karakter kosong apapun:
<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 dengan nama yang disebut "address" yang memiliki batasan. Batasan whiteSpace ini diatur menjadi "replace", yang berarti pemroses XML akan menghilangkan semua karakter kosong (garis baris, 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 pengaturan. WhiteSpace pengaturan ini diatur menjadi "collapse", yang berarti pemroses XML akan menghilangkan semua karakter kosong (baris kosong, enter, spasi, dan tab akan diganti dengan spasi, spasi di awal dan akhir akan dihapus, dan spasi berikutnya 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 pengaturan length, maxLength, dan minLength.
Pada contoh ini, elemen yang dinamai "password" dengan pengaturan 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 pengaturan. 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 batas maksimal 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 lebih kecil daripada nilai ini. |
maxInclusive | Definisi batas atas nilai. Nilai yang diizinkan harus lebih kecil atau sama dengan nilai ini. |
maxLength | Definisi jumlah maksimal karakter atau item dalam daftar yang diizinkan. Harus lebih besar atau sama dengan 0. |
minExclusive | Definisi batas bawah nilai. Nilai yang diizinkan harus lebih besar daripada 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 diizinkan. |
totalDigits | Definisi akurasi digit angka Arab yang diizinkan. Harus lebih besar dari 0. |
whiteSpace | Definisi pengobatan karakter kosong (garis baru, enter, spasi, dan tab). |
- Halaman Sebelumnya Atribut XSD
- Halaman Berikutnya Elemen Kombinasi XSD