XML Schema element ປະກອບສ່ວນ
ການກຳນົດແລະການນໍາໃຊ້
element ກຳນົດປະກອບສ່ວນ.
ຂໍ້ມູນປະກອບສ່ວນ
ຈຳນວນການປະກົດຕົວ | ຈຳນວນປະກອບສ່ວນທີ່ຖືກກໍານົດໃນຄອມແກັສ. |
ປະທານປະກອບສ່ວນ | schema、choice、all、sequence |
ຂັ້ນຕົວ | simpleType、complexType、key、keyref、unique |
ຄຳວິດ
<element id=ID name=NCName ref=QName type=QName substitutionGroup=QName default=string fixed=string form=qualified|unqualified maxOccurs=nonNegativeInteger|unbounded minOccurs=nonNegativeInteger nillable=true|false abstract=true|false block=(#all|list of (extension|restriction)) final=(#all|list of (extension|restriction)) any attributes > annotation?,((simpleType|complexType)?,(unique|key|keyref)*))
(? 符号声明在 element 元素中,该元素可出现零次或一次,* 符号声明元素可出现零次或多次。)
ບັນດາລັກສະນະ
id
ທາງເລືອກຄືນ. ກຳນົດ ID ສະຫຼາກຫຼືສະຫຼາກພຽງຫຼືສະຫຼາກພຽງຫຼືສະຫຼາກພຽງ.
name
ທາງເລືອກຄືນ. ກຳນົດຊື່ຂອງປະກອບສິ່ງ. ຖ້າປະກອບສິ່ງຜູ້ອອກແມ່ນປະກອບສິ່ງ schema, ບັນດາລັກສະນະນີ້ແມ່ນສະເພາະທີ່ຈຳເປັນ.
ref
ທາງເລືອກຄືນ. ການອອກອາກາດຂອງປະກອບສິ່ງອື່ນ. ບັນດາລັກສະນະ ref ສາມາດມີຊຸມຊົນນາມພາຍໃນ. ຖ້າປະກອບສິ່ງຜູ້ອອກແມ່ນປະກອບສິ່ງ schema, ບໍ່ຕ້ອງໃຊ້ບັນດາລັກສະນະນີ້.
type
ທາງເລືອກຄືນ. ກຳນົດຊື່ຂອງຮູບແບບຂໍ້ມູນພາຍໃນຫຼືກຳນົດຊື່ຂອງ simpleType ຫຼື complexType.
substitutionGroup
ທາງເລືອກຄືນ. ກຳນົດຊື່ຂອງປະກອບສິ່ງທີ່ສາມາດແທນທີ່ປະກອບສິ່ງນີ້. ປະກອບສິ່ງນີ້ຕ້ອງມີຮູບແບບດຽວກັນຫຼືຈະມີຮູບແບບທີ່ອອກຈາກປະກອບສິ່ງທີ່ກໍານົດ.
ຖ້າປະກອບສິ່ງຜູ້ອອກບໍ່ແມ່ນປະກອບສິ່ງ schema, ບໍ່ສາມາດໃຊ້ບັນດາລັກສະນະນີ້.
default
ທາງເລືອກຄືນ. ກຳນົດຄູ່ມືທີ່ຍາວຈາກປະກອບສິ່ງ (ພຽງແຕ່ເວລາທີ່ປະກອບສິ່ງແມ່ນຂອງຮູບແບບທີ່ງານທີ່ສາມາດເບິ່ງໄດ້ຫຼື textOnly).
fixed
ທາງເລືອກຄືນ. ກຳນົດຄູ່ມືທີ່ຍາວຈາກປະກອບສິ່ງ (ພຽງແຕ່ເວລາທີ່ປະກອບສິ່ງແມ່ນຂອງຮູບແບບທີ່ງານທີ່ສາມາດເບິ່ງໄດ້ຫຼື textOnly).
form
ທາງເລືອກຄືນ. ຮູບແບບຂອງປະກອບສິ່ງນີ້. ຄູ່ມືດັ່ງກ່າວແມ່ນຄູ່ມືຂອງ ປະກອບສິ່ງ schema ທີ່ມີບັນດາລັກສະນະ elementFormDefault. ຈຳນວນນີ້ຕ້ອງແມ່ນໜຶ່ງໃນຄຳຂັດແຍ່ງ: "qualified" ຫຼື "unqualified".
ຖ້າປະກອບຜູ້ປົກຄອງແມ່ນປະກອບ schema, ບໍ່ສາມາດໃຊ້ປະກອບນີ້.
- ຖ້າຈຳນວນນີ້ແມ່ນ "unqualified", ບໍ່ຕ້ອງໄດ້ນຳໃຊ້ການຈັດຕັ້ງຊຸມຊົນນາມພາຍໃນປະກອບສິ່ງ.
- ຖ້າຈຳນວນນີ້ແມ່ນ "qualified", ຕ້ອງໄດ້ນຳໃຊ້ການຈັດຕັ້ງຊຸມຊົນນາມພາຍໃນປະກອບສິ່ງ.
maxOccurs
ທາງເລືອກຄືນ。ກຳນົດຈຳນວນສູງສຸດທີ່ element ປະກອບສິ່ງທີ່ສາມາດເຫັນໄດ້ໃນປະກອບສິ່ງຜູ້ອອກແບບນີ້ຈຳນວນຫຼາຍກວ່າຫຼືບໍ່ຫຼາຍກວ່າ 0 ສິບບົດຈຳນວນ. ຖ້າບໍ່ຕ້ອງກຳນົດຈຳນວນສູງສຸດໃດໆຫຼືບໍ່ຕ້ອງກຳນົດຈຳນວນສູງສຸດໃດໆ, ຂໍ້ສັບ "unbounded". ຄູ່ມືດັ່ງກ່າວແມ່ນ 1.
ຖ້າປະກອບຜູ້ປົກຄອງແມ່ນປະກອບ schema, ບໍ່ສາມາດໃຊ້ປະກອບນີ້.
minOccurs
可选。规定 element 元素在父元素中可出现的最小次数。该值可以是大于或等于零的整数。默认值为 1。
ຖ້າປະກອບຜູ້ປົກຄອງແມ່ນປະກອບ schema, ບໍ່ສາມາດໃຊ້ປະກອບນີ້.
nillable
ທາງເລືອກຄືນ. ສະແດງວ່າຈະສາມາດຕັ້ງຄຸນນະພາບສະຫຼາກຄື explicit ຈະສາມາດຕັ້ງໃຫ້ປະກອບ. ປະກອບນີ້ຕົກລົງສຳລັບເນື້ອທີ່ຂອງປະກອບແລະບໍ່ແມ່ນປະກອບສຳລັບປະກອບ. ຄູ່ມູນຄົງທີ່ false.
ຖ້າ nillable ຢູ່ true, ຈະອະນຸຍາດໃຫ້ຄົນນັບເອກະສານທີ່ປະກອບຈະມີຄຸນນະພາບ nil ຄື true. nil ຄຸນນະພາບຖືກກໍານົດຄືສ່ວນໜຶ່ງຂອງ XML Schema Naming Space.
ຕົວຢ່າງ, ບົດຕໍ່ໄປນຳໃຊ້ປະກອບດຽວເອກະສານຄົນນັບເອກະສານ ແລະຕັ້ງ nillable ຄື true.
<xs:element name="myDate" type="xs:date" nillable="true"/>
ບົດຕໍ່ໄປນຳໃຊ້ປະກອບນີ້ແລະມີຄຸນນະພາບສະຫຼາກ (nil ການຕັ້ງຄວາມຜົນງານ true).
<myDate xsi:nil="true"></myDate>
abstract
ທາງເລືອກຄືນ. ສະແດງວ່າປະກອບຈະສາມາດນຳໃຊ້ໃນເອກະສານຄົນນັບເອກະສານ. ຖ້າຄູ່ມູນຢູ່ true, ປະກອບຈະບໍ່ສາມາດປະກົດຢູ່ໃນເອກະສານຄົນນັບເອກະສານ. ສະຫນາມທີ່ substitutionGroup ມີຊື່ປະກອບ (QName) ຂອງປະກອບນີ້ຕ້ອງປະກົດຢູ່ໃນຕອນທີ່ປະກອບນີ້. ປະກອບຫຼາຍກໍ່ສາມາດປະກົດຢູ່ໃນປະກອບ substitutionGroup. ຄູ່ມູນຄົງທີ່ false.
block
ທາງເລືອກຄືນ. ປະເພດທີ່ພັດທະນາ. ປະກອບ block ການປ້ອງກັນທຸກປະກອບທີ່ມີປະເພດພັດທະນາທີ່ກຳນົດ. ຄູ່ມູນສາມາດມີ #all ຫຼືລາຍການລຸ່ມ, ລາຍການນີ້ແມ່ນຄິດນີ້ທີ່ຢູ່ພາຍໃນ extension, restriction ຫຼື substitution:
- extension - ການປ້ອງກັນທຸກປະກອບທີ່ພັດທະນາຈາກປະກອບນີ້ບໍ່ສາມາດນຳໃຊ້ແທນປະກອບນີ້.
- restriction - ການປ້ອງກັນທຸກປະກອບທີ່ພັດທະນາຈາກປະກອບນີ້ບໍ່ສາມາດນຳໃຊ້ແທນປະກອບນີ້.
- substitution - ການປ້ອງກັນທຸກປະກອບທີ່ພັດທະນາຈາກປະກອບນີ້ບໍ່ສາມາດນຳໃຊ້ແທນປະກອບນີ້.
- #all - ການປ້ອງກັນທຸກປະກອບທີ່ພັດທະນາຈາກປະກອບນີ້ບໍ່ສາມາດນຳໃຊ້ແທນປະກອບນີ້.
final
ທາງເລືອກຄືນ。ການຕັ້ງຄວາມຜົນງານຄົງທີ່ຂອງປະກອບ element. ຖ້າປະກອບຜູ້ປົກຄອງບໍ່ແມ່ນປະກອບ schema, ບໍ່ສາມາດໃຊ້ປະກອບນີ້. ຄູ່ມູນສາມາດມີ #all ຫຼືລາຍການລຸ່ມ, ລາຍການນີ້ແມ່ນຄິດນີ້ຂອງ extension ຫຼື restriction:
- extension - ປ້ອງກັນປະກອບທີ່ພັດທະນາວ່າຈະປ້ອງກັນຈາກການປ່ຽນປະກອບ
- restriction - ປ້ອງກັນປະກອບທີ່ພັດທະນາວ່າຈະປ້ອງກັນຈາກການປ່ຽນປະກອບ
- #all - ປ້ອງກັນປະກອບທີ່ພັດທະນາທັງໝົດຈາກປະກອບດັ່ງກ່າວ
any attributes
ຄວາມທີ່ສາມ - ກຳນົດປະເພດຂອງປະກອບອື່ນໆທີ່ບໍ່ມີປະເພດ schema:
ບັນດາຄວາມ
ຄວາມທີສາມ
ບັນດາຄວາມທີສາມນີ້ແມ່ນ schema ທີ່ມີປະກອບຂະໜາດສີ່: "fname", "lname", "age" ແລະ "dateborn" ໂດຍມີປະເພດທີ່ແມ່ນ string, nonNegativeInteger ແລະ date:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="fname" type="xs:string"/> <xs:element name="lname" type="xs:string"/> <xs:element name="age" type="xs:nonNegativeInteger"/> <xs:element name="dateborn" type="xs:date"/> </xs:schema>
ຄວາມທີສອງ
ບັນດາຄວາມທີສາມນີ້ແມ່ນ schema ທີ່ມີປະກອບຂະໜາດ "note" ທີ່ມີປະກອບຂະໜາດທີ່ສະເພາະ: "to", "from", "heading" ແລະ "body":
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
ຄວາມທີສາມ
ບັນດາຄວາມນີ້ກັບຄວາມທີສອງນັ້ນບໍ່ກົງກັນຢ່າງໃດ ແຕ່ໃນບັນດາຄວາມນີ້ພວກເຮົາເລືອກທີ່ຈະໃຊ້ປະເພດ ref ເພື່ອອ້າງຕົວມາຊື່ປະກອບ:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element ref="to"/> <xs:element ref="from"/> <xs:element ref="heading"/> <xs:element ref="body"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:schema>