องค์ประกอบ anyAttribute ของ XML Schema
การกำหนดและการใช้งาน
องค์ประกอบ anyAttribute ทำให้ผู้สร้างสามารถขยายเอกสาร XML ด้วยคุณสมบัติที่ยังไม่ถูกกำหนดโดย schema。
ข้อมูลองค์ประกอบ
โครงการ | การอธิบาย |
---|---|
จำนวนการเกิดขึ้น | ไม่จำกัด |
พ่อองค์ประกอบ | complexType、restriction (simpleContent)、extension (simpleContent)、restriction (complexContent)、extension (complexContent)、attributeGroup |
เนื้อหา | annotation |
วลี
<anyAttribute id=ID namespace=namespace processContents=lax|skip|strict คุณสมบัติแบบ any > (annotation?) </anyAttribute>
(? สัญญาณว่าองค์ประกอบนี้สามารถปรากฏขึ้นได้เป็นจำนวนศูนย์หรือเพียงหนึ่งครั้งในองค์ประกอบ anyAttribute)
คุณสมบัติ
id
ใช้ได้เลือกแบบต่อเลย。กำหนด ID ที่เป็นเดียวขององค์ประกอบนี้
namespace
ใช้ได้เลือกแบบต่อเลย。กำหนดชื่อพื้นที่ที่องค์ประกอบที่สามารถใช้ได้ หากไม่มีการกำหนดชื่อพื้นที่ จะใช้ ##any โดยเริ่มต้น หากมีการกำหนดชื่อพื้นที่ ต้องเป็นหนึ่งในค่าต่อไปนี้。
- ##any - องค์ประกอบที่มาจากชื่อพื้นที่ใดก็ตามสามารถปรากฏขึ้นได้ (โดยเริ่มต้น)
- ##other - องค์ประกอบที่มาจากชื่อพื้นที่นอกชื่อพื้นที่ที่มีองค์ประกอบเดียวกันขององค์ประกอบพ่อสามารถปรากฏขึ้นได้
- ##local - องค์ประกอบที่ไม่มีชื่อพื้นที่สามารถปรากฏขึ้นได้
- ##targetNamespace - องค์ประกอบที่มาจากชื่อพื้นที่ที่มีองค์ประกอบเดียวกันขององค์ประกอบพ่อขององค์ประกอบนี้สามารถปรากฏขึ้นได้
- รายการอ้างอิง URI ของชื่อพื้นที่ (##targetNamespace, ##local) สามารถปรากฏขึ้นได้ รายการนี้สามารถประกอบด้วยชื่อพื้นที่ที่แยกต่างกันด้วยอวกาศ รายการนี้สามารถประกอบด้วยชื่อพื้นที่ URI ของ ##targetNamespace และ ##local
processContents
ใช้ได้เลือกแบบต่อเลย。บอกให้ระบบแอปพลิเคชัน หรือ มัธยระ XML ว่าจะตรวจสอบเอกสาร XML ด้วยวิธีใดๆ ตามองค์ประกอบที่กำหนดโดยองค์ประกอบ any นี้ สำหรับการตรวจสอบเอกสาร XML หากไม่มีการกำหนดคุณสมบัติ processContents จะใช้ strict โดยเริ่มต้น หากมีการกำหนด processContents ต้องเป็นหนึ่งในค่าต่อไปนี้。
- strict - มัธยระ XML ต้องรับรู้ทางภาพงานสเคลิปต์ที่จำเป็นของชื่อพื้นที่ที่ระบุมา และต้องตรวจสอบทุกองค์ประกอบที่มาจากชื่อพื้นที่นั้น。(โดยเริ่มต้น)
- lax - เหมือน strict นั้น; แต่แม้ว่าไม่สามารถรับรู้ทางภาพงานสเคลิปต์นั้นก็จะไม่มีข้อผิดพลาดใดๆ。
- skip - มัธยระ XML จะไม่ทดสอบการตรวจสอบทุกองค์ประกอบที่มาจากชื่อพื้นที่ที่กำหนดมาก่อน。
คุณสมบัติแบบ any
ใช้ได้เลือกแบบต่อเลย。กำหนดคุณสมบัติอื่นๆ ที่มีชื่อเรียกชนิด non-schema ของชื่อพื้นที่ที่ไม่มีสเคลิปต์。
ตัวอย่าง
ตัวอย่างดังกล่าวแสดงให้เห็นว่ามีการเรียกร้องสำหรับองค์ประกอบ "person" อยู่เดียวกัน。ด้วยการใช้องค์ประกอบ <anyAttribute> ผู้สร้างสามารถเพิ่มคุณสมบัติแบบ non-schema อื่นๆ สำหรับองค์ประกอบ "person" ได้มากที่สุด:
<xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> <xs:anyAttribute/> </xs:complexType> </xs:element>