XSD 限定 / Facets

ຈຳການ (restriction) ຂອງສະມາຊິກ XML ຫຼື ອັກສາທີ່ມີຄວາມພິການທີ່ຍອມຮັບ. ຈຳການຂອງ XML ແມ່ນເອິ້ນວ່າ facet.

ຈຳການຂອງຄວາມພິການ

ຄັ້ງຕໍ່ມາກໍ່ໄດ້ອອກວາງປະເພດຢ່າງດັ່ງກ່າວທີ່ມີຊື່ "age". ຄວາມພິການທີ່ຍອມຮັບແມ່ນ ອາດບໍ່ຕໍ່າກວ່າ 0 ຫຼື ກວ່າ 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>

ຈຳການຂອງຄວາມພິການ

ສຳລັບການຈຳການຂໍ້ຄວາມຂອງ XML ສະມາຊິກຫຼືອັກສາທີ່ມີຄວາມພິການຂອງຕາມ, ພວກເຮົາຕ້ອງໃຊ້ຄວາມຈຳການ (enumeration constraint).

ຄັ້ງຕໍ່ມາກໍ່ໄດ້ອອກວາງປະເພດຢ່າງດັ່ງກ່າວທີ່ມີຊື່ "car". ຄວາມພິການທີ່ຍອມຮັບແມ່ນ: 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>

ຄັ້ງຕໍ່ມາກໍ່ສາມາດຂຽນເທື່ອນັ້ນໄດ້:

<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>

ຄວາມຄິດເຫັນ:ໃນກໍລະນີນີ້, ແບບ "carType" ສາມາດຖືກໃຊ້ໂດຍສະມາຊິກອື່ນໆ, ຍ້ອນວ່າມັນບໍ່ແມ່ນສ່ວນປະກອບຂອງສະມາຊິກ "car".

ຈຳການຂອງຄວາມພິການ

ສຳລັບການຈຳກັດຂໍ້ຄວາມຂອງ XML ສະມາຊິກຫຼືອັກສາຂອງຕາມຈຳການຂອງຕາມທີ່ມີຄວາມພິການຂອງຕາມທີ່ມີຄວາມພິການຂອງຕາມ, ພວກເຮົາຕ້ອງໃຊ້ຄວາມຈຳການ (pattern constraint).

ຄັ້ງຕໍ່ມາກໍ່ໄດ້ອອກວາງປະເພດຢ່າງດັ່ງກ່າວທີ່ມີຊື່ "letter". ຄວາມພິການທີ່ຍອມຮັບແມ່ນອັກສາທີ່ຕາມມາດຕະຖານ a-z ໜຶ່ງຄຳສະແດງ:

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

ຄັ້ງຕໍ່ມາກໍ່ໄດ້ອອກວາງປະເພດຢ່າງດັ່ງກ່າວທີ່ມີຊື່ "initials". ຄວາມພິການທີ່ຍອມຮັບແມ່ນອັກສາທີ່ຕາມມາດຕະຖານ 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>

ຄັ້ງຕໍ່ມາກໍ່ໄດ້ອອກວາງປະເພດຢ່າງດັ່ງກ່າວທີ່ມີຊື່ "initials". ຄວາມພິການທີ່ຍອມຮັບແມ່ນຄຳສະແດງຂອງອັກສາທີ່ຕາມມາດຕະຖານ A-Z ຫຼື 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>

ບົດຢ່າງດັ່ງກ່າວນີ້ກໍານົດປະກອບຂອງຊື່ "choice" ທີ່ມີການກຳນົດ. ຄູ່ມີຄວາມຈິງຈະຕາມຄຳແນະນຳນັ້ນແມ່ນຄຳແນະນຳ x, y ຫຼື z ໃນຄຳແນະນຳນັ້ນ:

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

ບົດຢ່າງດັ່ງກ່າວນີ້ກໍານົດປະກອບຂອງຊື່ "prodid" ທີ່ມີການກຳນົດ. ຄູ່ມີຄວາມຈິງຈະຕາມຄຳແນະນຳນັ້ນແມ່ນຄັກສິບເຈັດຈຳນວນຫ້າຈຳນວນ, ຄຳແນະນຳຈະຕາມຄຳແນະນຳນັ້ນ:

<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>

ການກຳນົດຄວາມຈິງຂອງຄູ່ມີຄວາມຈິງອື່ນໆ

ບົດຢ່າງດັ່ງກ່າວນີ້ກໍານົດປະກອບຂອງຊື່ "letter" ທີ່ມີການກຳນົດ. ຄູ່ມີຄວາມຈິງຈະຕາມຄຳແນະນຳນັ້ນແມ່ນ a - z ທີ່ມີຄວາມຈິງຈະຕາມຄຳແນະນຳນັ້ນ:

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

ບົດຢ່າງດັ່ງກ່າວນີ້ກໍານົດປະກອບຂອງຊື່ "letter" ທີ່ມີການກຳນົດ. ຄູ່ມີຄວາມຈິງຈະຕາມຄຳແນະນຳນັ້ນແມ່ນການຄົ້ນພົບກັບຄຳແນະນຳນັ້ນ, ຄຳແນະນຳຈະຕາມຄຳແນະນຳນັ້ນທີ່ມີຄຳແນະນຳນັ້ນ. ບົດຢ່າງດັ່ງກ່າວນີ້ "sToP" ຈະຕາມຄຳແນະນຳ, ແຕ່ "Stop", "STOP" ຫຼື "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>

