XSD ປະກອບສ່ວນປະສົມສິນຄ່າວ່າງ

ສິ່ງຫຼັກກາງບໍ່ສາມາດມີຂັ້ນວັດທະນາຄານ ແຕ່ພຽງແຕ່ສິ່ງສັບສຳລັບຜະນຶກ.

XML ສິ່ງຫຼັກກາງບໍ່ມີຂັ້ນວັດທະນາຄານ:

XML ສິ່ງຫຼັກບໍ່ມີຂັ້ນວັດທະນາຄານ:

<product prodid="1345" />

ສິ່ງ "product" ສະນັ້ນບໍ່ມີເນື້ອຫຼັກ. ເພື່ອກໍານົດປະເພດທີ່ບໍ່ມີເນື້ອຫຼັກ ພວກເຮົາຕ້ອງກໍານົດປະເພດທີ່ສາມາດມີສິ່ງຂອງສິ່ງຫຼືຫຼັກສິ່ງພຽງແຕ່ສິ່ງຫຼັກ ແຕ່ບໍ່ຈະກໍານົດສິ່ງຫຼັກໃດ:

<xs:element name="product">
  <xs:complexType>
    <xs:complexContent>
      <xs:restriction base="xs:integer">
        <xs:attribute name="prodid" type="xs:positiveInteger"/>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

ໃນຄວາມຄິດຂອງພາຍໃນນັ້ນ ພວກເຮົາໄດ້ກໍານົດປະເພດຄວາມຄິດທີ່ມີຂັ້ນວັດທະນາຄານ. <complexContent> ສະນັ້ນສະເຫຼີມວ່າພວກເຮົາຈະກຳນົດຫຼືຂະຫຍາຍການມີຂັ້ນວັດທະນາຄານຂອງປະເພດຄວາມຄິດຄົນນັ້ນ ການກຳນົດ <integer> ສະເຫຼີມວ່າຈະມີຜະນຶກສຳລັບປະເພດສະຫຼົກ ແຕ່ຈະບໍ່ມີສິ່ງຂອງສິ່ງຫຼືຫຼັກສິ່ງໃດ.

ບໍ່ດັ່ງນັ້ນ ກໍ່ສາມາດຖະແຫຼງຄືນ "product" ສະນັ້ນນັ້ນໃຫ້ຫຼາຍກວ່າ:

<xs:element name="product">
  <xs:complexType>
    <xs:attribute name="prodid" type="xs:positiveInteger"/>
  </xs:complexType>
</xs:element>

ຫຼືວ່າທ່ານສາມາດເອີ້ນຊື່ປະກອບສ່ວນ complexType ແລະຈັດຕັ້ງປະກອບສ່ວນ "product" ກັບປະກອບສ່ວນ type ແລະອ້າງຊື່ complexType ນັ້ນ (ວິທີນີ້, ປະກອບສ່ວນຫຼາຍສາມາດອ້າງຊື່ complexType ນັ້ນ):

<xs:element name="product" type="prodtype"/>
<xs:complexType name="prodtype">
  <xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>