XML, XLink และ XQuery

XLink ใช้ในการสร้างลิงก์ในเอกสาร XML

XPath

  • XLink ใช้ในการสร้างลิงก์ในเอกสาร XML
  • ในเอกสาร XML ใดๆ สามารถทำหน้าที่เป็นลิงก์
  • ผ่าน XLink สามารถกำหนดลิงก์นอกเอกสารที่ต้องการลิงก์
  • XLink คือมาตราฐานที่ W3C แนะนำ

การสนับสนุนเบราเซอร์ XLink

เบราเซอร์ไม่สนับสนุน XLink ในเอกสาร XML

แต่ทั้งหมดเบราเซอร์ที่เป็นหลักทุกตัวต้องการ XLink ใน SVG.

ศัพท์ XLink

ใน HTML ประกาศ <a> จะเป็นการกำหนดสมาชิกของลิงก์ แต่นี่ไม่ใช่วิธีที่มันทำงานใน XML

ในเอกสาร XML คุณสามารถใช้ชื่อประกาศซึ่งคุณต้องการ - ดังนั้นเบราเซอร์ไม่สามารถคาดการณ์ได้ว่าจะเรียกเลือกองค์ประกอบลิงก์ใดในเอกสาร XML

ตัวอย่างง่ายๆ ของการใช้ XLink ในเอกสาร 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">Visit CodeW3C.coms</homepage>
  <homepage xlink:type="simple" xlink:href="http://www.w3.org">Visit W3C</homepage>
</homepages>

ถ้าเราต้องการเข้าถึง XLink ฟังก์ชัน ต้องจำเป็นต้องประกาศ XLink namespace คือ: "http://www.w3.org/1999/xlink"

xlink:type และ xlink:href ในสมมุติฐาน <homepage> มาจาก XLink namespace

xlink:type="simple" จะสร้างลิงก์ "เหมือน HTML" ธรรมดา (หมายถึง "คลิกที่นี่เพื่อไปที่สถานที่อื่น")

xlink:href 属性จะกำหนด URL ที่ต้องการลิงก์ไป

ตัวอย่างของ XLink

XML ไฟล์ด้านล่างมีฟังก์ชัน XLink:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore xmlns:xlink="http://www.w3.org/1999/xlink">
<book title="雅舍谈吃">
  <description
  xlink:type="simple"
  xlink:href="/images/cswd.jpg"
  xlink:show="new">
  《雅舍谈吃》นับเป็นคู่มืออาหารหวานเกาะเซี่ยงไซ้ ที่ให้คำแนะนำและการช่วยเหลือที่จำเป็นต่อผู้ชื่นชอบอาหารและผู้หาสนาน
  หนังสือนี้ยังสามารถเรียกว่าเป็นหนังสือวรรณคดีของอาหารหวานเกาะเซี่ยงไซ้ หนังสือนี้นำเสนออาหารหวานเกาะเซี่ยงไซ้ ไม่ใช่อาหารของเกาะเซี่ยงไซ้ และขาดแคลนวัฒนธรรมท้องถิ่น ประเพณีอาหารและรายละเอียดประวัติศาสตร์ที่ซ่อนอยู่ใต้อาหาร
  </description>
</book>
<book title="了不起的狐狸爸爸">
  <description
  xlink:type="simple"
  xlink:href="/images/mrfox.jpg"
  xlink:show="new">
  บอกี้ บองส์ และเบียน คือคนที่คุณอาจเจอได้ที่ที่ทุกคนจะรู้สึกถึงความขาดแคลนและขาดความยินยอมที่สุด พวกเขาชังนายหนู และตัดสินใจที่จะกำจัดครอบครัวของนายหนู
  ดังนั้น สามคนนี้นำปืนมาอยู่ด้านนอกช่องโคกของนายหนู โดยมีความมุ่งมั่นและหลอกลวง... แต่นายหนูมีแผนเจาะจงเพื่อต่อสู้กับพวกเขา!
  ดังนั้น การแข่งขันระหว่างความรู้และความแข็งแกร่งได้เริ่มขึ้น...
  </description>
</book>
</bookstore>

ตัวอย่างที่อธิบาย:

  1. ชื่อสเปซิฟิก XLink ประกาศที่ด้านบนของเอกสาร (xmlns:xlink="http://www.w3.org/1999/xlink")
  2. xlink:type="simple" สร้างลิงก์ที่เหมือน HTML
  3. xlink:href แอตทริบิวต์กำหนด URL ที่จะลิงก์ไป (ในตัวอย่างนี้เป็นรูปภาพ)
  4. xlink:show="new" ชี้ว่าลิงก์ควรเปิดในหน้าต่างใหม่

XLink - ย้ายไปยังทางหน้าต่าง

ในตัวอย่างด้านบน เราได้แสดง XLink ที่เรียบง่าย

หากเราใช้ตำแหน่งทางไกลเป็นทรัพยากรแทนการเข้าถึงหน้าเว็บอิสระ XLink จะมีความมีน่าสนใจมากขึ้น

