XSD 元素替换(Element Substitution)
- 上一页 XSD <anyAttribute>
- 下一页 XSD 实例
ຜ່ານ XML Schema, ຄຳປະກອບຫຼັງຈະສາມາດປ່ຽນຄຳປະກອບອີກຄຳປະກອບ.
ການປ່ຽນຄຳປະກອບ
ພວກເຮົາຈະອອກຕົວຢ່າງຄື: ຜູ້ນຳໃຊ້ຂອງພວກເຮົາມາຈາກລາຊະອະນາຈັກອັງກິດແລະເນເຊຍ. ພວກເຮົາຫວັງວ່າຈະມີຄວາມສາມາດໃຫ້ຜູ້ນຳໃຊ້ຕິດຕາມຄຳປະກອບຊາວເນເຊຍຫຼືອັງກິດໃນເອກະສານ XML.
ເພື່ອແກ້ໄຂບັນຫານີ້ພວກເຮົາສາມາດຄົ້ນຫາມາທີ່ຈະກໍານົດໃນ XML schema. substitutionGroupບໍ່ວ່າພວກເຮົາອອກມາການອອກຄຳປະກອບຫຼັກຫຼັງຈາກນັ້ນພວກເຮົາອອກມາການອອກຄຳປະກອບຄົນທີ່ຈະສາມາດປ່ຽນຄຳປະກອບຫຼັກຫຼັງ.
<xs:element name="name" type="xs:string"/> <xs:element name="navn"}} substitutionGroup="name"/>
ໃນບັນຫານີ້, "name" ສະນະພາສາແມ່ນສະນະພາສາຫນົດ, ແລະ "navn" ສະນະພາສາສາມາດປ່ຽນສະນະພາສາ "name".
ບັນຍາວ່າຫນາຍອກ XML schema:
<xs:element name="name" type="xs:string"/> <xs:element name="navn" substitutionGroup="name"/> <xs:complexType name="custinfo"> <xs:sequence> <xs:element ref="name"/> </xs:sequence> </xs:complexType> <xs:element name="customer" type="custinfo"/> <xs:element name="kunde" substitutionGroup="customer"/>
ເອກະສານ XML ທີ່ຖືກກົດການຄືກັນຄືນນີ້ (ອີງຕາມ schema ທີ່ມີເຂົ້າໃນປັດ):
<customer> <name>John Smith</name> </customer>
ຫນານນີ້:
<kunde> <navn>John Smith</navn> </kunde>
ປ້ອງກັນຫນົດຄວາມທີ່ຈະປ່ຽນຫນົດຄວາມ
ເພື່ອປ້ອງກັນພາສານາຍອກຫນົດຄວາມທີ່ຈະປ່ຽນຫນົດຄວາມສະເພາະ, ທ່ານຕ້ອງໃຊ້ປະເພດ block:
<xs:element name="name" type="xs:string" block="substitution"/>
ບັນຍາວ່າຫນາຍອກ XML schema:
<xs:element name="name" type="xs:string" block="substitution"/> <xs:element name="navn" substitutionGroup="name"/> <xs:complexType name="custinfo"> <xs:sequence> <xs:element ref="name"/> </xs:sequence> </xs:complexType> <xs:element name="customer" type="custinfo" block="substitution"/> <xs:element name="kunde" substitutionGroup="customer"/>
ເອກະສານ XML ທີ່ຖືກກົດການຄືກັນຄືນນີ້ (ອີງຕາມ schema ທີ່ມີເຂົ້າໃນປັດ):
<customer> <name>John Smith</name> </customer>
ແຕ່ໃນເອກະສານດັ່ງກ່າວບໍ່ຖືກກົດການອອກສິ່ງລັກສະນະ:
<kunde> <navn>John Smith</navn> </kunde>
ນຳໃຊ້ substitutionGroup
ພາສານາຍອກຫນົດຄວາມຕ້ອງໄດ້ກັບສະນະພາສາຫນົດທີ່ຫນົດຫນານຫນັງຈາກສະນະພາສາຫນົດຫນັງ. ຖ້າພາສານາຍອກຫນົດຄວາມຕ້ອງໄດ້ກັບສະນະພາສາຫນົດທີ່ຫນົດຫນານຫນັງ, ທ່ານບໍ່ຕ້ອງກຳນົດພາສານາຍອກຫນົດຄວາມຂອງພາສານາຍອກຫນົດຄວາມ.
请注意,substitutionGroup 中的所有元素(主元素和可替换元素)必须被声明为全局元素,否则就无法工作!
什么是全局元素(Global Elements)?
全局元素指 "schema" 元素的直接子元素!本地元素(Local elements)指嵌套在其他元素中的元素。
- 上一页 XSD <anyAttribute>
- 下一页 XSD 实例