[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
[xml-dev] ArchForns and LPDs
- From: Arjun Ray <arayq2@gmail.com>
- To: xml-dev <xml-dev@lists.xml.org>
- Date: Sat, 24 Jul 2021 23:32:13 -0400
On Sat, 24 Jul 2021 10:26:09 +0200, Marcus Reichardt
<u123724@gmail.com> wrote:
| (Now SGML also has LPDs, a type of declaration set available in
| addition to DTDs, to basically do the same thing, and that can be even
| pipelined OOTB; it's unclear to me why archforms didn't extend LPDs
| but rather invented it's own IS10744 PI for basically the same thing
| without adding power where it was needed, such as for dealing better
| with attribute mappings or filtering).
A tangled tale, and I'm not sure that, working from memory, I have all
the details correct (as I wasn't there when the relevant decisions
were made.)
LPDs were defective in a number of ways, the most significant of which
was that notation declarations were not - and still are not - allowed
in them. Another problem was that LPDs come between DTDs and instance
data, so you have to split documents into separate DTD and text entity
components to splice an LPD in between. There is no easy way to just
"layer" an LPD on top of a regular parse process.
And, to top it off, the link process itself was mis-specified in the
standard. The SGML Handbook is a hindrance here, as it paints a false
picture; or rather, paints a picture in line with "spirit" but not the
"letter" of the standard. Section 12.4 "Current Link Set" in the
Handbook has this:
: The principles for determining the current link set are similar to
: those for determining the current short reference map (see 11.6.3).
: Unlike short reference maps, however, where the current map is the
: only one that is considered at any point in time, the current link
: set is only the first to be searched for an applicable link rule.
: If not found, the link set of the parent element is searched and so
: on backward to the initial link set.
That's the "spirit", or what was intended. But the "letter" of the
standard has _identical_ wording between 11.6.3 for short reference
maps and 12.4 for link sets. So, the hierarchical treatment was
mandated to be the same - a serious blunder in the wording. In the
event, the treatment for short reference maps "won", probably by dint
of greater applicability.
Which made LINk unusable for architectural mappings (without serious
redundancy.)
So, a different mechanism altogether had to be invented to declare and
use ArchForms.
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]