Bài giảng Cơ sở dữ liệu Web và XML - Chương 4: XML
4.1 Tổng quan về XML
4.2Định nghĩa kiểu dữliệu -DTD
4.3 Ngôn ngữđịnh dạng
4.4 Liên kết
Tóm tắt nội dung Bài giảng Cơ sở dữ liệu Web và XML - Chương 4: XML, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ên Bao gồm thẻ tên của phần tử và tập các phần tử con của chúng Phần tử Đoạn chú thíchChú thích Thuộc tính của phần tử. Giá trị thuộc tính đã loại bỏ dấu bao chuỗi Thuộc tính Nơi khởi đầu tài liệu cần chuyển dịchGốc tài liệu Mô tảNút Chương 4. XML 4 - 121/ - Tạo tài liệu XSLT XSL phải đặt trong cặp thẻ hay phần tử sử dụng bí danh cho không gian tên là xsl 4.3 Ngôn ngữ định dạng <xsl:stylesheet xmlns:xsl=""> … Chương 4. XML 4 - 122/ - Tạo tài liệu XSLT Quá trình tìm dữ liệu trong XML được duyệt từ phần tử gốc. Ví dụ: 4.3 Ngôn ngữ định dạng This is XML root. Chương 4. XML 4 - 123/ - Tạo tài liệu XSLT Phần tử được dùng để thế chỗ cho nơi dữ liệu XML sẽ được đặt vào tài liệu 4.3 Ngôn ngữ định dạng Planets found… Kết quả: Planets found… Chương 4. XML 4 - 124/ Tương tự như vậy cho các nút con cấp dưới 4.3 Ngôn ngữ định dạng Chương 4. XML 4 - 125/ - Chỉ định mẫu so khớp với thuộc tính match Thuộc tính 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 đó (, , , ) - So khớp phần tử gốc của dữ liệu XML (matching root) Phần tử gốc của tài liệu XML được so khớp với ký tự “/”. 4.3 Ngôn ngữ định dạng Chương 4. XML 4 - 126/ - So khớp các phần tử (matching element) Chúng ta có thể tìm, so khớp một phần tử bằng cách chỉ định tên của phần tử đó. Ví dụ 4.3 Ngôn ngữ định dạng Chương 4. XML 4 - 127/ - So khớp các phần tử con Ký tự “/” dùng làm dấu phân cách biểu diễn đường dẫn từ nút cha đến nút con trong dữ liệu XML. Ví dụ Ký tự “.” trong thuộc tính select yêu cầu thẻ chọn dữ liệu của nút hiện hành 4.3 Ngôn ngữ định dạng Chương 4. XML 4 - 128/ - So khớp các phần tử con Chúng ta cũng có thể dùng ký tự đại diện * để chọn tất cả các phần tử 4.3 Ngôn ngữ định dạng Chương 4. XML 4 - 129/ - So khớp các phần tử cấp dưới (Descendant) Nut//Nut_cap_duoi chọn tất cả các phần tử “Nut_cap_duoi” bên dưới “Nut” không phân biệt mức độ lồng nhau của các phần tử 4.3 Ngôn ngữ định dạng Chương 4. XML 4 - 130/ - So khớp thuộc tính sử dụng ký hiệu so khớp thuộc tính @ lấy ra thuộc tính 4.3 Ngôn ngữ định dạng Chương 4. XML 4 - 131/ - So khớp dòng chú thích (matching comment) Để dò tìm và trích rút nội dung các dòng chú thích ta sử dụng biểu thức so khớp comment() 4.3 Ngôn ngữ định dạng Chương 4. XML 4 - 132/ - So khớp các chỉ thị xử lý (process instruction) hàm processing-instruction() 4.3 Ngôn ngữ định dạng <xsl:stylesheet version = "1.0" xmlns:xsl=""> Tim thay chi thị xu ly. Chương 4. XML 4 - 133/ - Sử dụng toán tử OR toán tử OR để chỉ điều kiện kết hợp 4.3 Ngôn ngữ định dạng Chương 4. XML 4 - 134/ - Kiểm tra so khớp bằng biểu thức ngoặc vuông [] ngoặc vuông để 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ị của một phần tử Phần tử có chứa thuộc tính hay phần tử con hay không Vị trí của một nút dữ liệu 4.3 Ngôn ngữ định dạng Chương 4. XML 4 - 135/ - Kiểm tra so khớp bằng biểu thức ngoặc vuông [] Ví dụ: so khớp và chọn ra phần tử PLANET có chứa phần tử con NAME: so khớp và chọn ra mọi phần tử có chứa thuộc tính con NAME: so khớp và chọn ra mọi phần tử chứa thuộc tính NAME hoặc MASS: so khớp và chọn phần tử PLANET chứa thuộc tính UNITS mang giá trị days: 4.3 Ngôn ngữ định dạng Chương 4. XML 4 - 136/ - Chọn dữ liệu bằng thuộc tính select thuộc tính select của để chọn mục dữ liệu Ví dụ: 4.3 Ngôn ngữ định dạng Chương 4. XML 4 - 137/ - Sắp xếp các phần tử dữ liệu Phần tử cho phép chúng ta chọn mục dữ liệu để sắp xếp thông qua thuộc tính select Ví dụ: 4.3 Ngôn ngữ định dạng Chương 4. XML 4 - 138/ - Sắp xếp các phần tử dữ liệu sắp xếp dựa trên kiểu chuỗi, để sắp xếp kiểu số chúng ta thêm thuộc tính data-type=”number” vào phần tử . Chúng ta cũng có thể chỉ định kiểu sắp xếp tăng dần (Ascending) hay giảm dần (Descending) bằng cách thêm thuộc tính order. Ví dụ: 4.3 Ngôn ngữ định dạng Chương 4. XML 4 - 139/ - Sử dụng xsl:if phần tử để phát biểu một điều khiển lựa chọn Ví dụ: khi gặp phần tử cuối cùng trong tài liệu thì in ra thẻ (phần tử định dạng tạo một đường ngang trong HTML). 4.3 Ngôn ngữ định dạng Chương 4. XML 4 - 140/ - Sử dụng xsl:choose cho phép kiểm tra và chọn ra giá trị trong một danh sách các so khớp thỏa mãn điều kiện Mỗi chọn lựa trong được chỉ định bằng phần tử con và thuộc tính test của Ví dụ: định dạng tên của các hành tinh tùy thuộc vào màu sắc của nó. 4.3 Ngôn ngữ định dạng Chương 4. XML 4 - 141/ - Sử dụng xsl:choose 4.3 Ngôn ngữ định dạng Chương 4. XML 4 - 142/ 4.4.1 XPath 4.4.2 XLink 4.4 Liên kết Chương 4. XML 4 - 143/ - Đường dẫn tuyệt đối xuất phát từ phần tử gốc và được biểu diễn bằng dấu “/” Ví dụ: Cho tài liệu XML như sau: /AA. Phần tử được chọn là AA /AA/BB/CC: phần tử CC là con của AA/BB 4.4.1 XPath Chương 4. XML 4 - 144/ - Đường dẫn tổng thể chuỗi “//” để tham chiếu đến tất cả các phần tử trong tài liệu. Ví dụ: //CC: chọn tất cả các phần tử CC //BB/CC: chọn tất cả phần tử CC là con của BB 4.4.1 XPath Chương 4. XML 4 - 145/ - Ký tự đại diện * *: chọn tất cả các phần tử cùng thỏa mãn đường dẫn chỉ định. Ví dụ: /AA/BB/* chọn tất cả các phần tử có đường dẫn là AA/BB /*/*/BB chọn tất cả các phần tử BB nằm ở cấp thứ 3 //* chọn tất cả các phần tử trong tài liệu. 4.4.1 XPath Chương 4. XML 4 - 146/ - Chọn các phần tử theo vị trí bằng ngoặc vuông [] []: chỉ định vị trí của môt phần tử XML cần chọn. Ví dụ: /AA/BB[1] chọn phần tử BB đầu tiên trong nhánh /AA /AA/BB[last()] chọn phần tử BB cuối cùng trong nhánh /AA 4.4.1 XPath Chương 4. XML 4 - 147/ - Chọn thuộc tính của một phần tử @: chọn hay chỉ đường dẫn đến một thuộc tính bên trong phần tử XML. Ví dụ: //@id chọn tất cả các thuộc tính id trong tài liệu. //BB[@id] chọn tất cả các phần tử BB có thuộc tính id //BB[@name] chọn tất cả các phần tử BB có thuộc tính name //BB[@*] chọn tất cả các phần tử BB có khai báo thuộc tính //BB[@not *] chọn tất cả các phần tử BB không có thuộc tính 4.4.1 XPath Chương 4. XML 4 - 148/ - Chọn phần tử dựa trên nội dung thuộc tính dựa vào nội dung thuộc tính để xác định các phần tử. Ví dụ: //BB[@id=’b1’] chọn tất cả các phần tử BB trong tài liệu có thuộc tính id=’b1’. - Chọn phần tử dựa trên số đếm //*[count(BB)=2] chọn tất cả các phần tử có chứa 2 phần tử BB. //*[count(*)=2] chọn tất cả các phần tử có chứa 2 phần tử con. 4.4.1 XPath Chương 4. XML 4 - 149/ - Chọn phần tử dựa trên tên của phần tử dựa vào nội dung thuộc tính để xác định các phần tử. Ví dụ: //*[name()=’BB’] chọn tất cả các phần tử có tên là BB. //*[starts-with(name(),’B’)] chọn tất cả các phần tử có tên bắt đầu là B. //*[contains(name(),’B’)] chọn tất cả các phần tử có tên chứa ký tự B. 4.4.1 XPath Chương 4. XML 4 - 150/ - Chọn phần tử dựa vào chiều dài tên thẻ Hàm string-length() được dùng để trả về chiều dài của tên thẻ Ví dụ: //*[ string-length(name())=3] chọn tất cả các phần tử có chiều dài chuỗi tên là 3. //*[ string-length(name())>3] chọn tất cả các phần tử có chiều dài chuỗi tên lớn hơn 3. 4.4.1 XPath Chương 4. XML 4 - 151/ - Chọn nhóm các phần tử dựa trên điều kiện logic Chúng ta có thể kết hợp nhiều nhóm lựa chọn hay đường dẫn XPath với nhau thông qua phép hợp bằng toán tử | Ví dụ: //BB | //CC chọn tất cả các phần tử BB hoặc CC trong tài liệu. 4.4.1 XPath Chương 4. XML 4 - 152/ - Chọn các phần tử con trong đường dẫn Chúng ta sử dụng thuộc tính child để chỉ định chọn phần tử con. Ví dụ: /AA tương đương với /child::AA chọn tất cả các phần tử AA từ gốc. /AA/BB hoặc /child::AA/BB tương đương với /child::AA/child::BB; kết quả là BB được chọn. 4.4.1 XPath Chương 4. XML 4 - 153/ - Chọn phần tử con Toán tử descendant được dùng để chọn các phần tử cấp dưới Ví dụ: /AA/BB/descendant::* chọn tất cả các phần tử con của AA/BB //BB/descendant::* chọn tất cả các phần tử con của BB //BB/descendant::CC chọn tất cả các phần tử CC là con của BB 4.4.1 XPath Chương 4. XML 4 - 154/ - Chọn phần tử cha Toán tử parent được dùng để chọn phần tử cha của 1 phần tử Ví dụ: //CC/parent::* chọn tất cả các phần tử là cha của phần tử CC //CC/parent::BB chọn tất cả các phần tử BB là cha của CC - Chọn phần tử cấp trên Toán tử ancestor chọn các phần tử cấp trên của phần tử chỉ định Ví dụ: //CC/ancestor::* chọn tất cả các phần tử nằm trên phần tử CC 4.4.1 XPath Chương 4. XML 4 - 155/ - Chọn các phần tử cùng cấp kế tiếp following-sibling: chọn các phần tử cùng cấp Ví dụ: //BB/ following-sibling::* chọn tất cả các phần tử tiếp sau BB. - Chọn các phần tử cùng cấp phía trước proceding-sibling: chọn các phần tử cùng cấp trước phần tử chỉ định. Ví dụ: //BB/ proceding-sibling::* chọn tất cả các phần tử cùng cấp nằm trước BB. 4.4.1 XPath Chương 4. XML 4 - 156/ - Chọn các phần tử theo sau phần tử chỉ định following: chọn các phần tử sau phần tử chỉ định. Ví dụ: //BB/following::* chọn tất cả các phần tử theo sau BB. - Chọn các phần tử đứng trước phần tử chỉ định Proceding: chọn các phần tử trước phần tử chỉ định. Ví dụ: //BB/proceding::* chọn tất cả các phần tử đứng trước BB. 4.4.1 XPath Chương 4. XML 4 - 157/ - Chọn các phần tử cấp dưới và phần tử chỉ định descedant-or-self: chọn các phần tử nằm dưới phần tử chỉ định kể cả phần tử chỉ định cũng được chọn. Ví dụ: //BB/descedant-or-self::* chọn tất cả các phần tử nằm dưới BB kể cả BB. - Chọn các phần tử cấp trên và phần tử chỉ định Ví dụ: //BB/descedant-or-self::* chọn tất cả các phần tử nằm trên BB kể cả BB. 4.4.1 XPath Chương 4. XML 4 - 158/ - Chọn các phần tử dựa trên biểu thức tính toán Chúng ta có thể sử dụng hàm position() để tính toán vị trí phần tử được chọn. Ví dụ: //BB[position() mod 2 = 0] chọn tất cả các phần tử BB có vị trí là số chẵn. /AA//BB[position() = 2] chọn các phần tử BB nằm dưới AA và có vị trí bằng 2. 4.4.1 XPath Chương 4. XML 4 - 159/ - Hyperlink trong HTML HTML sử dụng phần tử để tạo liên kết đến một trang tài liệu 4.4.2 XLink
File đính kèm:
- Bài giảng Cơ sở dữ liệu Web và XML - Chương 4 XML.pdf