XML , XLink ve XPointer
XLink, XML belgelerinde köprüler oluşturmak için kullanılır.
|
XLink Tarayıcı Desteği
XML belgelerinde XLink için tarayıcı desteği yoktur.
Ancak, tüm büyük tarayıcılar SVG'de XLinks'i destekler .
XLink Sözdizimi
HTML'de <a> öğesi bir köprüyü tanımlar. Ancak, XML'de bu şekilde çalışmaz. XML belgelerinde, istediğiniz öğe adlarını kullanabilirsiniz - bu nedenle tarayıcıların XML belgelerinde hangi bağlantı öğelerinin çağrılacağını tahmin etmesi imkansızdır.
Aşağıda, bir XML belgesinde bağlantılar oluşturmak için XLink'in nasıl kullanılacağına ilişkin basit bir örnek verilmiştir:
<?xml version="1.0" encoding="UTF-8"?>
<homepages xmlns:xlink="http://www.w3.org/1999/xlink">
<homepage xlink:type="simple"
xlink:href="https://www.w3schools.com">Visit W3Schools</homepage>
<homepage xlink:type="simple"
xlink:href="http://www.w3.org">Visit W3C</homepage>
</homepages>
XLink özelliklerine erişmek için XLink ad alanını bildirmeliyiz. XLink ad alanı: "http://www.w3.org/1999/xlink".
<homepage> öğelerindeki xlink:type ve xlink:href nitelikleri, XLink ad alanından gelir.
xlink:type="simple", basit bir "HTML benzeri" bağlantı oluşturur ("oraya gitmek için burayı tıklayın" anlamına gelir).
xlink:href niteliği, bağlantı kurulacak URL'yi belirtir.
XLink Örneği
Aşağıdaki XML belgesi, XLink özelliklerini içerir:
<?xml version="1.0" encoding="UTF-8"?>
<bookstore xmlns:xlink="http://www.w3.org/1999/xlink">
<book title="Harry Potter">
<description
xlink:type="simple"
xlink:href="/images/HPotter.gif"
xlink:show="new">
As his fifth year at Hogwarts School of Witchcraft and
Wizardry approaches, 15-year-old Harry Potter is.......
</description>
</book>
<book title="XQuery Kick Start">
<description
xlink:type="simple"
xlink:href="/images/XQuery.gif"
xlink:show="new">
XQuery Kick Start delivers a concise introduction
to the XQuery standard.......
</description>
</book>
</bookstore>
Örnek açıkladı:
- XLink ad alanı belgenin en üstünde belirtilir (xmlns:xlink="http://www.w3.org/1999/xlink")
- xlink:type="simple", basit bir "HTML benzeri" bağlantı oluşturur
- xlink:href özelliği, bağlantı kurulacak URL'yi belirtir (bu durumda - bir resim)
- xlink:show="new", bağlantının yeni bir pencerede açılması gerektiğini belirtir
XLink - Daha İleri Gitmek
Yukarıdaki örnekte basit XLink'leri gösterdik. Uzak konumlara bağımsız sayfalar yerine kaynak olarak erişirken XLink daha ilginç hale geliyor.
xlink:show özniteliğinin değerini "embed" olarak ayarlarsak, bağlantılı kaynak sayfa içinde satır içi olarak işlenmelidir. Bunun başka bir XML belgesi olabileceğini düşündüğünüzde, örneğin bir XML belgeleri hiyerarşisi oluşturabilirsiniz.
xlink:actuate özniteliği ile kaynağın NE ZAMAN görüneceğini de belirtebilirsiniz.
XLink Özellik Referansı
Attribute | Value | Description |
---|---|---|
xlink:actuate | onLoad onRequest other none |
Defines when the linked resource is read and shown:
|
xlink:href | URL | Specifies the URL to link to |
xlink:show | embed new replace other none |
Specifies where to open the link. Default is "replace" |
xlink:type | simple extended locator arc resource title none |
Specifies the type of link |
XPointer
|
XPointer Tarayıcı Desteği
XPointer için tarayıcı desteği yoktur. Ancak XPointer diğer XML dillerinde kullanılır.
XPointer Örneği
Bu örnekte, başka bir belgenin belirli bir bölümüne işaret etmek için XLink ile birlikte XPointer'ı kullanacağız.
Hedef XML belgesine (bağlandığımız belge) bakarak başlayacağız:
<?xml version="1.0" encoding="UTF-8"?>
<dogbreeds>
<dog breed="Rottweiler" id="Rottweiler">
<picture url="https://dog.com/rottweiler.gif" />
<history>The Rottweiler's ancestors were probably Roman
drover dogs.....</history>
<temperament>Confident, bold, alert and imposing, the Rottweiler
is a popular choice for its ability to protect....</temperament>
</dog>
<dog breed="FCRetriever" id="FCRetriever">
<picture url="https://dog.com/fcretriever.gif" />
<history>One of the earliest uses of retrieving dogs was to
help fishermen retrieve fish from the water....</history>
<temperament>The flat-coated retriever is a sweet, exuberant,
lively dog that loves to play and retrieve....</temperament>
</dog>
</dogbreeds>
Yukarıdaki XML belgesinin her öğede id niteliklerini kullandığını unutmayın!
Bu nedenle, (XLink'te olduğu gibi) belgenin tamamına bağlanmak yerine, XPointer belgenin belirli bölümlerine bağlanmanıza izin verir. Bir sayfanın belirli bir bölümüne bağlantı oluşturmak için, xlink:href özelliğindeki URL'den sonra bir sayı işareti (#) ve bir XPointer ifadesi ekleyin, şunun gibi: xlink:href="https://dog.com/dogbreeds.xml #xpointer(id('Rottweiler'))". İfade, hedef belgedeki "Rottweiler" kimlik değerine sahip öğeye atıfta bulunur.
XPointer ayrıca bir kimliğe sahip bir öğeye bağlanmak için kestirme bir yönteme izin verir. Kimliğin değerini doğrudan şu şekilde kullanabilirsiniz: xlink:href="https://dog.com/dogbreeds.xml#Rottweiler".
Aşağıdaki XML belgesi, köpeklerimin her biri için köpek türü hakkında daha fazla bilgi için bağlantılar içerir:
<?xml version="1.0" encoding="UTF-8"?>
<mydogs xmlns:xlink="http://www.w3.org/1999/xlink">
<mydog>
<description>
Anton is my favorite dog. He has won a lot of.....
</description>
<fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#Rottweiler">
Fact about Rottweiler
</fact>
</mydog>
<mydog>
<description>
Pluto is the sweetest dog on earth......
</description>
<fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#FCRetriever">
Fact about flat-coated Retriever
</fact>
</mydog>
</mydogs>