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