ບົດຢ່າງດັ່ງກ່າວນີ້ກໍານົດປະກອບຂອງຊື່ "gender" ທີ່ມີການກຳນົດ. ຄູ່ມີຄວາມຈິງຈະຕາມຄຳແນະນຳນັ້ນແມ່ນ male ຫຼື female:

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

ບົດຢ່າງດັ່ງກ່າວນີ້ກໍານົດປະກອບຂອງຊື່ "password" ທີ່ມີການກຳນົດ. ຄູ່ມີຄວາມຈິງຈະຕາມຄຳແນະນຳນັ້ນແມ່ນການຄົ້ນພົບກັບ 8 ຄວາມທີ່ປະກອບດ້ວຍຄຳແນະນຳ, ຄຳແນະນຳດັ່ງກ່າວນີ້ຈະຕາມຄຳແນະນຳນັ້ນແມ່ນການຄົ້ນພົບກັບຄຳແນະນຳນັ້ນ:

<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>

ການກຳນົດຄວາມທີ່ບໍ່ມີຄວາມ

ສຳລັບການກຳນົດວິທີການຂອງຄວາມທີ່ບໍ່ມີຄວາມມີຄວາມ, ພວກເຮົາຕ້ອງໃຊ້ການກຳນົດ whiteSpace:

ບົດຢ່າງດັ່ງກ່າວນີ້ກໍານົດປະກອບຂອງຊື່ "address" ທີ່ມີການກຳນົດ. ການກຳນົດ whiteSpace ຖືກການກຳນົດໃຫ້ເປັນ "preserve". ນີ້ໝາຍຄວາມວ່າ XML ຜູ້ຊ່ວຍບໍ່ຈະເຄື່ອນຍ້າຍຄວາມທີ່ບໍ່ມີຄວາມມີຄວາມຈິງ:

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

ບັນທັດນີ້ກໍ່ໄດ້ການສະແດງປະກອບສະໝອງຊື່ "address" ທີ່ມີຈຳກັດ. whiteSpace 限定ໄດ້ຄວາມວ່າ XML processor ຈະຖອນທຸກຄູ່ມູນຈະການ (ການດິນ, ການກັບ, ຈຳນວນຄວາມຈະຖອນເປັນຄວາມ):

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

ບັນທັດນີ້ກໍ່ໄດ້ການສະແດງປະກອບສະໝອງຊື່ "address" ທີ່ມີຈຳກັດ. whiteSpace 限定ໄດ້ການການສະແດງຈະມີຄູ່ມູນ "collapse", ຄວາມວ່າ XML processor ຈະຖອນທຸກຄູ່ມູນຈະການ (ການດິນ, ການກັບ, ຈຳນວນຄວາມຈະຖອນເປັນຄວາມ, ການສະແດງຫົວຫຼັງຈະຖອນ, ແລະຈຳນວນຄວາມທີ່ຕໍ່ກັນຈະຖອນເປັນຄວາມດຽວ):

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

ການຈຳກັດຈຳນວນສະບັບ

ສຳລັບການຈຳກັດຈຳນວນສະບັບຂອງຄູ່ມູນໃນປະກອບສະໝອງ, ຕ້ອງໃຊ້ປະກອບຈຳກັດ length, maxLength ແລະ minLength.

ບັນທັດນີ້ກໍ່ໄດ້ການສະແດງປະກອບສະໝອງຊື່ "password" ທີ່ມີຈຳກັດ. ຄູ່ມູນທີ່ຕ້ອງຈະມີຈຳນວນສະບັບສະໄໝ 8 ຄັ້ງ:

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

ບັນທັດນີ້ກໍ່ໄດ້ການສະແດງປະກອບສະໝອງຊື່ "password" ທີ່ມີຈຳກັດ. ຄູ່ມູນທີ່ສຸດທີ່ອະນຸຍາດຈະມີຈຳນວນສະບັບສະໄໝ 5 ຄັ້ງ, ແລະຫຼາຍກວ່າ 8 ຄັ້ງ:

<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>

ການຈຳກັດຂອງປະເພາະພາສາຂໍ້ມູນ

ການຈຳກັດ ການອະທິບາຍ
enumeration ການສະແດງຄູ່ມູນທີ່ສາມາດຍອມຮັບ.
fractionDigits ການສະແດງຈຳນວນສິບສະພາບສູງສຸດທີ່ອະນຸຍາດ. ຕ້ອງການຫຼາຍກວ່າຫຼືຫຼາຍອັນດຽວ.
length ການສະແດງຈຳນວນສາມາດຄວນມີຄຳຕອບທີ່ຈະຕາມ. ຕ້ອງການຫຼາຍກວ່າຫຼືຫຼາຍອັນດຽວ.
maxExclusive ການສະແດງຈຳນວນສູງສຸດ. ຄູ່ມູນທີ່ອະນຸຍາດຕ້ອງຕ້ອງຊ້າຍັງຈຳນວນນັ້ນ.
maxInclusive Define the upper limit of the value. The allowed values must be less than or equal to this value.
maxLength Define the maximum number of allowed characters or list items. It must be greater than or equal to 0.
minExclusive Define the lower limit of the value. The allowed values must be greater than this value.
minInclusive Define the lower limit of the value. The allowed values must be greater than or equal to this value.
minLength Define the minimum number of allowed characters or list items. It must be greater than or equal to 0.
pattern Define the exact sequence of acceptable characters.
totalDigits Define the exact number of decimal places allowed for the Arabic numerals. It must be greater than 0.
whiteSpace Define the handling method of whitespace characters (newline, return, space, and tab).