OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

dita message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [dita] Direct Links In a CCMS environment


Linking in the face of reuse requires some form of indirection. In DITA this is keys.

So you can either use keys or you can use the proprietary equivalent.

There is no other way to do it.

That is, there is no mechanism that would be A) functionally equivalent to keys and B) simpler than keys.

Doing address management in versioned hyperdocuments that include the possibility or fact of re-use is inherently difficult and cannot be solved without some form of indirection.

Keys is the indirection mechanism in DITA.

Docbook has "OLinks", which are a weaker form of indirection, but it requires the use of implementation-specific "olink databases". 

The DocBook mechanism is workable only because (historically) DocBook did not do re-use, so there was a one-to-one relationship between DocBook documents (and more importantly, elements within those documents) and the deliverables to which they could be published. 

This is big simplifying assumption and allows having a single, simple database that maps source elements to deliverable targets. (And remember that XInclude is *not* re-use, it's copy-and-paste because it is functionally equivalent to external parsed entities because the elements referenced via XInclude are parsed as though they were were part of the referencing document. XInclude does provide for ID rewriting when the IDs of included elements would conflict with the IDs of other elements in the same XML document, but that only fixes a design flaw in SGML (inherited by XML), it does not enable true use-by-reference of content in the way that DITA does.)

Cheers,

E.

--
Eliot Kimber
http://contrext.com
 

ïOn 11/9/20, 9:08 PM, "Jim Tivy" <dita@lists.oasis-open.org on behalf of jimt@bluestream.com> wrote:

    Hi Folks

    xrefs are often used to link from one DITA source topic to another - 
    perhaps not always best practice but used nonetheless. In a CCMS an xref 
    can either be to the same publication (same pub link) or to another 
    publication link (cross pub link).  A CCMS will typically host all the 
    publications of a particular project.

    As well, xrefs can be a link to any number of "uses" of a topic within a 
    publication.  A "use" refers to a single topicref to a given topic in 
    the expanded map of a publication.

    So in a CCMS, a full direct address to a topic would be composed of 
    {publicationId}{topicUri}{useId}#{topicXmlId}/{elementId}. Certainly 
    {publicationId} and {useId} could be dropped for simpler same pub 
    cases.  But for the full on cross pub and use location cases, all 5 
    parts are needed.

    Unfortunately right now in DITA you can only directly address 
    {topicUri}/#{topicXmlId}/{elementId}.

    We have numerous customers that wish to have direct cross publication 
    linking at a source level without the need for keys. Once you have 
    addressing at the source level the user can move around freely through 
    the source in the CCMS.  As well, the CCMS can enforce link integrity 
    across publication. As well, at publish time these source links can be 
    converted too other link forms that work in target delivery platforms 
    removing the need for subsequent explicit <resourceId> entries.

    So far I am not aware of a simple DITA way of doing cross publication 
    links aside from the key proposal.  As well, our discussion of 
    <resourceid> has focused on external identity but not source identity.  
    Is this a shortcoming or am I missing something?

    Jim


    ---------------------------------------------------------------------
    To unsubscribe from this mail list, you must leave the OASIS TC that 
    generates this mail.  Follow this link to all your TCs in OASIS at:
    https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php 






[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]