เปลี่ยนองค์ประกอบ XML Schema
โดย XML Schema เป็นแร่ธาตุที่สามารถถูกแทนที่ด้วยองค์ประกอบอื่น
องค์ประกอบแทนที่
ขอให้เราแสดงให้เห็นถึง: ลูกค้าของเราจากสหราชอาณาจักรและประเทศนอร์เวย์ เราต้องการที่จะมีความสามารถในการช่วยให้ผู้ใช้เลือกที่จะใช้ชื่อองค์ประกอบในนอร์เวย์เอกสาร XML หรือชื่อภาษาอังกฤษขององค์ประกอบ
เพื่อแก้ปัญหานี้เราสามารถกำหนด substitutionGroup ใน schema XML ที่ ครั้งแรกที่เราประกาศองค์ประกอบหลักแล้วเราจะประกาศองค์ประกอบเล็ก ๆ น้อย ๆ องค์ประกอบเหล่านี้สามารถประกาศเมื่อพวกเขาสามารถที่จะเปลี่ยนองค์ประกอบหลัก
<xs:element name="navn" substitutionGroup="name"/>
ในตัวอย่างข้างต้น "ชื่อ" องค์ประกอบที่เป็นองค์ประกอบหลัก "navn" องค์ประกอบที่สามารถเปลี่ยน "ชื่อ" องค์ประกอบ
พิจารณาส่วนเค้าร่าง XML:
<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 ที่ถูกต้องเช่นนี้ (ตามคีมาข้างต้น):
<name>John Smith</name>
</customer>
หรือบางอย่างเช่นนี้
<navn>John Smith</navn>
</kunde>
เปลี่ยนองค์ประกอบครบวงจร
เพื่อป้องกันไม่ให้องค์ประกอบอื่น ๆ แทนที่องค์ประกอบที่ระบุให้ใช้คุณสมบัติบล็อก:
เห็นเค้าร่าง XML ชิ้นส่วน:
<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 ที่ถูกต้องควรจะมีลักษณะเช่นนี้ (ตามคีมาข้างต้น):
<name>John Smith</name>
</customer>
อย่างไรก็ตามเอกสารต่อไปนี้จะไม่ถูกต้องตามกฎหมาย:
<navn>John Smith</navn>
</kunde>
ใช้ substitutionGroup
องค์ประกอบที่ถอดเปลี่ยนได้จะต้องเป็นองค์ประกอบหลักของประเภทเดียวกันหรือมาจากองค์ประกอบหลัก ถ้าชนิดสามารถเปลี่ยนองค์ประกอบขององค์ประกอบหลักของประเภทเดียวกันคุณจะไม่ได้มีการระบุชนิดขององค์ประกอบที่สามารถแทนที่
โปรดทราบ substitutionGroup องค์ประกอบทั้งหมดใน (องค์ประกอบหลักและองค์ประกอบแบบถอดเปลี่ยนได้) จะต้องได้รับการประกาศให้เป็นองค์ประกอบโลกมิฉะนั้นมันจะไม่ทำงาน!
องค์ประกอบทั่วโลก (Elements ทั่วโลก) คืออะไร?
องค์ประกอบทั่วโลกหมายถึงองค์ประกอบของเด็กโดยตรงของ "สคี" องค์ประกอบ! องค์ประกอบท้องถิ่น (องค์ประกอบท้องถิ่น) หมายถึงองค์ประกอบซ้อนอยู่ในองค์ประกอบอื่น ๆ