[Home] [By Thread] [By Date] [Recent Entries]
On Sat, 24 Jul 2021 10:26:09 +0200, Marcus Reichardt <u123724@g...> 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] |

Cart



