องค์ประกอบ 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>