Phần tử any trong 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ể xuất hiện trong phần tử chứa sequence hoặc choice.
Phần tử any cho phép tác giả mở rộng tài liệu XML bằng cách sử dụng các 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 giới hạn |
Phần tử cha | choice, sequence |
Nội dung | annotation |
Ngữ pháp
<any id=ID maxOccurs=nonNegativeInteger|unbounded minOccurs=nonNegativeInteger namespace=namespace processContents=lax|skip|strict Thuộc tính any > (annotation?) </any>
(? ký hiệu 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 lần.)
Thuộc tính
id
Chọn. Định nghĩa ID duy nhất của phần tử này.
maxOccurs
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 dương hoặc bằng không. Nếu không muốn đặt bất kỳ giới hạn nào cho 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à 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 namespace chứa các phần tử có thể sử dụng. Nếu không chỉ định namespace, giá trị mặc định là ##any. Nếu chỉ định namespace, phải là một trong các giá trị sau:
- ##any - Các phần tử từ bất kỳ namespace nào đều có thể xuất hiện (mặc định).
- ##other - Các phần tử từ bất kỳ namespace nào ngoài namespace 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限定 namespace có thể xuất hiện.
- ##targetNamespace - Các phần tử từ namespace 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 namespace, ##targetNamespace, ##local - Các phần tử từ danh sách namespace được 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 namespace ##targetNamespace và ##local.
processContents
Tùy chọn. Một chỉ thị cho ứng dụng hoặc bộ xử lý XML biết 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 có cấu trúc cần thiết từ namespace và phải xác thực tất cả các phần tử từ các namespace đó. (Mặc định)
- Loose - 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.
- Bỏ qua - Bộ xử lý XML không thử xác thực tất cả các phần tử từ namespace được chỉ định.
Thuộc tính any
Tùy chọn. Định nghĩa bất kỳ thuộc tính nào có non-schema namespace.
Ví dụ
Dưới đây là ví dụ minh họa một lời khai báo của phần tử "person". Người tạo có thể mở rộng nội dung của "person" bằng bất kỳ phần tử nào thông qua phần tử <any> (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>