Element anyAttribute của XML Schema

Định nghĩa và cách sử dụng

Element anyAttribute cho phép tác giả mở rộng tài liệu XML thông qua các thuộc tính không được quy định bởi schema.

Thông tin element

dự án mô tả
số lần xuất hiện không có giới hạn
element cha complexType, restriction (simpleContent), extension (simpleContent), restriction (complexContent), extension (complexContent), attributeGroup
nội dung annotation

cú pháp

<anyAttribute
id=ID
namespace=namespace
processContents=lax|skip|strict
bất kỳ thuộc tính nào
>
(ghi chú?)
</anyAttribute>

(? ký hiệu cho rằng phần tử này có thể xuất hiện zero hoặc một lần trong phần tử anyAttribute.)

Thuộc tính

id

Tùy chọn. Quy định ID duy nhất của phần tử này.

namespace

Tùy chọn. Quy định không gian tên của các phần tử có thể sử dụng. Nếu không chỉ định không gian tên, mặc định là ##any. Nếu chỉ định không gian tên, phải là một trong các giá trị sau.

  • ##any - Các phần tử từ bất kỳ không gian tên nào đều có thể xuất hiện (mặc định).
  • ##other - Các phần tử từ bất kỳ không gian tên nào ngoài không gian tên mục tiêu của phần tử cha đều có thể xuất hiện.
  • ##local - Các phần tử không bị giới hạn bởi không gian tên có thể xuất hiện.
  • ##targetNamespace - Các phần tử từ không gian tên mục tiêu của phần tử cha chứa phần tử này có thể xuất hiện.
  • Danh sách các tham chiếu URI của không gian tên, ##targetNamespace, ##local - Các phần tử từ danh sách không gian tên phân cách bằng dấu cách có thể xuất hiện. Danh sách có thể chứa các nội dung sau: Tham chiếu URI của không gian tên ##targetNamespace và ##local.

processContents

Tùy chọn. Một chỉ thị cho ứng dụng hoặc bộ xử lý XML về cách xử lý xác thực tài liệu XML dựa trên phần tử được chỉ định bởi phần tử any. Nếu không chỉ định thuộc tính processContents, mặc định là strict. Nếu chỉ định processContents, phải là một trong các giá trị sau.

  • strict - Bộ xử lý XML phải lấy được cấu trúc cần thiết từ không gian tên và phải xác thực tất cả các phần tử từ các không gian tên đó. (Mặc định)
  • lax - Tương tự strict; nhưng, ngay cả khi không thể lấy được cấu trúc, cũng không xảy ra lỗi nào.
  • skip - Bộ xử lý XML không thử xác thực tất cả các phần tử từ không gian tên được chỉ định.

bất kỳ thuộc tính nào

Tùy chọn. Quy định bất kỳ thuộc tính nào có không gian tên non-schema.

Mẫu

Dưới đây là một ví dụ minh họa về một khai báo cho phần tử "person". Bằng cách sử dụng phần tử <anyAttribute>, tác giả có thể thêm một số lượng bất kỳ thuộc tính nào vào phần tử "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>