本篇包括Charpter 10 XLink。
XLink相比html的anchor来说要抽象许多了,而它能表示的内容也广泛很多,从某种角度来说xlink定义的是graph而不仅仅是link这么简单,通过locator跟resource定义点,通过arc定义边,从而构成任意的图。
要点如下:
1.XLink的namespace是http://www.w3.org/1999/xlink。XLink主要分为两种类型,simple跟extended。
2.Simple的xlink定义如下,可以使用xlink:show(可选值为new,replace,embed,other,none)跟xlink:actuate(可选值为onLoad,onRequest,other,none)这两个attribute来控制其行为,可以通过xlink:title跟xlink:role来描述其语义,其中title是一段文字,role是某个url。
<novel xlink:type = "simple" xlink:href = "ftp://archive.org/pub/etext/etext93/wizoz10.txt"/>
3.Extended的xlink通过定义点和边来描述一个图,所有的点和边的定义必须包含在含有xlink:type="extended"的element中,本地资源采用xlink:type="resource"定义,非本地资源采用xlink:type="locator"定义,边采用xlink:type="arc"定义。Resource跟locator都可以使用xlink:title跟xlink:role来描述其语义,同时使用xlink:label来为其命名,使其可以被arc引用。Arc用xlink:title跟xlink:arcrole来描述其语义,同时使用xlink:from跟xlink:to来描述其起始及终结的点,其中由于不同的resource或者locator可能有同个label,这个时候arc描述的是若干条边,而通过省略xlink:from或xlink:to可以选择所有的点,最后需要注意的是在同个extended的xlink下面,不同的arc所描述的边不能由重复(交集),否则视为错误。例子如下:
<author xlink:type="resource">L. Frank Baum</author>
<edition xlink:type="locator" xlink:href="urn:isbn:0688069444" xlink:title="William Morrow" xlink:role="http://www.williammorrow.com/" xlink:label="ISBN0688069444"/>
<purchase xlink:type="arc" xlink:from="ISBN0192839306" xlink:to="buy" xlink:arcrole="http://www.example.com/purchase_details.txt" />
4.在非本地资源间的边称为third-party links,从本地资源到非本地资源的边成为outbound links,从非本地资源到本地资源的边成为inbound links,如果一个xml document含有third-party links或者inbound links称为linkbase。
5.书中列举了两个在dtd中加入xlink支持的例子,如下:
<!ELEMENT novel (title, author, year)>
<!ATTLIST novel xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink' xlink:type (simple) #FIXED 'simple' xlink:href CDATA #REQUIRED>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT year (#PCDATA)>
<!ENTITY % simplelink "xlink:type (simple) #FIXED 'simple' xlink:href CDATA #REQUIRED xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink' xlink:role CDATA #IMPLIED xlink:title CDATA #IMPLIED xlink:actuate (onRequest | onLoad | other | none) 'onRequest' xlink:show (new | replace | embed | other | none) 'new'">
<!ATTLIST anthology %simplelink;>
<!ATTLIST novel %simplelink;>
<!ATTLIST nonfiction %simplelink;>
分享到:
相关推荐
XML.in.a.Nutshell(英文版)
When you have a question about how to use C# 5.0 or the .NET CLR, this highly acclaimed bestseller has precisely the answers you need. Uniquely organized around concepts and use cases, this fifth ...
Dive in and discover why this Nutshell guide is considered the definitive reference on C#. Get up to speed on the C# language, from the basics of syntax and variables to advanced topics such as ...
《Python in a Nutshell》是一本专为Python程序员设计的桌面速查指南,由Alex Martelli、Anna Ravenscroft和Steve Holden合著。本书是第四版,涵盖了Python 3.7到3.11的版本,旨在帮助读者快速查找Python语言和库的...
《Python in a Nutshell》第二版是一本针对Python编程语言的深度指南,旨在为程序员提供一个全面而紧凑的参考资源。这本书中文版的高清扫描版是学习和查阅Python技术的重要资料,尤其适合已经有一定编程基础并希望...
### USB in a Nutshell #### 引言:理解USB标准 对于初学者而言,进入USB领域可能会感到非常棘手。USB 2.0规范长达650页,仅仅这一点就足以让人望而却步。而这仅仅是众多与USB相关的标准中的一个开始。除了主规格...
Delphi in a Nutshell is the first concise reference to Borland/Inprise Delphi available. It succinctly collects all the information you need in one easy-to-use, complete, and accurate volume that goes...
### R in a Nutshell #### 知识点一:R 的获取与安装 - **R 版本**:本书提及了 R 的版本信息,对于学习者来说了解当前使用的 R 版本至关重要,因为不同的版本可能会有功能上的差异或兼容性问题。 - **获取与安装 ...
《C#6.0 IN A NUTSHELL》是由Joseph Albahari和Ben Albahari合著的一本关于C#编程语言的参考书籍。这本书是“C# in a nutshell”系列书籍的最新版,专门针对C# 6.0版本提供了详尽的参考资料和指导。该书不仅仅是一本...
### Python in a Nutshell 第三版 2017 关键知识点解析 #### 书籍概述 《Python in a Nutshell》第三版是一本全面而深入介绍Python编程语言的经典著作,由Alex Martelli、Anna Ravenscroft和Steve Holden共同撰写。...
《C# 5.0 in a Nutshell 5th》是C#编程语言的一本权威指南,由专家撰写,深入浅出地介绍了C# 5.0版本的关键特性和使用方法。这本书对于开发者来说,是一份宝贵的参考资料,帮助他们理解和掌握C# 5.0的精髓,提升开发...
《C# 5.0 in a Nutshell, 5th Edition》是一本全面介绍C# 5.0编程语言的经典著作。这本书由权威专家编写,深入浅出地讲解了C# 5.0的关键特性,旨在帮助开发者快速掌握并熟练应用这一强大的编程工具。 C# 5.0是微软...
Java in a Nutshell(6th) 英文无水印pdf 第6版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除