XML Schema complexType ປະກອບ

ການອະທິບາຍ ແລະ ການນໍາໃຊ້

complexType ປະກອບສະບັບປະເພດຂັ້ນສູງ. ປະເພດ complexType ປະກອບມີປະກອບອື່ນໆ ແລະ/ຫຼື ອາຊີບ.

ຂໍ້ມູນປະກອບ

ຄວາມຈະມີ ບໍ່ມີຄວາມຄວບຄຸມໃນແບບ; ໃນປະກອບຈະປະກອບໄດ້ຄັ້ງດຽວ.
ປະກອບພູມ element、redefine、schema
ຂັ້ນຕົວ annotation、simpleContent、complexContent、group、all、choice、sequence、attribute、attributeGroup、anyAttribute

ການນຳໃຊ້

<complexType
id=ID 
name=NCName 
abstract=true|false 
mixed=true|false
block=(#all|list of (extension|restriction))
final=(#all|list of (extension|restriction))
any attributes
>
(annotation?,(simpleContent|complexContent|((group|all| 
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))
</complexType>

(? ສະນັບປະກອບທີ່ມີໃນ complexType, ສາມາດປະກອບໄດ້ບໍ່ມີຫຼືຄັ້ງດຽວ.)

ປະກອບ

id

ຄຳວ່າງ. ການຕັດສິນ ID ສະບາຍສະເພາະຂອງປະກອບ.

name

ຄຳວ່າງ. ການຕັດສິນຊື່ຂອງປະກອບ.

abstract

ຄຳວ່າງ. ການຕັດສິນວ່າຈະອະນຸຍາດທີ່ຈະໃຊ້ຮູບແບບຄວາມຍາວໃນເອກະສານຄົນ. ຖ້າຄູ່ມືມີຄວາມຍາວເປັນ true, ເຫລົ່ານັ້ນຈະບໍ່ສາມາດໃຊ້ຮູບແບບຄວາມຍາວໂດຍກົງ, ແຕ່ຈະຕ້ອງໃຊ້ຮູບແບບຄວາມຍາວທີ່ມີການຂະຫຍາຍຈາກຮູບແບບຄວາມຍາວນັ້ນ. ຄູ່ມືມີຄວາມຍາວເປັນ false.

mixed

ຄຳວ່າງ. ການຕັດສິນວ່າຈະອະນຸຍາດຂໍ້ມູນຄວາມນັບສະໄຫມທີ່ຈະປະກອບໃນລະຫວ່າງຫຼັກສົມຂອງຮູບແບບຄວາມຍາວ. ຄູ່ມືມີຄວາມຍາວເປັນ false.

  • ຖ້າປະກອບ simpleContent ເປັນຫຼັກສົມ, ຂໍ້ມູນ mixed ຈະບໍ່ອະນຸຍາດ.
  • ຖ້າປະກອບ complexContent ເປັນຫຼັກສົມ, ຂໍ້ມູນ mixed ສາມາດຖືກການດັດແກ້ຈາກຂໍ້ມູນ mixed ຂອງ complexContent.

block

ຄຳວ່າງ. ການຫຼີກລ່ຽງທີ່ຈະໃຊ້ຮູບແບບຂະຫຍາຍຄວາມຍາວທີ່ມີຮູບແບບຂະຫຍາຍສະເພາະ. ຄູ່ມືກໍຈະເປັນ #all ຫຼືລາຍການທີ່ກວມເອົາ extension ຫຼື restriction:

  • ການຂະຫຍາຍ - ການຫຼີກລ່ຽງທີ່ຈະໃຊ້ຮູບແບບຂະຫຍາຍຄວາມຍາວເພື່ອແທນຮູບແບບຄວາມຍາວນັ້ນ。
  • ການຄວບຄຸມ - ການຫຼີກລ່ຽງທີ່ຈະໃຊ້ຮູບແບບຂອງການຂະຫຍາຍຄວາມຍາວເພື່ອແທນຮູບແບບຄວາມຍາວນັ້ນ。
  • #all - ປ້ອງກັນທຸກປະເພດ complexType ທີ່ລຸກພາສາຈາກສາຍສິນຄ້າ complexType

final

ທົດສະນະ. ປ້ອງກັນການລຸກພາສາຈາກສາຍສິນຄ້າ complexType ໃນນະໂຍບາຍທີ່ກໍານົດ. ຄູ່ມູນສາມາດກວມ #all ຫຼືລາຍຊື່ບັນດາປະເພດທີ່ເປັນສາຍສິນຄ້າ extension ຫຼື restriction

  • extension - ປ້ອງກັນການລຸກພາສາຜ່ານການລຸກພາສາ
  • restriction - ປ້ອງກັນການລຸກພາສາຜ່ານການລຸກພາສາ
  • #all - ປ້ອງກັນທຸກການລຸກພາສາ

any attributes

ທົດສະນະ. ຄິດເຫມືອນິຍົມຂອງບັນດາປະເພດທີ່ບໍ່ມີນອກສັນວັດສະນະ

ຄວາມສຳຄັນ

ຄູ່ມູນ 1

ບົດສະຫຼຸບນີ້ມີບັນດາປະເພດປະເພດ "note"

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

ຄູ່ມູນ 2

ບົດສະຫຼຸບນີ້ມີບັນດາປະເພດ "fullpersoninfo" ທີ່ອາດສົ່ງປະກອບກັບສາຍສິນຄ້າທີ່ເພີ່ມເຕີມສາຍສິນຄ້າອີກສາມບັນດາສາຍສິນຄ້າ (address, city ແລະ country) ຂອງສາຍສິນຄ້າທີ່ສົ່ງຕົວຂຶ້ນຈາກສາຍສິນຄ້າ "personinfo"

<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
  <xs:complexContent>
    <xs:extension base="personinfo">
      <xs:sequence>
        <xs:element name="address" type="xs:string"/>
        <xs:element name="city" type="xs:string"/>
        <xs:element name="country" type="xs:string"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

ໃນຄັນກ່າວການທີ່ກ່າວຫານັ້ນ, ບັນດາ "employee" ສະແດງນັ້ນຕ້ອງທີ່ຈະກວມເອົາບັນດາເງິນຕາທີ່ກ່າວຫານັ້ນໃນທຳມະດາ: "firstname", "lastname", "address", "city" ແລະ "country".