5. Extended Link Groups

5.1 Identifying Extended Link groups

XHL describes the syntax of link elements embedded in documents. Many applications may wish to process not only the links to external documents embedded in that document, but also links from other documents which point into the document currently being displayed. It may, for example, be desirable to highlight the located parts of such external links to make the fact that other documents have commented on the displayed document apparent.

Where it is important to know which other documents qualify the current document, the Extended Link Group (XLG) element may be used to reference documents that form an interlinked document group. Each referenced document, which must have been declared as an external text entity in the document's DTD, is identified using the DOC attribute of an Extended Link Document (XLD) element, which is a child element of the XLG.

XLG and XLD elements can be recognized by the presence of an XHL- attribute with a value of either XLG or XLD on the relevant element, through the use of two XML reserved element types, -XML-XLG and -XML-XLD, or through other external mechanisms.

The declaration for the XML form of the XLG and XLD elements is:

<!ELEMENT -XML-XLG (-XML-XLD+)>
<!ELEMENT -XML-XLD EMPTY>
<!ATTLIST -XML-XLG
XHL- CDATA #FIXED "XLG"
>
<!ATTLIST -XML-XLD
XHL- CDATA #FIXED "XLD"
DOC ENTITY #REQUIRED
PRESENCE (REQUIRED|OPTIONAL) "OPTIONAL"
SHOW (MLINKS|ALINKS|BOTH) #IMPLIED
>

The PRESENCE attribute can be used to indicated which entities must be available to the client prior to display of the form. Where the XLD entry is changed from the default PRESENCE=OPTIONAL to the alternative PRESENCE=REQUIRED the entity must be retrievable from the specified source, or the source associated with the local XML catalog, before the referencing document can be displayed.

The SHOW attribute can be used to indicate whether all references from document should be displayed, or only those that represent multi-headed links, or in-line links. By default the system will imply which values should be defined, but users can override the default by specifying that element whose XHL type is MLINK or ALINK should be displayed. Where both options are required the SHOW=BOTH option can be used.

Question: Should a finer granularity be allowed so that, for instance, elements of a specific HRTYPE or GI can be associated with different rules?

The -XML-XLG element should always be an immediate descendent of the base document element that forms the root of the document tree. It should be entered before any elements containing displayable text.

Question: Is it valid to have more than one -XML-XLG element in a document?

5.2 LINKS and LINKSET Elements

To help software to find MLINK type links efficiently, two special elements have been defined, -XHL-LINKS and -XHL-LINKSET. These elements are always immediate descendents of the base document element that forms the root of the document tree. They should be entered before any elements containing displayable text.

The -XHL-LINKS element can be used to identify multilinks which need to be known to the software, and available to the user, at all times while the current document is being displayed. Whilst most links will need to be identified during loading, whether defined at the start of the document or within its contents, links requiring the identification of elements via TEI locators, and other forms of query, will particularly benefit from being defined as part of a separate -XHL-LINKS element at the start of the document rather than at the point of reference.

Where a set of MLINK definitions is to be shared by an extended link group the -XHL-LINKSET element should be used as the container for the link specifications. This tells the application that the links are to remain valid while any document identified by a -XML-XLD element associated with the current document is valid.

To promote the sharing of links sets, an XML document can consist of just -XML-XLG, -XML-XLD and -XML-LINKSET elements. Where such a document is referenced in an -XML-XLD element in another document, all its linked documents and its links are considered to form part of the link group being defined. If one of the documents indentified by a -XML-XLD in the link definition document is itself an XML document that contains a -XML-LINKSET, the referenced linkset is appended to the local linkset.

The declaration for the XML form of the -XML-LINK and -XML-LINKSET elements is:

<!ELEMENT -XML-LINKS (MLINK+)>
<!ELEMENT -XML-LINKSET (MLINK+)>
<!ATTLIST -XML-LINK
XHL- CDATA #FIXED "LINKS" >
<!ATTLIST -XML-LINKSET
XHL- CDATA #FIXED "LINKSET" >