หากเราตั้งค่า xlink:show แอตทริบิวต์เป็น "embed" ทรัพยากรที่มีลิงก์จะถูกจัดการโดยในหน้าเว็บเช่นเดียวกับ HTML ตัวเดียวกัน ตัวอย่างเช่น หากคุณคิดว่านี่อาจเป็นเอกสาร XML อื่น คุณสามารถสร้างโครงสร้างหน้าต่าง XML

คุณยังสามารถใช้ xlink:actuate แอตทริบิวต์เพื่อกำหนดเวลาที่ทรัพยากรควรปรากฏขึ้น

ความเข้าใจของ XLink แอตทริบิวต์

รายละเอียด ค่า การอธิบาย xlink:actuate onLoad onRequest other none กำหนดเวลาที่จะอ่านและแสดงทรัพยากรที่มีลิงก์ onLoad - ทรัพยากรควรที่จะโหลดและแสดงขณะที่เอกสารกำลังโหลด onRequest - จะไม่มีการอ่านหรือแสดงทรัพยากรก่อนที่จะคลิกลิงก์ xlink:href URL กำหนด URL ที่จะไปที่ xlink:show embed new replace other none กำหนดที่จะเปิดลิงก์ ตามเรื่องที่เรียกใช้โดยมาตราฐาน คือ "replace" xlink:type simple extended locator arc resource title none กำหนดประเภทของลิงก์

XPointer

XPath
  • XPointer อนุญาตให้ลิงก์ไปที่ส่วนเฉพาะของเอกสาร XML
  • XPointer ใช้ XPath แสดงความหมายเพื่อเดินทางในเอกสาร XML
  • XPointer คือมาตราฐานที่แนะนำโดย W3C

การสนับสนุน XPointer ของบราวเซอร์

ไม่มีบราวเซอร์ที่สนับสนุน XPointer แต่ XPointer ยังถูกใช้ในภาษา XML อื่น

ตัวอย่าง XPointer

ในตัวอย่างนี้ เราจะใช้คู่กับ XPointer และ XLink ติดตามส่วนเฉพาะของเอกสารอื่น

เราจะมองไปที่เอกสาร XML ประกายเป้าหมายนี้เกี่ยวกับ (เอกสารที่เราเชื่อมโยงไป):

<?xml version="1.0" encoding="UTF-8"?>
<dogbreeds>
<dog breed="Rottweiler" id="Rottweiler">
  <picture url="https://dog.com/rottweiler.gif" />
  <history>บิดาทางสายของ Rottweiler คงจะเป็นชาวโรมัน...
  dogs.....</history>
  <temperament>มั่นใจ กล้าหาญ มีความเฝ้าระวังและมีความเสมอภาค ความฝันของ Rottweiler...
  เป็นทางเลือกที่นิยมสำหรับความสามารถในการปกป้อง...
</dog>
<dog breed="FCRetriever" id="FCRetriever">
  <picture url="https://dog.com/fcretriever.gif" />
  <history>หนึ่งในการใช้สุนัขนำกลับที่เก่าแก่ที่สุดคือ...
  ช่วยประมงแก้ตัวปลาจากน้ำ...
  <temperament>The flat-coated retriever is a sweet, exuberant,
  สุนัขที่มีสุขภาพแข็งแกร่ง รักเล่นและนำมากมาย....</temperament>
</dog>
</dogbreeds>

โปรดเข้าใจว่า XML แบบไฟล์ด้านบนใช้ id attribute ในแต่ละองค์ประกอบ!

ดังนั้น XPointer อนุญาตให้คุณลิงก์ไปยังส่วนเฉพาะของเอกสาร ไม่ใช่ลิงก์ไปยังเอกสารทั้งหมด (เช่น XLink)

ถ้าต้องการลิงก์ไปยังส่วนเฉพาะของหน้าเว็บ เพิ่มเครื่องหมาย # และ XPointer สำหรับ XPointer ตามนี้:

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

ประโยคนี้หมายถึงองค์ประกอบในเอกสารเป้าหมายที่มี id ค่า "Rottweiler"。

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

XPointer ยังอนุญาตให้ใช้วิธีลิงก์ชัดเจนไปยังองค์ประกอบที่มี id ด้วยวิธีดังนี้:

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

XML แบบไฟล์ด้านล่างมีลิงก์ที่นำไปสู่ข้อมูลเกี่ยวกับสายพันธุ์ของสุนัขต่างๆ มากมาย:

<?xml version="1.0" encoding="UTF-8"?>
<mydogs xmlns:xlink="http://www.w3.org/1999/xlink">
<mydog>
  <description>
  Anton คือสุนัขที่ชอบของฉัน. เขาชนะรางวัลมากมาย.....
  </description>
  <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#Rottweiler">
  ข้อเท็จจริงเกี่ยวกับ Rottweiler
  </fact>
</mydog>
<mydog>
  <description>
  Pluto คือสุนัขที่น่ารักที่สุดบนโลก......
  </description>
  <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#FCRetriever">
  Fact about flat-coated Retriever
  </fact>
</mydog>
</mydogs>