Article View: comp.text.sgml
Article #619Re: FrameBuilder HyTime Stuff
From: drmacro
Date: Mon, 11 Jan 1993 15:42
Date: Mon, 11 Jan 1993 15:42
58 lines
2914 bytes
2914 bytes
In an earlier posting, I showed a HyTime example that
used nameloc to create a location chain ending in a dataloc
element that located character data in a non-SGML file.
I had though that HyTime required a nameloc element to
create a location ladder, but I apparently misread the standard
(that's what I get for creating appends early on Saturday
mornings).
Looking back over ISO 10744, I can't find anything that would
suggest I *can't* refer directly to a dataloc by its own
ID, allowing me to reduce my somewhat convoluted ContentRefSpec
element to no more than an application-specific instance
of the dataloc form (further simplified by allowing an
ENTITY= attribute directly on ContentRefSpec in place of
locsrc=):
<!ELEMENT ContentRefSpec - O (marklist*) >
<!ATTLIST ContentRefSpec
HyTime NAME #FIXED dataloc
DataContainter ENTITY #REQUIRED --replaces locsrc--
>
Note that the minimized markup from my earlier posting and
the markup for the above definition are the same: ContentRefSpec
containing marklists defining the data positions within the data
entity. I've just simplified the underlying system itself.
I might want to keep my original, more complex, definition
if I need the following:
o The need to refer to multiple dataloc elements in order to
define an aggregate location. This requires a nameloc in order
to provide a single local ID for multiple targets. This is the
power of the indirection of nameloc. Think of it as an amplifier,
where each opportunity for indirection is an opportunity to
specify more target anchors for the links.
o The desire to provide application-specific elements with
ContentRefSpec. For example, I like to require a description
element in elements to make the elements self-documenting,
e.g.:
<ContentRefSpec><desc>Purpose of this link</>
<marklist>...
</ContentRefSpec>
o Complete separation of HyTime elements and application-specific
elements. Using this design principle removes the need to
require HyTime support for support of your application if the
functions HyTime provides are optional within your application. It
also makes the boundary between your application and HyTime
very clear and precise.
Eliot Kimber Internet: drmacro@ralvm13.vnet.ibm.com
Dept E14/B500 IBMMAIL: USIB2DK9@IBMMAIL
Network Programs Information Development Phone: 1-919-543-7091
IBM Corporation
Research Triangle Park, NC 27709
Technical Details
Message-ID:
<19930111.074459.59@almaden.ibm.com>Path:
arc1-ca.pugleaf.net!sparky!uunet!ralvm13.VNET.IBM.COMShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!ralvm13.VNET.IBM.COM
From: drmacro@ralvm13.VNET.IBM.COM
Message-ID: <19930111.074459.59@almaden.ibm.com>
Date: Mon, 11 Jan 93 10:42:28 EST
Newsgroups: comp.text.sgml
Subject: Re: FrameBuilder
HyTime Stuff
Disclaimer: This posting represents the poster's views, not those of IBM
News-Software: UReply 3.1
Lines: 58