Yếu tố phức hợp của XSD
- Trang trước Giới hạn của XSD
- Trang tiếp theo Yếu tố rỗng của XSD
Phần tử hợp nhất chứa các phần tử khác và/hoặc thuộc tính.
Phần tử hợp nhất là gì?
Phần tử hợp nhất là phần tử XML chứa các phần tử khác và/hoặc thuộc tính.
Có bốn loại phần tử hợp nhất:
- Phần tử trống
- Phần tử chứa các phần tử khác
- Phần tử chỉ chứa văn bản
- Phần tử chứa phần tử và văn bản
Chú thích:Các phần tử trên đều có thể chứa thuộc tính!
Ví dụ về phần tử hợp nhất
Phần tử hợp nhất, "product", là trống:
<product pid="1345"/>
Phần tử hợp nhất, "employee", chỉ chứa các phần tử khác:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
Phần tử hợp nhất, "food", chỉ chứa văn bản:
<food type="dessert">Ice cream</food>
Phần tử hợp nhất, "description", chứa phần tử và văn bản:
<description> Đó đã xảy ra vào <date lang="norwegian">03.03.99</date> .... </description>
Làm thế nào để định nghĩa phần tử hợp nhất?
Xin xem phần tử XML phức hợp này, "employee", chỉ chứa các phần tử khác:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
Trong XML Schema, chúng ta có hai cách để định nghĩa phần tử phức hợp:
1. Bằng cách đặt tên cho phần tử này, bạn có thể trực tiếp khai báo phần tử "employee", giống như thế này:
<xs:element name="employee"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
Nếu bạn sử dụng phương pháp được mô tả ở trên, thì chỉ có "employee" có thể sử dụng loại phức hợp được quy định. Lưu ý rằng các phần tử con, "firstname" và "lastname", được bao bọc trong chỉ thị <sequence>. Điều này có nghĩa là các phần tử con phải xuất hiện theo thứ tự được khai báo. Bạn sẽ Chỉ thị XSD Chương này học thêm về kiến thức về chỉ thị.
2. Phần tử "employee" có thể sử dụng thuộc tính type, thuộc tính này có tác dụng tham chiếu đến tên loại phức hợp cần sử dụng:
<xs:element name="employee" type="personinfo"/> <xs:complexType name="personinfo"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType>
Nếu bạn đã sử dụng phương pháp được mô tả ở trên, thì nhiều phần tử có thể sử dụng cùng một loại phức hợp, ví dụ như thế này:
<xs:element name="employee" type="personinfo"/> <xs:element name="student" type="personinfo"/> <xs:element name="member" type="personinfo"/> <xs:complexType name="personinfo"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType>
Bạn cũng có thể xây dựng trên các phần tử phức hợp hiện có bằng cách sử dụng một phần tử phức hợp làm cơ sở, sau đó thêm một số phần tử, giống như thế này:
<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>
- Trang trước Giới hạn của XSD
- Trang tiếp theo Yếu tố rỗng của XSD