XML, XLink và XQuery

XLink được sử dụng để tạo liên kết trong tài liệu XML.

XPath

  • XLink được sử dụng để tạo liên kết trong tài liệu XML
  • Bất kỳ phần tử nào trong tài liệu XML đều có thể là liên kết
  • Through XLink, you can define links outside the linked file
  • XLink là tiêu chuẩn đề xuất của W3C

Hỗ trợ trình duyệt XLink

Trình duyệt không hỗ trợ XLink trong tài liệu XML.

Nhưng tất cả các trình duyệt phổ biến đều hỗ trợ XLink trong SVG.

Cú pháp XLink

Trong HTML, phần tử <a> xác định liên kết. Tuy nhiên, điều này không phải là cách nó hoạt động trong XML.

Trong tài liệu XML, bạn có thể sử dụng bất kỳ tên phần tử nào bạn muốn - vì vậy trình duyệt không thể dự đoán trước phần tử liên kết nào sẽ được gọi trong tài liệu XML.

Dưới đây là một ví dụ đơn giản về cách sử dụng XLink để tạo liên kết trong tài liệu XML:

<?xml version="1.0" encoding="UTF-8"?>
<homepages xmlns:xlink="http://www.w3.org/1999/xlink">
  <homepage xlink:type="simple" xlink:href="https://www.codew3c.com">Thăm CodeW3C.com</homepage>
  <homepage xlink:type="simple" xlink:href="http://www.w3.org">Thăm W3C</homepage>
</homepages>

Nếu chúng ta cần truy cập vào chức năng XLink, chúng ta phải khai báo không gian tên XLink. Không gian tên XLink là: "http://www.w3.org/1999/xlink".

Thuộc tính xlink:type và xlink:href trong phần tử <homepage> đến từ không gian tên XLink này.

xlink:type="simple" tạo ra một liên kết "giống HTML" (ý nghĩa là "nhấp vào đây để chuyển đến nơi khác").

Thuộc tính xlink:href xác định URL cần liên kết.

Ví dụ XLink

XML tài liệu dưới đây chứa chức năng XLink:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore xmlns:xlink="http://www.w3.org/1999/xlink">
<book title="Nói về việc ăn uống">
  <description
  xlink:type="simple"
  xlink:href="/images/cswd.jpg"
  xlink:show="new">
  Cuốn sách "Nói về việc ăn uống" có thể coi là hướng dẫn sách ẩm thực Thùy Loan, trong đó cung cấp hướng dẫn và hỗ trợ cần thiết cho những người yêu thích ẩm thực và những người tìm kiếm hương vị;
  Cuốn sách này cũng có thể được coi là sách văn hóa ẩm thực Thùy Loan, trong đó giới thiệu ẩm thực Thùy Loan而非 ẩm thực Thùy Loan,充分地将食物背后所隐藏的乡土文化、饮食习俗和历史细节挖掘展现出来。
  </description>
</book>
<book title="Vị cha狐狸 tuyệt vời">
  <description
  xlink:type="simple"
  xlink:href="/images/mrfox.jpg"
  xlink:show="new">
  Bogie, Bons và Ben là những người bạn có thể gặp phải là những người xấu xa và nhỏ nhen nhất, họ thù ghét ông狐狸先生, quyết định tiêu diệt cả gia đình ông.
  Vậy, ba người này cầm súng, xấu xa chờ ở ngoài hang của ông狐狸先生…… nhưng ông狐狸先生 có kế hoạch tuyệt vời để đối phó với họ!
  Vậy, một cuộc đấu tranh trí tuệ và sức mạnh đã bắt đầu...
  </description>
</book>
</bookstore>

Ví dụ giải thích:

  1. Khoảng không XLink đượcdeclare ở đầu tài liệu (xmlns:xlink="http://www.w3.org/1999/xlink")
  2. xlink:type="simple" tạo ra một liên kết "giống HTML"
  3. Thuộc tính xlink:href chỉ định URL cần liên kết đến (trong ví dụ này là hình ảnh)
  4. xlink:show="new" chỉ ra rằng liên kết nên mở trong cửa sổ mới

XLink - Đi xa hơn

Trong ví dụ trên, chúng ta đã trình bày XLink đơn giản.

Nếu chúng ta sử dụng vị trí từ xa như tài nguyên thay vì truy cập trang độc lập, XLink sẽ trở nên thú vị hơn.

