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>