tutorial pengembangan web terbaru
 

XSD Pembatasan / segi


Pembatasan digunakan untuk mendefinisikan nilai-nilai yang dapat diterima untuk elemen XML atau atribut. Pembatasan elemen XML disebut aspek.


Pembatasan Nilai

Contoh berikut mendefinisikan sebuah elemen yang disebut "age" dengan pembatasan. Nilai usia tidak dapat lebih rendah dari 0 atau lebih besar 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 pada Set Nilai

Untuk membatasi isi dari elemen XML untuk seperangkat nilai-nilai yang dapat diterima, kami akan menggunakan kendala pencacahan.

Contoh di bawah ini mendefinisikan sebuah elemen yang disebut "car" dengan pembatasan. Satu-satunya nilai yang dapat diterima adalah: 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 bisa juga 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>

Note: Dalam hal ini jenis "carType" dapat digunakan oleh unsur-unsur lain karena itu bukan bagian dari "car" elemen.


Pembatasan pada Seri Nilai

Untuk membatasi isi dari elemen XML untuk mendefinisikan serangkaian angka atau huruf yang bisa digunakan, kita akan menggunakan kendala pola.

Contoh di bawah ini mendefinisikan sebuah elemen yang disebut "letter" dengan pembatasan. Satu-satunya nilai yang dapat diterima adalah SATU dari huruf kecil dari a sampai z:

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Contoh berikutnya mendefinisikan sebuah elemen yang disebut "initials" dengan pembatasan. Satu-satunya nilai yang dapat diterima adalah TIGA dari huruf huruf besar dari ke 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 berikutnya juga mendefinisikan sebuah elemen yang disebut "initials" dengan pembatasan. Satu-satunya nilai yang dapat diterima adalah TIGA dari huruf kecil atau huruf huruf dari ke 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 berikutnya mendefinisikan sebuah elemen yang disebut "choice" dengan pembatasan. Satu-satunya nilai yang dapat diterima adalah SATU dari surat-surat berikut: x, y, z OR:

<xs:element name="choice">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[xyz]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Contoh berikutnya mendefinisikan sebuah elemen yang disebut "prodid" dengan pembatasan. Satu-satunya nilai yang dapat diterima adalah FIVE digit secara berurutan, dan masing-masing digit harus dalam kisaran dari 0 sampai 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>

Pembatasan lain pada Seri Nilai

Contoh di bawah ini mendefinisikan sebuah elemen yang disebut "letter" dengan pembatasan. Nilai diterima adalah nol atau lebih kejadian dari huruf kecil dari a sampai z:

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="([a-z])*"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Contoh berikutnya juga mendefinisikan sebuah elemen yang disebut "letter" dengan pembatasan. Nilai diterima adalah satu atau lebih pasang huruf, masing-masing pasangan terdiri dari huruf kecil diikuti dengan huruf besar. Misalnya, "sToP" akan divalidasi oleh pola ini, tapi tidak "Stop" atau "STOP" atau "stop" :

<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 berikutnya mendefinisikan sebuah elemen yang disebut "gender" dengan pembatasan. Satu-satunya nilai yang dapat diterima adalah laki-laki atau perempuan:

<xs:element name="gender">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="male|female"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Contoh berikutnya mendefinisikan sebuah elemen yang disebut "password" dengan pembatasan. Harus ada tepat delapan karakter berturut-turut dan karakter-karakter harus huruf kecil atau huruf besar dari a sampai z, atau nomor dari 0 sampai 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>

Pembatasan Karakter Spasi

Untuk menentukan bagaimana karakter spasi harus ditangani, kami akan menggunakan kendala spasi.

Contoh ini mendefinisikan sebuah elemen yang disebut "address" dengan pembatasan. Kendala spasi diatur ke "preserve" , yang berarti bahwa prosesor XML TIDAK AKAN menghapus 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 sebuah elemen yang disebut "address" dengan pembatasan. Kendala spasi diatur ke "replace" , yang berarti bahwa prosesor XML AKAN MENGGANTI semua karakter putih ruang (line feed, tab, spasi, dan tombol kembali) dengan spasi:

<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 sebuah elemen yang disebut "address" dengan pembatasan. Kendala spasi diatur ke "collapse" , yang berarti bahwa prosesor XML AKAN HAPUS semua karakter spasi (line feed, tab, spasi, tombol kembali diganti dengan spasi, ruang terkemuka dan trailing dihapus, dan beberapa ruang direduksi menjadi satu ruang):

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Pembatasan Panjang

Untuk membatasi panjang nilai dalam elemen, kita akan menggunakan panjang, maxlength, dan kendala MINLENGTH.

Contoh ini mendefinisikan sebuah elemen yang disebut "password" dengan pembatasan. Nilai harus persis delapan karakter:

<xs:element name="password">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:length value="8"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Contoh ini mendefinisikan elemen lain yang disebut "password" dengan pembatasan. Nilai harus minimal lima karakter dan maksimal delapan 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>

Pembatasan untuk Datatypes

Paksaan Deskripsi
enumeration Mendefinisikan sebuah daftar nilai yang diterima
fractionDigits Menentukan jumlah maksimum tempat desimal diperbolehkan. Harus sama dengan atau lebih besar dari nol
length Menentukan jumlah yang tepat dari karakter atau daftar item diperbolehkan. Harus sama dengan atau lebih besar dari nol
maxExclusive Menentukan batas atas untuk nilai numerik (nilai harus kurang dari nilai ini)
maxInclusive Menentukan batas atas untuk nilai numerik (nilai harus kurang dari atau sama dengan nilai ini)
maxLength Menentukan jumlah maksimum karakter atau daftar item diperbolehkan. Harus sama dengan atau lebih besar dari nol
minExclusive Menentukan batas bawah untuk nilai numerik (nilai harus lebih besar dari nilai ini)
minInclusive Menentukan batas bawah untuk nilai numerik (nilai harus lebih besar dari atau sama dengan nilai ini)
minLength Menentukan jumlah minimum karakter atau daftar item diperbolehkan. Harus sama dengan atau lebih besar dari nol
pattern Mendefinisikan urutan yang tepat dari karakter yang dapat diterima
totalDigits Menentukan jumlah yang tepat dari angka diperbolehkan. Harus lebih besar dari nol
whiteSpace Menentukan bagaimana ruang putih (line feed, tab, spasi, dan tombol kembali) ditangani