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">بازدید از CodeW3C.com</homepage>
  <homepage xlink:type="simple" xlink:href="http://www.w3.org">بازدید از W3C</homepage>
</homepages>

اگر نیاز به دسترسی به امکانات XLink داریم، باید فضای نام XLink را اعلام کنیم. فضای نام XLink: "http://www.w3.org/1999/xlink" است.

ویژگی xlink:type و xlink:href در عناصر <homepage> از فضای نام XLink آمده‌اند.

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" تنظیم کنیم، منابع مرتبط در صفحه داخلی به صورت inline پردازش می‌شوند. به عنوان مثال، اگر فکر کنید که این ممکن است یک مستند 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>پیشینه‌های روتوویلر احتمالاً رومی بودند
  گله سگها.....</history>
  <temperament>اعتماد به نفس، شجاعت، هوشیار و ابهام، روتوویلر
  انتخابی محبوب برای توانایی حفاظت از...</temperament>
</dog>
<dog breed="FCRetriever" id="FCRetriever">
  <picture url="https://dog.com/fcretriever.gif" />
  <history>یکی از اولین کاربردهای بازیابی سگها برای
  کمک ماهیگیران برای بازیابی ماهی از آب...</history>
  <temperament>The flat-coated retriever is a sweet, exuberant,
  Sگ زنده و دوست دارد بازی کند و بازیابی کند....</temperament>
</dog>
</dogbreeds>

لطفاً توجه داشته باشید که مستند XML بالا در هر عنصر از属性 id استفاده کرده است!

بنابراین، XPointer به شما اجازه می‌دهد تا به بخش خاصی از مستند لینک دهید، نه به کل مستند (مانند XLink).

برای لینک دادن به بخش خاصی از صفحه، پس از URL در 属性 xlink:href یک نشانی (#) و عبارت 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 لینک دهید. شما می‌توانید مستقیماً از مقدار 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>
  آنتون سگ مورد علاقه من است. او تعداد زیادی..... را برده است.
  </description>
  <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#Rottweiler">
  حقایقی در مورد روت وايلر
  </fact>
</mydog>
<mydog>
  <description>
  پلوتو سگ شیرینی‌ترین سگ روی زمین است......
  </description>
  <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#FCRetriever">
  حقیقت در مورد Retriever پهن‌پوش
  </fact>
</mydog>
</mydogs>