Phần tử any của XML Schema
Định nghĩa và cách sử dụng
Phần tử any cho phép bất kỳ phần tử nào từ không gian tên được chỉ định có thể hiển thị trong phần tử sequence hoặc choice.
Phần tử any cho phép tác giả có thể mở rộng tài liệu XML bằng cách sử dụng phần tử không được quy định bởi schema.
Thông tin phần tử
Mục | Giải thích |
---|---|
Số lần xuất hiện | Không có giới hạn |
Phần tử cha | choice、sequence |
Nội dung | ghi chú |
Ngữ pháp
<any id=ID maxOccurs=nonNegativeInteger|unbounded minOccurs=nonNegativeInteger namespace=namespace processContents=lax|skip|strict bất kỳ thuộc tính nào > (ghi chú?) </any>
(? Ký hiệu khai báo phần tử có thể xuất hiện trong bất kỳ phần tử nào một lần hoặc không xuất hiện.)
Thuộc tính
id
Tùy chọn. Định nghĩa ID duy nhất của phần tử này.
maxOccurs
Tùy chọn. Định nghĩa số lần tối đa mà phần tử any có thể xuất hiện trong phần tử cha. Giá trị này có thể là một số nguyên lớn hơn hoặc bằng 0. Nếu không muốn đặt giới hạn số lần tối đa, hãy sử dụng chuỗi "unbounded". Giá trị mặc định là 1.
minOccurs
Tùy chọn. Định nghĩa số lần tối thiểu mà phần tử any có thể xuất hiện trong phần tử cha. Giá trị này có thể là một số nguyên lớn hơn hoặc bằng 0. Để chỉ định nhóm any là tùy chọn, hãy đặt thuộc tính này thành 0. Giá trị mặc định là 1.
namespace
Tùy chọn. Định nghĩa không gian tên chứa các phần tử có thể sử dụng. Nếu không chỉ định không gian tên, giá trị 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 được 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隔 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ị, chỉ ra cách mà ứng dụng hoặc bộ xử lý XML nên 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ủa không gian tên cần thiết 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ự như 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. Định nghĩa bất kỳ thuộc tính nào có không gian tên non-schema.
Ví dụ
Dưới đây là ví dụ minh họa một tuyên bố của phần tử "person". Bằng cách sử dụng phần tử <any>, tác giả có thể mở rộng nội dung của "person" bằng bất kỳ phần tử nào (sau <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>