XSD 限定 / Facets
- Previous page XSD attribute
- Next page XSD element
ຈຳການ (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). |
- Previous page XSD attribute
- Next page XSD element