Phần tử complexType XML Schema
Định nghĩa và cách sử dụng
complexType phần tử định nghĩa loại phức tạp. Các phần tử 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 thuộc tính.
Thông tin phần tử
Số lần xuất hiện | Trong cấu trúc không có giới hạn; trong phần tử chỉ một lần. |
Element 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 đượcdeclare trong yếu tố complexType, yếu tố có thể xuất hiện 0 hoặc 1 lần, * ký hiệu đượcdeclare yếu tố có thể xuất hiện 0 hoặc nhiều lần.)
Thuộc tính
id
Tùy chọn. Quy định ID duy nhất của yếu tố.
name
Tùy chọn. Quy định tên của yếu tố.
abstract
Tùy chọn. Quy định có thể sử dụng loại phức tạp trong tài liệu mẫu hay không. Nếu giá trị là true, thì yếu 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 phái sinh từ loại phức tạp này. Giá trị mặc định là false.
mixed
Tùy chọn. Quy định có cho phép dữ liệu ký tự xuất hiện giữa các thành phần con của loại phức tạp này hay không. Giá trị mặc định là false.
- Nếu yếu tố simpleContent là thành phần con, thì không được phép thuộc tính mixed.
- Nếu yếu tố complexContent là thành phần con, thì thuộc tính mixed có thể bị ghi đè bởi thuộc tính mixed của yếu tố complexContent.
block
Tùy chọn. Ngăn chặn các loại phức tạp có loại phái sinh được chỉ định được sử dụng để thay thế loại phức tạp này. Giá trị này có thể chứa #all hoặc một danh sách, danh sách này là một bộ phận của extension hoặc restriction:
- extension - Ngăn chặn các loại phái sinh phức tạp được sử dụng để thay thế loại phức tạp này qua việc mở rộng.
- restriction - Ngăn chặn các loại phái sinh phức tạp được sử dụng để thay thế loại phức tạp này qua việc giới hạn.
- #all - Ngăn chặn tất cả các loại phái sinh phức tạp được sử dụng để thay thế loại phức tạp này.
final
Tùy chọn. Ngăn chặn các loại phái sinh từ yếu tố complexType được chỉ định. Giá trị này có thể chứa #all hoặc một danh sách, danh sách này là một bộ phận của extension hoặc restriction.
- extension - Ngăn chặn thông qua việc mở rộng kế thừa.
- restriction - Ngăn chặn thông qua việc hạn chế kế thừa.
- #all - Ngăn chặn tất cả các loại 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 khác có không gian tên không theo schema.
Mô hình
Ví dụ 1
Ví dụ sau đây có một yếu tố phức tạp có 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 yếu tố bổ sung (address, city và country) để mở rộng loại kế thừa, được phân chi 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".