Goal (Mission ?)

From the charter of the Working Group:

The XML Linking WG continues the effort begun in the XML WG in January 1997.

The objective of the XML Linking WG is to design advanced, scalable, and maintainable hyperlinking and addressing functionality for XML. Such functionality includes the hyperlinking abilities of HTML, but extends them to include at least the following:

Principle

XLink defines the following:

An XLink processor expected to detects those contructs so they are handled at the application level.

However XLink does not enforce behaviour, this is application dependant with hints defined on the link elements.

XLink Core properties

The core properties (attributes):

XLink Behaviour properties

Those are attribute holding behaviour related informations:

XLink Semantic properties

Those are placeholders for application semantic:

Simple Links

Here are the limitations on simple links:

But they benefit from a lighter syntax

Simple Links View

Graphic view of a simple link

Simple Link Example

this can be as simple as:

<students xlink:href="students.xml"> The list of students.</students>

assuming the following element declaration:

<!ELEMENT student ANY>
<!ATTLIST student
 xmlns:xlink   CDATA #FIXED "http://www.w3.org/1999/xlink/namespace/"
 xlink:type    CDATA #FIXED "simple"
 xlink:href    CDATA #REQUIRED
 xlink:role    CDATA #IMPLIED
 xlink:title   CDATA #IMPLIED
 xlink:show    (new|embed|replace) "replace"
 xlink:actuate (onRequest|auto)    "onRequest"
>

Extended Links

Here is a set of "advanced" features:

Extended Links View

Graphic view of a simple link

XLink Extended Links Examples

<element xmlns:xlink="http://www.w3.org/1999/xlink/namespace/"
         xlink:type="extended">
 <xlink:locator href="Source" role="role1"/>         
 <xlink:locator href="Target" role="role2"/>
 <xlink:arc from="role1" to="role2"
               show="embed" actuate="auto"/>
 <xlink:title>The link title<xlink:title/>
 <xlink:title xml:lang="fr">Description du lien<xlink:title/>
    ...
</element>pre>

Extended Link Sets

This construct allows to reference an external set of links

Extended Link Set example

<xlink:extended xmlns:xlink="http://www.w3.org/1999/xlink/namespace/"
         role="xlink:external-linkset">
     <xlink:title>DV's Links</xlink:title>
     <xlink:locator href="http://rpmfind.net/veillard/linkset.xml"/>
</xlink:extended>pre>

Issue List

There is still some issues left like:

But the core is now stable.

Related efforts

Current status

May the mission complete sucessfully...

Ap: Simple Link mapping to RDF

graph of the simple link model
<element xmlns:xlink="http://www.w3.org/1999/xlink/namespace/"
         xlink:href="target"
         xlink:type="simple"
         xlink:show="embed"
         xlink:actuate="auto"
         xlink:role="The link role"
         xlink:title="The link title">
         ...
</element>

translates to
           
<element>
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
           xmlns:xlink="http://www.w3.org/1999/xlink/namespace/">
    <rdf:Description about="#xptr(../..)">
       <xlink:href rdf:resource="target"/>
       <xlink:type rdf:resource="xlink:simple"/>
       <xlink:show rdf:resource="xlink:embed"/>
       <xlink:actuate rdf:resource="xlink:auto"/>
       <xlink:role>The link role</xlink:role>
       <xlink:title>The link title</xlink:title>
    </rdf:Description>
  </rdf:RDF>
  ...
</element>  

Ap: Extended Link mapping to RDF

graph of the extended link model
<element xmlns:xlink="http://www.w3.org/1999/xlink/namespace/"
         xlink:type="extended">
    <xlink:locator href="Source" role="role1"/>         
    <xlink:locator href="Target" role="role2"/>         
    <xlink:arc from="role1" to="role2"
               show="embed" actuate="auto"/>
    <xlink:title="The link title"/>         
    ...
</element>

translates to
           
<element>         
  <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
           xmlns:xlink="http://www.w3.org/1999/xlink/namespace/">
    <rdf:description about="#xptr(../..)">
        <xlink:type rdf:resource="xlink:extended"/>
        <xlink:locator rdf:about="source" rdf:id="role1"/>
        <xlink:locator rdf:about="target" rdf:id="role2"/>
        <xlink:arc>
            <xlink:from rdf:resource="#role1">
            <xlink:to rdf:resource="#role2">
            <xlink:show rdf:resource="xlink:embed"/>
            <xlink:actuate rdf:resource="xlink:auto"/>
        </xlink:arc>
        <xlink:title>the link title</xlink:title>
    </rdf:description>
  </rdf:rdf>
  ...
</element>