XSD 复合元素
ສິ່ງປະກອບມີສິ່ງອື່ນອີກ ແລະ/ຫຼື ປະກອບທາງລະບຽບ.
ບວກວ່າສິ່ງປະກອບ?
ສິ່ງປະກອບ ມີສິ່ງອື່ນອີກ ແລະ/ຫຼື ປະກອບທາງລະບຽບ:
ມີສີ່ຊະນິດສິ່ງປະກອບ:
- ສິ່ງທີ່ຫຼັງ:
- ສິ່ງທີ່ມີຫຼັງ:
- ສິ່ງທີ່ມີສິ່ງອື່ນອີກ:
- ສິ່ງທີ່ມີຂໍ້ຄວາມທັງໝົດ:
ສິ່ງທີ່ມີສິ່ງອື່ນອີກແລະຂໍ້ຄວາມ:ຄຳເຫັນ:
ບົດສະຫຼຸບສິ່ງປະກອບ:
ສິ່ງປະກອບ "product" ແມ່ນຫຼັງ:
<product pid="1345"/>
ສິ່ງປະກອບ "employee" ມີສິ່ງອື່ນອີກ:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
ສິ່ງປະກອບ "food" ມີຂໍ້ຄວາມທັງໝົດ:
<food type="dessert">Ice cream</food>
ສິ່ງປະກອບ "description" ມີສິ່ງອື່ນອີກແລະຂໍ້ຄວາມ:
<description> ມັນໄດ້ເກີດຂຶ້ນໃນ <date lang="norwegian">03.03.99</date> .... </description>
ບວກວ່າຈະກໍານົດສິ່ງປະກອບສະຖານ?
ບັນຍາວ່າສິ່ງປະກອບ XML ທີ່ "employee" ນັ້ນມີພຽງສິ່ງອື່ນອີກ:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
ໃນ XML Schema ພວກເຮົາມີສອງວິທີທີ່ຈະກໍານົດສິ່ງປະກອບສະຖານ:
1. ການຕັ້ງຊື່ສິ່ງນີ້ຈະອະນຸຍາດໃຫ້ພົບປະກາດສິ່ງ "employee" ທັງໝົດ:
<xs:element name="employee"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
ຖ້າທ່ານໃຊ້ວິທີທີ່ຖືກອະທິບາຍຂື້ນກ່ອນ ແຕ່ພຽງແຕ່ "employee" ສາມາດໃຊ້ປະກອບສັບສົນທີ່ກໍານົດຄືກັນ. ສະແດງຫຍັງ "firstname" ແລະ "lastname" ສາມາດຖືກວາງຢູ່ໃນ <sequence> ກໍ່ແມ່ນມີຄວາມນຳຫຼັງຈາກທີ່ຖືກຈັດຕັ້ງ. ທ່ານຈະພົບ XSD ອຸປະກອນ ການຮຽນຫຼາຍເຖິງການຮັບຮູ້ຂອງອຸປະກອນ
2. "employee" ປະກອບສັບສົນສາມາດໃຊ້ປະສົມປະສານ type ເພື່ອຫຼຸດມາປະກອບສັບສົນທີ່ຈະໃຊ້
<xs:element name="employee" type="personinfo"/> <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:element name="employee" type="personinfo"/> <xs:element name="student" type="personinfo"/> <xs:element name="member" type="personinfo"/> <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: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>