XML Schema anyAttribute 元素
定义和用法
anyAttribute 元素使创作者可以通过未被 schema 规定的属性来扩展 XML 文档。
元素信息
项目 | 说明 |
---|---|
出现次数 | 无限制 |
父元素 | complexType、restriction (simpleContent)、extension (simpleContent)、restriction (complexContent)、extension (complexContent)、attributeGroup |
内容 | annotation |
语法
<anyAttribute id=ID namespace=namespace processContents=lax|skip|strict คุณสมบัติที่สามารถใช้งานได้ > (annotation?) </anyAttribute>
(? สัญลักษณ์ประกาศว่าองค์ประกอบนี้สามารถปรากฏขึ้นมาได้ในองค์ประกอบ anyAttribute หนึ่งครั้งหรือไม่มีครั้ง)
คุณสมบัติ
id
ใช้งานตามความต้องการ กำหนดรหัสที่เป็นเดียวกันขององค์ประกอบนี้
namespace
ใช้งานตามความต้องการ กำหนดชื่อสาขานามขององค์ประกอบที่สามารถใช้งานได้ หากไม่มีการระบุชื่อสาขานาม ค่าเริ่มต้นเป็น ##any หากมีการระบุชื่อสาขานาม ต้องเป็นหนึ่งในค่าที่ต่อไปนี้:
- ##any - องค์ประกอบที่มีชื่อสาขานามมาจากชื่อสาขานามทุกชื่อสาขานามสามารถปรากฏขึ้นมาได้ (ค่าเริ่มต้น)
- ##other - องค์ประกอบที่มีชื่อสาขานามนอกจากชื่อสาขานามขององค์ประกอบพ่อขององค์ประกอบนี้สามารถปรากฏขึ้นมาได้
- ##local - องค์ประกอบที่ไม่มีชื่อสาขานามขององค์ประกอบสามารถปรากฏขึ้นมาได้
- ##targetNamespace - องค์ประกอบที่มีชื่อสาขานามขององค์ประกอบพ่อขององค์ประกอบนี้สามารถปรากฏขึ้นมาได้
- รายชื่อของอ้างอิง URI ของชื่อสาขานาม {##targetNamespace, ##local} - องค์ประกอบที่สามารถปรากฏขึ้นมาจากรายชื่อชื่อสาขานามที่แยกด้วยอวุธรสุริยะ สามารถปรากฏขึ้นมาด้วยเนื้อหาที่ต่อไปนี้: อ้างอิง URI ของชื่อสาขานาม ##targetNamespace และ ##local
processContents
ใช้งานตามความต้องการ แสดงให้โปรแกรมหรือมีการประมวลผล XML รับรองรายละเอียดเพื่อประมวลผลเอกสาร XML ด้วยองค์ประกอบ any โดยการระบุขององค์ประกอบ processContents ไม่มีค่าเริ่มต้นเป็น strict หากมีการระบุ processContents ต้องเป็นหนึ่งในค่าที่ต่อไปนี้:
- strict - ต้องการเข้าถึงโครงสร้างที่จำเป็นของชื่อสาขานามที่จำเป็น และต้องทดสอบการรับรองจากองค์ประกอบทั้งหมดของชื่อสาขานามนั้น。(ค่าเริ่มต้น)
- lax - ตรงกันข้ามกับ strict; แต่แม้จะไม่สามารถเข้าถึงโครงสร้างได้ ก็ไม่มีข้อผิดพลาดใดๆ:
- skip - มีการประมวลผล XML โดยไม่ทดสอบการรับรองจากองค์ประกอบที่มีชื่อสาขานามที่กำหนด:
คุณสมบัติที่สามารถใช้งานได้
ใช้งานตามความต้องการ กำหนดคุณสมบัติที่มีชื่อเรียกแบบโครงสร้างและไม่มีชื่อเรียกชิ้นแบบที่มีชื่อเรียกชิ้นแบบ non-schema ของชื่อสาขานาม:
ตัวอย่าง
ตัวอย่างด้านล่างนี้แสดงให้เห็นถึงการประกาศสำหรับองค์ประกอบ "person" โดยการใช้องค์ประกอบ <anyAttribute> ผู้สร้างสามารถเพิ่มคุณสมบัติที่ไม่มีชื่อเรียกแบบโครงสร้างให้กับองค์ประกอบ "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>