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))
ປະສົມປະກອບ
>
(annotation?,(simpleContent|complexContent|((group|all| 
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))
</complexType>

(? ສັນຍາລະບາຍໃນ complexType, ຫຼັກສັດສາມາດອອກມາບໍ່ມີຫຼືມີໜຶ່ງຄັ້ງ.)

ປະສົມປະກອບ

id

ຄວາມຄິດ. ພົບບໍ່ມີຄວາມຄິດສັນຍາລະບາຍວ່າຈະອະນຸຍາດ ID ສະບາຍການຂອງຫຼັກສັດ.

name

ຄວາມຄິດ. ພົບບໍ່ມີຄວາມຄິດສັນຍາລະບາຍວ່າຈະອະນຸຍາດຊື່ຂອງຫຼັກສັດ.

abstract

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

mixed

ຄວາມຄິດ. ພົບບໍ່ມີຄວາມຄິດສັນຍາລະບາຍວ່າຈະອະນຸຍາດຄວາມຄິດຊາວຄັອດພາຍໃນຫຼັກສັດຂອງປະເພດ complexType. ຄູ່ມືດັ່ງກ່າວມີຄູ່ມືດັ່ງກ່າວ false.

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

block

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

  • extension - ປ້ອງກັນທຸກປະເພດ complexType ທີ່ລົງນຳມາຈາກ complexType ວາງຂໍ້ຂະຫຍາຍ.
  • restriction - ປ້ອງກັນທຸກປະເພດ complexType ທີ່ລົງນຳມາຈາກ complexType ວາງຂໍ້ຈຳກັດ.
  • #all - ປ້ອງກັນທຸກປະເພດ complexType ທີ່ລົງນຳມາຈາກ complexType.

final

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

  • extension - ປ້ອງກັນທຸກການຂະຫຍາຍຜ່ານການຂະຫຍາຍ.
  • restriction - ປ້ອງກັນທຸກການຂະຫຍາຍຜ່ານການກັບກັນ.
  • #all - ປ້ອງກັນທຸກການຂະຫຍາຍ (ການຂະຫຍາຍແລະການກັບກັນ).

ປະສົມປະກອບ

ອາດ. ກໍານົດຂອງປະສົມປະກອບອື່ນໆທີ່ມີອາກາດບໍ່ແບບຂອງສານ.

ຄວາມລວມ

ບັນທັດ 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" ທີ່ຂະຫຍາຍຕົວຈາກຮູບແບບ "personinfo" ໂດຍນຳໃຊ້ສາມປ່ຽນແປງ (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"。