XSL (Extension Style Language)
XSL: là ngôn ngữ định kiểu mở rộng
Tương tự như CSS, XSL thực hiện nhiệm vụ biến đổi dữ liệu của tài liệu XML để hiển thị phía người dùng.
XSL phân ra làm hai nhánh:
Ngôn ngữ XML chuyển dịch gọi là XSLT.
Một nhánh khác của XSL đó là chuyên về định dạng hay còn gọi là XSL FO (Formating Object). XSL FO cung cấp các thuộc tính thiết lập font chữ, màu sắc, hình ảnh
XSL(Extension Style Language) Giới thiệu XSL: là ngôn ngữ định kiểu mở rộng Tương tự như CSS, XSL thực hiện nhiệm vụ biến đổi dữ liệu của tài liệu XML để hiển thị phía người dùng. XSL phân ra làm hai nhánh: Ngôn ngữ XML chuyển dịch gọi là XSLT. Một nhánh khác của XSL đó là chuyên về định dạng hay còn gọi là XSL FO (Formating Object). XSL FO cung cấp các thuộc tính thiết lập font chữ, màu sắc, hình ảnh… Giới thiệu Một tài liệu XSL phải được viết theo đúng cú pháp và hợp khuôn dạng với quy tắc XML. Ví dụ: Tài liệu XSLT Tài liệu XSLT, dữ liệu đầu vào là một tập các node. Có 7 loại node mà XSL có thể nhận dạng chuyển dịch: Gốc tài liệu (Document Root) Thuộc tính (Attribute). Chú thích (Comment). Phần tử (Element). Không gian tên (Namespace). Chỉ thị xử lý (Processing Instruction). Văn bản (Text). Tạo tài liệu XSLT Khi bộ chuyển dịch XSLT được gọi, nó sẽ thực hiện hai thao tác: Đọc các chỉ thị so khớp trong tài liệu XSL Truy tìm dữ liệu trong tài liệu XML đặt vào tương ứng. Quá trình truy tìm dữ liệu trong tài liệu XML sẽ được duyệt bắt đầu từ phần tử gốc. Tạo tài liệu XSLT Ví dụ: Thic is XML Root Chỉ định mẫu so khớp Thuộc tính so khớp Match: dùng để yêu cầu một thẻ lệnh thực hiện theo một điều kiện dữ liệu thỏa mãn nào đó. Các thuộc tính so khớp: So khớp phần tử gốc (matching root) Phần tử gốc của XML được so khớp bằng kí tự ‘/’. Ví dụ: So khớp phần tử (matching element) Ta có thể tìm và so khớp một phần tử đơn giản bằng cách chỉ định tên của phần tử đó. Ví dụ: So khớp các phần tử con Ta dùng đường dẫn Xpath để biểu diễn đường dẫn đến các node con trong tài liệu XML. Ví dụ: Để so khớp và chọn phần tử FISRT_NAME và LAST_NAME (trong vidu.xml): Dùng kí tự “.” trong select để yêu cầu thẻ chọn dữ liệu của node hiện hành. So khớp thuộc tính Ngoài việc lấy nội dung dữ liệu text của một phần tử, bạn có thể lấy thuộc tính bằng kí hiệu so khớp @. Ví dụ: So khớp định danh ID của phần tử Mỗi phần tử trong tài liệu XML có thể mang một thuộc tính là định danh duy nhất. Ta có thể dựa vào định danh này để xác định và chọn phần tử Ví dụ: So khớp dòng chú thích Ta cũng có thể tìm và trích nội dung dòng chú thích trong tài liệu XML bằng biểu thức so khớp comment() trong XSL. Ví dụ: Tai lieu XML aaa Ta có thể rút trích chú thích như sau: Kết quả: Tai lieu XML aaa Day la sach XML So khớp chỉ thị xử lý Ta cũng có thể tìm và trích nội dung chỉ thị xử lý trong tài liệu XML bằng biểu thức so khớp /processing-instruction() trong XSL. Ví dụ: Tai lieu XML aaa Ta có thể rút trích chú thích như sau: Kết quả: type="text/xsl" href="LayChuThich.xsl" Tai lieu XML aaa Sử dụng toán tử OR Dùng toán tử OR để chỉ điều kiện hợp. Ví dụ: Để so khớp phần tử mang tên CUSTOMER hoặc BUYER ta dùng toán tử OR như sau: ….. Kiểm tra so khớp bằng biểu thức [] Có thể dùng biểu thức [] để kiểm tra xem một điều kiện nào đó là true hay false. Giá trị thuộc tính trong một chuỗi. Giá trị một phần tử. Kiểm tra một phần tử có chứa thuộc tính hay phần tử con khác hay không. Vị trí của một nút dữ liệu. Ví dụ: So khớp phần tử book chứa phần tử con title ta dùng: So khớp phần tử book chứa thuộc tính state mang giá trị “yes” hay không ta dùng: dùng để lấy ra nội dung một mục dữ liệu trong tài liệu XML. Ta có thể dùng thuộc tính select để chọn chính xác một mục dữ liệu. Thuộc tính select yêu cầu một đường dẫn Xpath đến phần tử hay thuộc tính được chọn. Ví dụ: In ra vị trí xuất hiện của node trong tài liệu Thay đổi cấu trúc tài liệu Tạo các mẫu thuộc tính: giả sử ta muốn lấy dữ liệu từ các node và gán thành thuộc tính ta làm như sau: Khi đó chuyển dịch sau cùng của tài liệu: Thay đổi cấu trúc tài liệu Tạo một phần tử mới: ta có thể dùng phần tử để tạo một phần tử mới cho dữ liệu đầu vào. Ví dụ: aaa bbb Ta có thể chuyển đổi thuộc tính NAME thành phần tử tương ứng trong tài liệu đích: Kết quả: aaa Thay đổi cấu trúc tài liệu Tạo thuộc tính mới: tương tự như phần tử , thuộc tính dùng tạo thuộc tính mới cho phần tử nào đó. Ví dụ: TacGia Writer Ta muốn tạo thuộc tính mới và giá trị của nó lấy giá trị của thuộc tính NAME: Kết quả: Thay đổi cấu trúc tài liệu Tạo nội dung dữ liệu văn bản: ta có thể dùng thuộc tính để kết xuất dữ liệu văn bản thô. Trường hợp bạn muốn xuất tài liệu có các kí tự đặc biệt . Thông thường trình diễn dịch sẽ đổi các kí tự đặc biệt thành tham chiếu thực thể (≶, >…), khi đó muốn kết xuất kí tự đúng đắn trong tài liệu ta dùng thuộc tính disable-output-escaping=“yes”. Ví dụ: Chao cac banden voi < XML > Thay đổi cấu trúc tài liệu Sao chép các nút dữ liệu: phần tử xsl:copy cho phép ta sao chép dữ liệu của một nút trong tài liệu đầu vào. Ví dụ: ta tạo một tài liệu XML mới ở đầu ra bằng cách sao chép toàn bộ các nút của tài liệu XML đầu vào. Thay đổi cấu trúc tài liệu XML Sắp xếp các phần tử dữ liệu: ta dùng cho phép chọn một mục dữ liệu để sắp xếp thông qua thuộc tính select. Ví dụ: Title Author Thay đổi cấu trúc tài liệu Để phát biểu một điều kiện lựa chọn ta sử dụng xsl:if. Để sử dụng xsl:if, ta đặt thuộc tính test của nó bằng một biểu thức kiểm tra có giá trị true hoặc false. Ví dụ: aaa bbb 10 ccc ddd 15 Ta muốn lấy những phần tử sách mà giá >10 (price>10) Thay đổi cấu trúc tài liệu XSL còn cung cấp cho ta phần tử điều khiển lựa chọn tương tự như lệnh switch .. Case trong lập trình C. Ví dụ: Bài tập Truy vấn lấy thông tin các sinh viên Truy vấn lấy thông tin sinh viên, sắp tăng theo họ tên sinh viên Truy vấn lấy thông tin tất cả các sinh viên hệ chính quy (thuộc tính Loai của sinh viên là chính quy). Xuất thông tin theo định dạng như sau: Bài tập Xuất thông tin sinh viên kèm theo kết quả đăng kí học phần theo dạng như sau:
File đính kèm:
- XSL (Extension Style Language).ppt