XML Schema anyAttribute 元素

定义和用法

anyAttribute 元素使创作者可以通过未被 schema 规定的属性来扩展 XML 文档。

元素信息

项目 说明
出现次数 无限制
父元素 complexType、restriction (simpleContent)、extension (simpleContent)、restriction (complexContent)、extension (complexContent)、attributeGroup
内容 annotation

语法

<anyAttribute
id=ID
namespace=namespace
processContents=lembut|lempar|ketat
atribut mana pun
>
(anotasi?)
</anyAttribute>

(? simbol mengumumkan bahwa elemen ini dapat muncul nol atau sekali dalam elemen anyAttribute.)

Atribut

id

Pilihan. Tetapkan ID unik elemen ini.

ruang_nama

Pilihan. Tetapkan ruang nama yang mengandung elemen yang dapat digunakan. Jika ruang nama tidak diset, nilai default adalah ##any. Jika diset, harus berupa salah satu nilai berikut.

  • ##any - elemen dari semua ruang nama dapat muncul (default).
  • ##other - semua elemen dari ruang nama lain dari ruang nama target yang berisi elemen induk dapat muncul.
  • ##local - elemen yang tidak ditentukan oleh ruang nama dapat muncul.
  • ##targetNamespace - elemen dari ruang nama target yang berisi elemen induk dapat muncul.
  • daftar referensi URI ruang nama {##targetNamespace, ##local} - elemen dari daftar ruang nama yang dipisahkan spasi dapat muncul. Daftar ini dapat mengandung berikut: referensi URI ruang nama ##targetNamespace dan ##local.

processContents

Pilihan. Indikator yang menunjukkan bagaimana aplikasi atau pemroses XML harus memproses verifikasi dokumen XML berdasarkan elemen yang ditentukan oleh elemen any. Jika atribut processContents tidak diset, nilai default adalah strict. Jika diatur, harus berupa salah satu nilai berikut.

  • ketat - Pemroses XML harus memperoleh struktur yang dibutuhkan dari ruang nama dan harus memverifikasi semua elemen dari ruang nama ini. (default)
  • lembut - Sama seperti strict; namun, tidak terjadi kesalahan apapun jika tidak dapat mengambil struktur.
  • lempar - Pemroses XML tidak mencoba memverifikasi semua elemen dari ruang nama yang ditentukan.

atribut mana pun

Pilihan. Tetapkan semua atribut lain yang mempunyai ruang nama non-schema.

Contoh

Contoh di bawah ini menunjukkan pengumuman untuk elemen "person". Melalui penggunaan elemen <anyAttribute>, pencipta dapat menambahkan sejumlah besar atribut kepada elemen "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>