Nếu chúng ta thiết lập giá trị thuộc tính xlink:show là "embed", tài nguyên được liên kết sẽ được xử lý nội tuyến trong trang. Ví dụ, nếu bạn nghĩ rằng điều này có thể là một tài liệu XML khác, bạn có thể xây dựng cấu trúc层次 của tài liệu XML.

Bạn cũng có thể sử dụng thuộc tính xlink:actuate để chỉ định thời điểm tài nguyên nên xuất hiện.

Tham khảo thuộc tính XLink

Thuộc tính Giá trị Mô tả xlink:actuate onLoad onRequest other none Định nghĩa khi nào đọc và hiển thị tài nguyên được liên kết: onLoad - Tài nguyên nên được tải và hiển thị khi tài liệu được tải onRequest - Trước khi nhấp vào liên kết sẽ không đọc hoặc hiển thị tài nguyên xlink:href URL định nghĩa URL cần liên kết. xlink:show embed new replace other none định nghĩa nơi mở liên kết. Mặc định là "replace". xlink:type simple extended locator arc resource title none định nghĩa loại liên kết.

XPointer

XPath
  • XPointer cho phép liên kết chỉ đến phần cụ thể trong tài liệu XML
  • XPointer sử dụng biểu thức XPath để di chuyển trong tài liệu XML
  • XPointer là tiêu chuẩn được đề xuất bởi W3C

Hỗ trợ trình duyệt XPointer

Không có trình duyệt hỗ trợ XPointer. Nhưng XPointer cũng được sử dụng trong các ngôn ngữ XML khác.

XPointer ví dụ

Trong ví dụ này, chúng ta sẽ kết hợp sử dụng XPointer và XLink, chỉ đến phần cụ thể trong tài liệu khác.

Chúng ta trước tiên sẽ xem xét mục tiêu XML này (tài liệu mà chúng ta liên kết):

<?xml version="1.0" encoding="UTF-8"?>
<dogbreeds>
<dog breed="Rottweiler" id="Rottweiler">
  <picture url="https://dog.com/rottweiler.gif" />
  <history>Các tổ tiên của Rottweiler có thể là người La Mã
  chó đuổi.....</history>
  <temperament>Confident, bold, alert and imposing, the Rottweiler
  là lựa chọn phổ biến vì khả năng bảo vệ...
</dog>
<dog breed="FCRetriever" id="FCRetriever">
  <picture url="https://dog.com/fcretriever.gif" />
  <history>Một trong những用途 sớm nhất của việc sử dụng chó đánh bắt là
  giúp ngư dân đánh bắt cá từ nước...
  <temperament>The flat-coated retriever is a sweet, exuberant,
  chú chó sôi động yêu thích chơi và tìm lại....</temperament>
</dog>
</dogbreeds>

Lưu ý rằng văn bản XML trên đã sử dụng thuộc tính id ở mỗi phần tử!

Do đó, XPointer cho phép bạn liên kết đến phần cụ thể của tài liệu, thay vì liên kết đến toàn bộ tài liệu (như XLink).

Nếu bạn muốn liên kết đến phần cụ thể của trang, hãy thêm dấu số (#) và biểu thức XPointer vào sau URL trong thuộc tính xlink:href, như sau:

xlink:href="https://dog.com/dogbreeds.xml#xpointer(id('Rottweiler'))"

Cụm từ này tham chiếu đến phần tử trong tài liệu mục tiêu có giá trị id là "Rottweiler".

xlink:href="https://dog.com/dogbreeds.xml #xpointer(id('Rottweiler'))"。

XPointer cũng cho phép sử dụng phương pháp viết tắt để liên kết đến các phần tử có id. Bạn có thể trực tiếp sử dụng giá trị của id, như sau:

xlink:href="https://dog.com/dogbreeds.xml#Rottweiler

Dưới đây là văn bản XML chứa các liên kết đến thông tin chi tiết về giống của mỗi chú chó:

<?xml version="1.0" encoding="UTF-8"?>
<mydogs xmlns:xlink="http://www.w3.org/1999/xlink">
<mydog>
  <description>
  Anton là chú chó yêu thích của tôi. Anh ấy đã giành được rất nhiều.....
  </description>
  <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#Rottweiler">
  Thực tế về Rottweiler
  </fact>
</mydog>
<mydog>
  <description>
  Pluto là chú chó ngọt ngào nhất trên Trái Đất......
  </description>
  <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#FCRetriever">
  Fact về flat-coated Retriever
  </fact>
</mydog>
</mydogs>