$Revision: 1666 $
$Date: 2002-06-12 07:19:37 -0400 (Wed, 12 Jun 2002) $
olink — A link that addresses its target indirectly, through an entity
olink ::= (#PCDATA|footnoteref
|xref
|biblioref
|abbrev
|acronym
|citation
|citerefentry
|citetitle
|citebiblioid
|emphasis
|firstterm
|foreignphrase
|glossterm
|termdef
|footnote
|phrase
|orgname
|quote
|trademark
|wordasword
|personname
|link
|olink
|ulink
|action
|application
|classname
|methodname
|interfacename
|exceptionname
|ooclass
|oointerface
|ooexception
|package
|command
|computeroutput
|database
|envar
|errorcode
|errorname
|errortype
|errortext
|filename
|function
|guibutton
|guiicon
|guilabel
|guimenu
|guimenuitem
|guisubmenu
|hardware
|interface
|keycap
|keycode
|keycombo
|keysym
|literal
|code
|constant
|markup
|medialabel
|menuchoice
|mousebutton
|option
|optional
|parameter
|prompt
|property
|replaceable
|returnvalue
|sgmltag
|structfield
|structname
|symbol
|systemitem
|uri
|token
|type
|userinput
|varname
|nonterminal
|anchor
|author
|authorinitials
|corpauthor
|corpcredit
|modespec
|othercredit
|productname
|productnumber
|revhistory
|remark
|subscript
|superscript
|inlinegraphic
|inlinemediaobject
|inlineequation
|synopsis
|cmdsynopsis
|funcsynopsis
|classsynopsis
|fieldsynopsis
|constructorsynopsis
|destructorsynopsis
|methodsynopsis
|indexterm
|beginpage
)*
Name | Type | Default |
xrefstyle | CDATA | None |
targetdocent | ENTITY | None |
localinfo | CDATA | None |
linkmode | IDREF | None |
targetdoc | CDATA | None |
targetptr | CDATA | None |
type | CDATA | None |
Unlike Link
and ULink
, the semantics of
OLink
are application-specific. OLink
provides
a mechanism for establishing links across documents, where
ID/IDREF linking is not possible and ULink
is inappropriate.
In general terms, the strategy employed by OLink
is to
point to the target document via an
external general entity, and point
into that document in some application-specific way.
Formatted inline.
OLink
points to its target primarily with the
TargetDocEnt
attribute.
TargetDocEnt
must be the name of an
entity (previously declared in the DTD or in the document
subset).
Because TargetDocEnt
is an entity attribute,
the entity used as its value must be declared with a notation.
Because the target is usually another SGML or XML document, the
notation SGML
is most often used:
<!ENTITY myotherdoc SYSTEM "myotherdoc.sgm" NDATA SGML>
The semantics of the link are controlled by three other attributes:
LinkMode
,
LocalInfo
, and
Type
.
The LinkMode
attribute points to a ModeSpec
. The content of
ModeSpec
describes the semantic of the link in an entirely
application-specific way.
The values of
LocalInfo
and
Type
may also influence the application.
For example, if the ModeSpec
describes some sort of query,
LocalInfo
might hold the query text
(allowing multiple OLink
s to use the same ModeSpec
to achieve different queries with the same query engine).
Linking elements must not be nested within other linking elements (including themselves). Because DocBook is harmonizing towards XML, this restriction cannot easily be enforced by the DTD. The processing of nested linking elements is undefined.
The InterfaceDefinition
element will be discarded in DocBook V4.0. It will no longer be available
in the content model of this element.
These elements contain olink:
abbrev
, ackno
, acronym
, action
, application
, artpagenums
, attribution
, authorinitials
, bibliocoverage
, biblioid
, bibliomisc
, bibliorelation
, bibliosource
, bridgehead
, citation
, citebiblioid
, citetitle
, city
, classsynopsisinfo
, code
, collabname
, command
, computeroutput
, confdates
, confnum
, confsponsor
, conftitle
, contractnum
, contractsponsor
, contrib
, corpauthor
, corpcredit
, corpname
, country
, database
, date
, edition
, email
, emphasis
, entry
, fax
, figure
, filename
, firstname
, firstterm
, foreignphrase
, funcparams
, funcsynopsisinfo
, function
, glosssee
, glossseealso
, glossterm
, hardware
, holder
, honorific
, indexdiv
, informalfigure
, interfacename
, invpartnumber
, isbn
, issn
, issuenum
, jobtitle
, keycap
, label
, lineage
, lineannotation
, link
, literal
, literallayout
, lotentry
, manvolnum
, member
, modespec
, msgaud
, olink
, option
, optional
, orgdiv
, orgname
, otheraddr
, othername
, pagenums
, para
, parameter
, phone
, phrase
, pob
, postcode
, primary
, primaryie
, productname
, productnumber
, programlisting
, property
, pubdate
, publishername
, pubsnumber
, quote
, refentry
, refentrytitle
, refmiscinfo
, refnamediv
, refpurpose
, releaseinfo
, remark
, replaceable
, revnumber
, revremark
, screen
, screeninfo
, secondary
, secondaryie
, see
, seealso
, seealsoie
, seeie
, seg
, segtitle
, seriesvolnums
, shortaffil
, simpara
, state
, street
, subscript
, subtitle
, superscript
, surname
, synopsis
, systemitem
, td
, term
, termdef
, tertiary
, tertiaryie
, th
, title
, titleabbrev
, tocback
, tocentry
, tocfront
, trademark
, ulink
, userinput
, volumenum
, wordasword
, year
.
The following elements occur in olink:
abbrev
, acronym
, action
, anchor
, application
, author
, authorinitials
, beginpage
, biblioref
, citation
, citebiblioid
, citerefentry
, citetitle
, classname
, classsynopsis
, cmdsynopsis
, code
, command
, computeroutput
, constant
, constructorsynopsis
, corpauthor
, corpcredit
, database
, destructorsynopsis
, email
, emphasis
, envar
, errorcode
, errorname
, errortext
, errortype
, exceptionname
, fieldsynopsis
, filename
, firstterm
, footnote
, footnoteref
, foreignphrase
, funcsynopsis
, function
, glossterm
, guibutton
, guiicon
, guilabel
, guimenu
, guimenuitem
, guisubmenu
, hardware
, indexterm
, inlineequation
, inlinegraphic
, inlinemediaobject
, interface
, interfacename
, keycap
, keycode
, keycombo
, keysym
, link
, literal
, markup
, medialabel
, menuchoice
, methodname
, methodsynopsis
, modespec
, mousebutton
, nonterminal
, olink
, ooclass
, ooexception
, oointerface
, option
, optional
, orgname
, othercredit
, package
, parameter
, personname
, phrase
, productname
, productnumber
, prompt
, property
, quote
, remark
, replaceable
, returnvalue
, revhistory
, sgmltag
, structfield
, structname
, subscript
, superscript
, symbol
, synopsis
, systemitem
, termdef
, token
, trademark
, type
, ulink
, uri
, userinput
, varname
, wordasword
, xref
.
LinkMode
points to the ModeSpec
which provides additional application-specific information for resolving this
OLink
.
LocalInfo
hold additional information
that may be used with the ModeSpec
(pointed to by LinkMode
) by the application
when resolving this OLink
.
TargetDocEnt
specifies the name of an entity
that is to be used as part of the OLink
. Exactly how the
link is resolved is application dependent and may be influenced by the
MoreInfo
and
LocalInfo
attributes.
Type
is available for application-specific
customization of the linking behavior.
In this example, we see how an OLink
might be used for
searching. Here the ModeSpec
describes the search query
(in a fictitious and entirely concocted syntax): “look in the titles
of sections and return links using the title as the text of the link”.
When the user selects the link, the application is expected to perform
the query and then might display the list of titles as a pop-up window
in the user interface.
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ <!ENTITY refbook SYSTEM "refbook.sgm" NDATA SGML> ]> <chapter> <chapterinfo> <modespec id="s1query">query in sect*, title return link text title</modespec> </chapterinfo> <title>Printing</title> <para> Blah, blah, blah. </para> <sect1><title>See Also</title> <para> For more information <olink targetdocent="refbook" linkmode="s1query" localinfo="print or printing">about printing</olink>, consult the <ulink url="refbook.sgm">reference manual</ulink>. </para> </sect1> </chapter>