องค์ประกอบ any ของ XML Schema
การกำหนดและการใช้งาน
องค์ประกอบ any ทำให้องค์ประกอบที่มาจากชื่อสายชื่อที่กำหนดไว้สามารถปรากฏขึ้นในองค์ประกอบ sequence หรือ choice
องค์ประกอบ any นี้ทำให้ผู้สร้างสามารถขยายเอกสาร XML ด้วยองค์ประกอบที่ไม่ถูกกำหนดโดย schema
ข้อมูลองค์ประกอบ
โครงการ | ชี้แจง |
---|---|
จำนวนที่ปรากฏขึ้น | ไม่จำกัด |
องค์ประกอบพ่อ | choice、sequence |
เนื้อหา | annotation |
ภาษาวิทยา
<any id=ID maxOccurs=nonNegativeInteger|unbounded minOccurs=nonNegativeInteger namespace=namespace processContents=lax|skip|strict attributes > (annotation?) </any>
(? สัญลักษณ์ประกาศองค์ประกอบสามารถปรากฏขึ้นในองค์ประกอบใดๆ ซึ่งหากไม่มีความจำกัดใดๆ ให้ปรากฏขึ้น 0 ครั้งหรือ 1 ครั้ง)
แอตทริบิวต์
id
สามารถเลือกได้ กำหนด ID ที่มีความเป็นเดี่ยวเดียวขององค์ประกอบนี้
maxOccurs
สามารถเลือกได้ กำหนดจำนวนสูงสุดที่องค์ประกอบ any สามารถปรากฏขึ้นในองค์ประกอบพ่อ มากยิ่งได้ ค่านี้เป็นตัวเลขเต็มที่มากกว่าหรือเท่ากับ 0 ถ้าไม่ต้องการกำหนดจำนวนสูงสุดใดๆ ให้ใช้ตัวแปล "unbounded" ค่าเริ่มต้นคือ 1。
minOccurs
ใช้งานตามความต้องการ กำหนดจำนวนของการปรากฏขององค์ประกอบ any ในองค์ประกอบต้น ค่านี้เป็นตัวเลขเต็มที่มากกว่าหรือเท่ากับ 0 ถ้าต้องการให้องค์ประกอบ any ตามความต้องการ โปรดตั้งค่าเป็น 0 โดยมาตรฐานค่านี้คือ 1
namespace
ใช้งานตามความต้องการ กำหนดชื่อชุมชนที่องค์ประกอบที่สามารถใช้ได้ ถ้าไม่มีการกำหนดชื่อชุมชน จะใช้ ##any โดยมาตรฐาน ถ้ามีการกำหนดชื่อชุมชน ต้องเป็นหนึ่งในค่าที่ต่อไปนี้:
- ##any - องค์ประกอบที่มาจากชื่อชุมชนใดก็ได้ (โดยมาตรฐาน)
- ##other - องค์ประกอบที่มาจากชื่อชุมชนที่ไม่ใช่ชื่อชุมชนที่มีองค์ประกอบต้น
- ##local - องค์ประกอบที่ไม่มีชื่อชุมชน
- ##targetNamespace - องค์ประกอบที่มาจากชื่อชุมชนที่มีองค์ประกอบที่มีองค์ประกอบต้นที่มีชื่อว่า
- {URI references of namespaces, ##targetNamespace, ##local} list - องค์ประกอบที่มาจากชื่อชุมชนที่แบ่งปันด้วยอากาศาคารสามารถปรากฏขึ้นได้ รวมถึง URI อ้างอิงของชื่อชุมชน ##targetNamespace และ ##local
processContents
ใช้งานตามความต้องการ อุปกรณ์ที่ชี้ให้แนะนำว่าโปรแกรมหรือมองเห็นแบบ XML ควรทำการตรวจสอบการตรวจสอบเอกสาร XML ด้วยองค์ประกอบที่กำหนดโดยองค์ประกอบ any ถ้าไม่มีการกำหนดคุณสมบัติ processContents จะใช้ strict โดยมาตรฐาน ถ้ามีการกำหนด processContents ต้องเป็นหนึ่งในค่าที่ต่อไปนี้:
- strict - มองเห็นแบบ XML จำเป็นต้องรับรู้โมเดลที่จำเป็น และต้องทดสอบทุกองค์ประกอบที่มาจากชื่อชุมชนที่กำหนด (โดยมาตรฐาน)
- lax - คล้าย strict แต่ถึงแม้จะไม่สามารถรับรู้โมเดล ก็ไม่มีข้อผิดพลาดใดๆ
- skip - มองเห็นแบบ XML จะไม่ทดสอบการตรวจสอบทุกองค์ประกอบที่มาจากชื่อชุมชนที่กำหนด
attributes
ใช้งานตามความต้องการ กำหนดคุณสมบัติอื่นที่มีชื่อในชุมชนที่ไม่มีโมเดล (non-schema) ใดๆ
ตัวอย่าง
ตัวอย่างดังนี้แสดงให้เห็นการประกาศของสิ่งที่มีชื่อว่า "person" ซึ่งเป็นองค์ประกอบหนึ่งขององค์ประกอบ ผู้สร้างสามารถขยายเนื้อหาของ "person" ด้วยองค์ประกอบใดก็ได้ (หลังจาก <lastname>) ด้วยการใช้องค์ประกอบ <any> รวมถึงองค์ประกอบที่มีชื่อว่า <lastname> ที่กำหนดไว้เป็นต้น
<xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> <xs:any minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element>