[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Implications, if any, for maprefs in reltablel?
This came up on the DITA User list today: a user was trying to use a mapref within a relcell to refer to the current map in order to create relationships between the current map and some external resources. In thinking about this and in rereading the reference entry for relationship tables, it's clear the reltable design was entirely focused on topic-to-topic relationships. In addition, since reltables predated the ability to use topicrefs to point to maps, I don't think anyone ever thought about the implications of a mapref in a relationship table. The use case from DITA Users did point up that there's no defined way to say "this map" (meaning this root map) within a relationship table. That is, there's nothing you could put in a relcell that would mean "I'm relating the root map containing this relationship table to the things linked from the other cells of this relrow". I'm not suggesting we try to fix that in 1.3, just observing that it is the case. However, I think we need to at least think about whether we need to say anything about what it means to have a mapref within a relationship table cell or if that should even be allowed. For example, I could do this: <reltable> <relrow> <relcell> <mapref href="submap-01.ditamap"/> </relcell> <relcell> <topicref keyref="resource-01"/> </relcell> </relrow> </reltable> My expectation for this would be that the topicrefs in the referenced map would be treated as though they had occurred directly within the relcell and that appears to be what the OT does based on my testing just now. In the case of referencing the current root map, per the current rules, that fails because you can't have a recursive map reference. Of course, we could decide that for DITA 1.3 referencing the root map has a special meaning in reltables, but I'm definitely *not* suggesting we add that, just observing that it would be a not-unreasonable way to approach the issue. But since this is the first time I think anyone has mentioned it, it's not a critical design issue. For DITA 1.3 we've added a meaning for peer-scope map references. So you could do this: <reltable> <relrow> <relcell> <mapref href="../pub02/pub02.ditamap" scope="peer" keyscope="pub02" /> </relcell> <relcell> <topicref keyref="resource-01"/> </relcell> </relrow> </reltable> In that case, the relationship could only be between the peer publication and the other ends of the relationship--it wouldn't make sense to relate all the topics in the peer map. In this case, it would be sensible enough, for example, to generate a cross reference to the target publication from the related local topics--there's enough information in the to be able to do that in the context of a more general cross-deliverable-link-capable processor. That case is clearly not explicitly addressed in the current reltable language reference entries. Should it be? I certainly didn't consider this case during the development of the cross-deliverable linking proposal. It's probably OK to continue to say nothing since we've made it this far and I think the behavior I've just outlined is a pretty reasonable way to interpret the spec as it currently is. But I wanted to at make sure that we had at least considered the case of maprefs within reltables as it's obviously been overlooked for a long time. Cheers, E. ————— Eliot Kimber, Owner Contrext, LLC http://contrext.com
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]