Các phần tử XML Schema complexType
Định nghĩa và cách sử dụng
Các phần tử complexType định nghĩa loại phức tạp. Các phần tử của loại phức tạp là các phần tử XML chứa các phần tử khác và/hoặc các thuộc tính.
Thông tin phần tử
Xuất hiện lần | Trong cấu trúc là không có giới hạn; trong phần tử là một lần. |
Phần tử cha | element、redefine、schema |
Nội dung | annotation、simpleContent、complexContent、group、all、choice、sequence、attribute、attributeGroup、anyAttribute |
Ngữ pháp
<complexType id=ID name=NCName abstract=true|false mixed=true|false block=(#all|danh sách của (extension|restriction)) final=(#all|danh sách của (extension|restriction)) bất kỳ thuộc tính nào > (annotation?,(simpleContent|complexContent|((group|all| choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?)))) </complexType>
(? Ký hiệu khai báo trong phần tử complexType, phần tử có thể xuất hiện không lần hoặc một lần, * ký hiệu khai báo phần tử có thể xuất hiện không lần hoặc nhiều lần.)
Thuộc tính
ID
Tùy chọn. Quy định ID duy nhất của phần tử.
Tên
Tùy chọn. Quy định tên của phần tử.
Tóm tắt
Tùy chọn. Quy định liệu có thể sử dụng loại phức tạp trong tài liệu thực thể hay không. Nếu giá trị là true, thì phần tử không thể sử dụng trực tiếp loại phức tạp này mà phải sử dụng loại phức tạp được phái sinh từ loại phức tạp này. Giá trị mặc định là false.
Kết hợp
Tùy chọn. Quy định liệu dữ liệu字符 có thể xuất hiện giữa các phần tử con của loại phức tạp này hay không. Giá trị mặc định là false.
- Nếu phần tử simpleContent là phần tử con, thì không được phép thuộc tính mixed.
- Nếu phần tử complexContent là phần tử con, thì thuộc tính mixed có thể bị ghi đè bởi thuộc tính mixed của phần tử complexContent.
Chặn
Tùy chọn. Ngăn cản việc sử dụng loại phức tạp có loại phái sinh đã chỉ định để thay thế loại phức tạp đó. Giá trị có thể chứa #all hoặc một danh sách, danh sách này là một tập con của extension hoặc restriction:
- Phát triển - Ngăn cản việc sử dụng loại phức tạp được衍生出来 để thay thế loại phức tạp đó.
- Ngăn chặn - Ngăn cản việc sử dụng loại phức tạp được衍生出来 để thay thế loại phức tạp đó.
- #all - Ngăn chặn tất cả các loại phức tạp kế thừa được sử dụng để thay thế loại phức tạp này.
final
Tùy chọn. Ngăn chặn việc kế thừa từ loại complexType cụ thể. Giá trị có thể chứa #all hoặc một danh sách, danh sách này là tập hợp con của extension hoặc restriction.
- extension - Ngăn chặn sự kế thừa thông qua mở rộng.
- restriction - Ngăn chặn sự kế thừa thông qua hạn chế.
- #all - Ngăn chặn tất cả các sự kế thừa (mở rộng và hạn chế).
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 không quy định. Giá trị có thể chứa #all hoặc một danh sách, danh sách này là tập hợp con của extension hoặc restriction.
Mô hình
Ví dụ 1
Ví dụ sau đây có một phần tử loại phức tạp tên là "note":
<xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
Ví dụ 2
Trong ví dụ sau đây có một loại phức tạp "fullpersoninfo" được mở rộng bằng ba phần tử bổ sung (address, city và country) từ loại kế thừa, được kế thừa từ loại phức tạp "personinfo":
<xs:element name="employee" type="fullpersoninfo"/> <xs:complexType name="personinfo"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="fullpersoninfo"> <xs:complexContent> <xs:extension base="personinfo"> <xs:sequence> <xs:element name="address" type="xs:string"/> <xs:element name="city" type="xs:string"/> <xs:element name="country" type="xs:string"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType>
Trong ví dụ trên, yếu tố "employee" ở trên phải chứa theo thứ tự các yếu tố sau: "firstname", "lastname", "address", "city" và "country".