Tutorial XML

RUMAH XML Pengantar XML XML Cara menggunakan Pohon XML Sintaks XML Elemen XML Atribut XML Ruang Nama XML Tampilan XML XML HttpRequest Pengurai XML XML DOM XML XPath XML XSLT XML XQuery XML XLink Validator XML XML DTD Skema XML Server XML Contoh XML Kuis XML Sertifikat XML

XML AJAX

Pengenalan AJAX AJAX XMLHttp Permintaan AJAX Tanggapan AJAX File XML AJAX AJAX PHP AJAX ASP Basis Data AJAX Aplikasi AJAX Contoh AJAX

XML DOM

Pengenalan DOM Node DOM Mengakses DOM Info Simpul DOM Daftar Simpul DOM Melintasi DOM Navigasi DOM DOM Dapatkan Nilai DOM Ubah Node DOM Hapus Node DOM Ganti Node DOM Buat Node DOM Tambahkan Node Node Klon DOM Contoh DOM

Tutorial XPath

Pengenalan XPath Node XPath Sintaks XPath Sumbu XPath Operator XPath Contoh XPath

Tutorial XSLT

Pengenalan XSLT Bahasa XSL Transformasi XSLT XSLT <templat> XSLT <nilai-dari> XSLT <untuk-setiap> XSLT <sort> XSLT <jika> XSLT <pilih> Terapkan XSLT XSLT di Klien XSLT di Server XSLT Sunting XML Contoh XSLT

Tutorial XQuery

Pengenalan XQuery Contoh XQuery XQuery FLWOR HTML XQuery Persyaratan XQuery Sintaks XQuery Tambahkan XQuery XQuery Pilih Fungsi XQuery

XML DTD

Pengenalan DTD Blok Bangunan DTD Elemen DTD Atribut DTD Elemen DTD vs Attr Entitas DTD Contoh DTD

Skema XSD

Pengenalan XSD XSD Bagaimana caranya? XSD <skema> Elemen XSD Atribut XSD Pembatasan XSD

Kompleks XSD

Elemen XSD XSD Kosong Elemen XSD Saja Hanya Teks XSD Campuran XSD Indikator XSD XSD <apa saja> XSD <anyAttribute> Pergantian XSD Contoh XSD

Data XSD

String XSD Tanggal XSD XSD Numerik XSD Lain-lain Referensi XSD

Layanan Web

Layanan XML XML WSDL XML SOAP XML RDF XML RSS

Referensi

Jenis Node DOM Simpul DOM Daftar Simpul DOM DOM BernamaNodeMap Dokumen DOM Elemen DOM Atribut DOM Teks DOM DOM CDATA Komentar DOM DOM XMLHttpRequest Pengurai DOM Elemen XSLT Fungsi XSLT/XPath

Pembatasan/Fase XSD


Pembatasan digunakan untuk menentukan nilai yang dapat diterima untuk elemen atau atribut XML. Pembatasan pada elemen XML disebut faset.


Pembatasan Nilai

Contoh berikut mendefinisikan elemen yang disebut "usia" dengan batasan. Nilai usia tidak boleh 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>

Batasan pada Kumpulan Nilai

Untuk membatasi konten elemen XML ke sekumpulan nilai yang dapat diterima, kami akan menggunakan batasan enumerasi.

Contoh di bawah ini mendefinisikan elemen yang disebut "mobil" dengan batasan. 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 juga bisa 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>

Catatan: Dalam hal ini tipe "carType" dapat digunakan oleh elemen lain karena bukan merupakan bagian dari elemen "car".



Batasan pada Serangkaian Nilai

Untuk membatasi konten elemen XML untuk menentukan rangkaian angka atau huruf yang dapat digunakan, kita akan menggunakan batasan pola.

Contoh di bawah ini mendefinisikan elemen yang disebut "huruf" dengan batasan. Satu-satunya nilai yang dapat diterima adalah SATU huruf LOWERCASE 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 elemen yang disebut "inisial" dengan batasan. Satu-satunya nilai yang dapat diterima adalah TIGA huruf UPPERCASE dari a sampai 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 elemen yang disebut "inisial" dengan batasan. Satu-satunya nilai yang dapat diterima adalah TIGA huruf LOWERCASE ATAU UPPERCASE dari a sampai 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 elemen yang disebut "pilihan" dengan batasan. Satu-satunya nilai yang dapat diterima adalah SATU dari huruf berikut: 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 berikutnya mendefinisikan elemen yang disebut "prodid" dengan batasan. Satu-satunya nilai yang dapat diterima adalah LIMA digit secara berurutan, dan setiap digit harus dalam rentang dari 0 hingga 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 Serangkaian Nilai

Contoh di bawah ini mendefinisikan elemen yang disebut "huruf" dengan batasan. Nilai yang dapat diterima adalah nol atau lebih kemunculan huruf kecil dari a hingga 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 elemen yang disebut "huruf" dengan batasan. Nilai yang dapat diterima adalah satu atau lebih pasangan huruf, setiap pasangan terdiri dari huruf kecil diikuti dengan huruf besar. Misalnya, "sToP" akan divalidasi oleh pola ini, tetapi bukan "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 elemen yang disebut "gender" dengan batasan. Satu-satunya nilai yang dapat diterima adalah pria ATAU wanita:

<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 elemen yang disebut "kata sandi" dengan batasan. Harus ada tepat delapan karakter dalam satu baris dan karakter tersebut harus berupa huruf kecil atau huruf besar dari a hingga z, atau angka dari 0 hingga 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, kita akan menggunakan batasan spasi putih.

Contoh ini mendefinisikan elemen yang disebut "alamat" dengan batasan. Batasan whiteSpace diatur ke "pertahankan", yang berarti bahwa prosesor XML TIDAK AKAN menghapus karakter spasi putih apa pun:

<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 disebut "alamat" dengan batasan. Batasan whiteSpace diatur ke "replace", yang berarti bahwa prosesor XML AKAN MENGGANTI semua karakter spasi putih (umpan baris, tab, spasi, dan carriage return) 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 elemen yang disebut "alamat" dengan batasan. Batasan whiteSpace diatur ke "collapse", yang berarti bahwa prosesor XML AKAN MENGHAPUS semua karakter spasi putih (umpan baris, tab, spasi, carriage return diganti dengan spasi, spasi awal dan akhir dihapus, dan beberapa spasi dikurangi menjadi satu spasi):

<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 suatu nilai dalam suatu elemen, kita akan menggunakan batasan panjang, panjang maks, dan panjang min.

Contoh ini mendefinisikan elemen yang disebut "kata sandi" dengan batasan. Nilainya harus tepat 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 "kata sandi" dengan batasan. 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>

Batasan untuk Tipe Data

Constraint Description
enumeration Defines a list of acceptable values
fractionDigits Specifies the maximum number of decimal places allowed. Must be equal to or greater than zero
length Specifies the exact number of characters or list items allowed. Must be equal to or greater than zero
maxExclusive Specifies the upper bounds for numeric values (the value must be less than this value)
maxInclusive Specifies the upper bounds for numeric values (the value must be less than or equal to this value)
maxLength Specifies the maximum number of characters or list items allowed. Must be equal to or greater than zero
minExclusive Specifies the lower bounds for numeric values (the value must be greater than this value)
minInclusive Specifies the lower bounds for numeric values (the value must be greater than or equal to this value)
minLength Specifies the minimum number of characters or list items allowed. Must be equal to or greater than zero
pattern Defines the exact sequence of characters that are acceptable
totalDigits Specifies the exact number of digits allowed. Must be greater than zero
whiteSpace Specifies how white space (line feeds, tabs, spaces, and carriage returns) is handled