SlideShare une entreprise Scribd logo
1  sur  36
They Worked Before, What Happened?
Understanding DITA Cross-Book Links
11/13/2015 Contrext, LLC 1
Eliot Kimber
Contrext, LLC
Tekom 2015, Stuttgart, Germany
About the Author
• Independent consultant focusing on DITA analysis,
design, and implementation
• Doing SGML and XML for cough 30 years cough
• Founding member of the DITA Technical Committee
• Founding member of the XML Working Group
• Co-editor of HyTime standard (ISO/IEC 10744)
• Primary developer and founder of the DITA for
Publishers project
• Author of DITA for Practitioners, Vol 1 (XML Press)
11/13/2015 Contrext, LLC 2
Agenda
• A story about migration to DITA
• Cross-book links in legacy content
• DITA introduces reuse, which breaks cross-
document linking
• DITA 1.3 adds cross-deliverable linking support
11/13/2015 Contrext, LLC 3
A LEGACY MIGRATION STORY
11/13/2015 Contrext, LLC 4
A Story Part 1: Legacy Days
• Big company has DocBook documents for
their publications
• These books have cross-document links to
other books ("olink" in DocBook)
• These links work in the HTML and PDF
generated from the DocBook
11/13/2015 Contrext, LLC 5
Note on DocBook
• Focusing on DocBook here because it is a
typical pre-DITA legacy XML format
• Other non-DITA XML applications may have
similar cross-book linking features
• May have done similar linking in unstructured
formats (e.g., FrameMaker)
• Not picking on DocBook specifically
• Point is going from low-reuse to high-reuse
content
11/13/2015 Contrext, LLC 6
Part 2: But then DITA Happened
• The DocBook books are converted to DITA
• Now the writers have lots of nice topics and book
maps
• They produce their HTML and PDF
• Suddenly the cross-book links stop working
• The tools support people don't understand why
• The writers say to them "it worked in DocBook,
you broke it!"
11/13/2015 Contrext, LLC 7
What Happened?
• Why did the links work in DocBook?
• Why did they stop working in DITA?
• What can we do to fix it?
11/13/2015 Contrext, LLC 8
BEFORE DITA: NO REUSE
11/13/2015 Contrext, LLC 9
DocBook: No Reuse
• In DocBook every book is a single XML document
• There is no reuse
• For each DocBook source document there is a small set
of deliverables
• DocBook <olink> points to a target DocBook XML
document
– Can include application-specific details for resolving the
link
• Works because there is no re-use
• Depends on non-standard application processing
("magic")
11/13/2015 Contrext, LLC 10
DocBook Cross-Book Links
11/13/2015 Contrext, LLC 11
Book 1
<book>
…
<olink
targetdoc="book2.xml"
targetptr="sect-04"
/>
Book 2
<book>
…
<section id="sect-04">
…
</section>
…
</book>
In DocBook,
As Authored ≈ As Delivered
• For a given link out of a document, the link
exists in exactly one publication
• For a given target in a document, the target
exists in exactly one publication
• Thus direct URI references from one DocBook
document as authored to another DocBook
document as authored are unambiguous for
those documents as delivered.
11/13/2015 Contrext, LLC 12
DITA INTRODUCES REUSE
11/13/2015 Contrext, LLC 13
DITA Reuse Breaks Cross-
Document Linking
• In DITA the same topic may be used in multiple
publications
• One-to-many relationship between topics and
deliverables
• For a link from a topic to another topic, what is
the target topic as delivered?
• The target topic does not know where it is (or will
be) used
• A direct URI reference to a topic does not
establish any use context for the topic
11/13/2015 Contrext, LLC 14
Direct Topic-to-Topic Links
11/13/2015 Contrext, LLC 15
Topic 1
<topic id="topic-01">
…
<xref href=="topic-02.dita#topic-02/sect-04"
/>
Topic 2
<topic id="topic-02">
…
<section id="sect-04">
…
</topic>Where are
the maps?
Wait, What?
• Yes, DITA just broke cross-document linking
• Simple approaches to addressing are not
going to work
• Seriously?
• Seriously.
• In particular, the direct URI references used in
no-reuse applications like DocBook will not
work in DITA
11/13/2015 Contrext, LLC 16
In DITA,
As Authored ≠ As Delivered
11/13/2015 Contrext, LLC 17
Topic 1
<xref
href="topic-02.dita#t1/fig1"
/>
Topic 2
<topic id="t1">
…
<fig id="fig1">
…
</topic>
Map 1
Map 2
Map 3
Same Topic: Multiple Deliverables
• Topic 1 is used in two maps: Map 1 and Map 2
• Topic 2 is used in two maps: Map 1 and Map 3
• Topic 1 points directly to Topic 2
• Which use of Topic 2 should Topic 1 as
delivered point to?
– The use in Map 1?
– The use in Map 3?
• No way to know given only information in the
DITA source
11/13/2015 Contrext, LLC 18
DITA 1.2: Keys
• DITA 1.2 introduced indirect addressing: Keys
and key references
• A key is defined in a map
• Binds a key name to a resource (e.g., a topic)
• The same key can be bound to different
resources in different maps
• Now possible to have use-context-specific links
from re-used topics
11/13/2015 Contrext, LLC 19
1.2 Keys Handle Reuse of Links
Within Publications
• Given a topic with a link where the topic is
used in two different maps…
• …map author can define the key-to-target
binding so link resolves to the appropriate
target within the same publication
11/13/2015 Contrext, LLC 20
DITA 1.2 Key References
11/13/2015 Contrext, LLC 21
Topic 1
<xref keyref="topic-02"
/>
Topic 2
…
<fig id="fig1">
…
Map 1
<keydef
keys="topic-02"
href="topic-02.dita"/>
DITA 1.2 Keys Don't Help Cross-
Deliverable Links
• Key-to-resource binding limited to a single root map
• No way to say "this key binds to that topic as used in
that other root map"
• Could bind key to topic as delivered
<keydef key="topic-02"
href="http://mycorp.com/pubs/pub-02/topics/
topic-02.html"
format="html"
scope="external"/>
• Only works for a single deliverable
• Not interchangeable or generally reliable
• Same problem as DocBook olink
11/13/2015 Contrext, LLC 22
Wait, What?
• Yeah, DITA 1.2 didn't address cross-book
linking
• Seriously?
• Seriously.
• But we fixed it in DITA 1.3
11/13/2015 Contrext, LLC 23
DITA 1.3 CROSS-
DELIVERABLE LINKS
11/13/2015 Contrext, LLC 24
DITA 1.3: Scoped Keys
• DITA 1.3 adds key scopes
• A key scope establishes a distinct key space
within a root map and gives it a prefix:
<map>
<topicgroup keyscope="scope-01">
<topicref keys="key-01" …/>
</topicgroup>
…
</map>
• Can refer to scope-qualified keys from outside the
scope:
<p>See <xref keyref="scope-01.key-01"/> …
11/13/2015 Contrext, LLC 25
Relating Root Maps Together
• DITA 1.3 defines a new meaning for
@scope="peer" on map references
– Target map is an independent root map
– That is, the source for one or more deliverables
• If you put a scope on the map reference…
• …you can refer to keys defined in the target
map
• Enables unambiguous cross-document links
11/13/2015 Contrext, LLC 26
Ambiguity Resolved
• Topic 1:
<xref keyref="topic-02"/>
• Map 1:
<topicref keys="topic-02"
href="topic-02.dita"/>
• Map 2:
<keydef keys="topic-02"
keyref="map-03.topic-02"/>
<mapref keyscope="map-03"
scope="peer"
href="map-03.ditamap"/>
• Map 3:
<topicref keys="topic-02" href="topic-02.dita"/>
11/13/2015 Contrext, LLC 27
DITA 1.3 Cross-Deliverable Links
11/13/2015 Contrext, LLC 28
Topic 1
<xref keyref="topic-02"
/>
Topic 2
…
<fig id="fig1">
…
Map 1
<keydef
keys="topic-02"
href="topic-02.dita"/>
Map 2
<keydef
keys="topic-02"
keyref="map-03.topic-02"/>
<mapref scope="map-03"…/>
Map 3
<keydef
keys="topic-02"
href="topic-02.dita"/>
Ambiguity Resolved (cont.)
• When topic 1 is used in Map 1, key reference
"topic-02" resolves to topic-02 as used in
Map 1
• When topic 2 is used in Map 2, key reference
"topic-02" resolves to topic-02 as used in Map
3
• Map authors get to decide what the binding
for any key is, including redirecting a key to a
key defined in a different root map
11/13/2015 Contrext, LLC 29
Producing Deliverables
• DITA 1.3 enables unambiguous links as
authored
• Still a challenge to produce deliverables
• A given root map may result in many
deliverables
• For a given map-to-map link, which
deliverable should the link get bound to?
• No simple answer
11/13/2015 Contrext, LLC 30
Production Challenges
• Requires either consistent business rules or a way
for authors to control deliverable linking details
• Obvious business rule is "like links to like"
– E.g., links from HTML go to HTML, links from PDFs go
to PDFs
• Not always possible or practical to impose this
rule
– May need PDFs to link to HTML or HTML to link to
PDFs, for example.
11/13/2015 Contrext, LLC 31
Generic Solution: Use Intermediate
Key Definitions
• Two passes:
– Pass 1: Generate deliverable-specific key
definitions for all anchors in all documents that
link to each other
– Pass 2: Documents include the intermediate key
definitions for the other documents they link to
• Effect is to replace key definitions that point to
source XML with key definitions that point to
deliverables
11/13/2015 Contrext, LLC 32
Author Control of Deliverable-
Specific Links
• In theory, authors could manually adjust the
intermediate key definitions
• In practice, probably use private conventions
in links or key definitions as authored to
indicate deliverable linking policy
• This starts to look a lot like the @type and
@targetptr attributes on DocBook <olink>
11/13/2015 Contrext, LLC 33
Summary
• If there's no re-use, cross-book linking is relatively easy:
source ≈ deliverable
• Re-use breaks this simple model: direct references become
ambiguous when re-used
• DITA 1.2 doesn't solve the problem for cross-book links
– No way to explicitly address keys in other root maps
• DITA 1.3 solves the problem:
– Provides a way to explicitly address other root maps
– Key scopes enable redirecting key references to keys in other
root maps
• Processing is still a challenge: requires more complicated
data processing and configuration management
11/13/2015 Contrext, LLC 34
Resources
• DITA 1.3: https://www.oasis-
open.org/news/announcements/dita-version-
1-3-committee-specification-01-is-published
• Me: ekimber@contrext.com,
http://contrext.com
11/13/2015 Contrext, LLC 35
Your opinion is important to us! Please tell us what you thought of the
lecture. We look forward to your feedback via smartphone or tablet under
http://IN24.honestly.de
or scan the QR code
The feedback tool will be available even after the conference!

Contenu connexe

Tendances

DITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
DITA Quick Start Webinar Series: Getting Started with the DITA Open ToolkitDITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
DITA Quick Start Webinar Series: Getting Started with the DITA Open ToolkitSuite Solutions
 
Painless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XMLPainless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XMLScott Abel
 
Integrating Flink with Hive - Flink Forward SF 2019
Integrating Flink with Hive - Flink Forward SF 2019Integrating Flink with Hive - Flink Forward SF 2019
Integrating Flink with Hive - Flink Forward SF 2019Bowen Li
 
General Architecture for Generation of Slide Presentations
General Architecture for Generation of Slide PresentationsGeneral Architecture for Generation of Slide Presentations
General Architecture for Generation of Slide PresentationsContrext Solutions
 
Dita documentation and open source sfd szeged 2011
Dita documentation and open source   sfd szeged 2011Dita documentation and open source   sfd szeged 2011
Dita documentation and open source sfd szeged 2011Kristof Van Tomme
 
What “Model” DITA Specializations Can Teach About Information Modelinc
What “Model” DITA Specializations Can Teach About Information ModelincWhat “Model” DITA Specializations Can Teach About Information Modelinc
What “Model” DITA Specializations Can Teach About Information ModelincDon Day
 
MetadataTheory: Metadata Tools (7th of 10)
MetadataTheory: Metadata Tools (7th of 10)MetadataTheory: Metadata Tools (7th of 10)
MetadataTheory: Metadata Tools (7th of 10)Nikos Palavitsinis, PhD
 
OASIS DITA History(2009)
OASIS DITA History(2009)OASIS DITA History(2009)
OASIS DITA History(2009)Don Day
 

Tendances (10)

DITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
DITA Quick Start Webinar Series: Getting Started with the DITA Open ToolkitDITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
DITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
 
Painless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XMLPainless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XML
 
DITA Quick Start
DITA Quick StartDITA Quick Start
DITA Quick Start
 
Integrating Flink with Hive - Flink Forward SF 2019
Integrating Flink with Hive - Flink Forward SF 2019Integrating Flink with Hive - Flink Forward SF 2019
Integrating Flink with Hive - Flink Forward SF 2019
 
General Architecture for Generation of Slide Presentations
General Architecture for Generation of Slide PresentationsGeneral Architecture for Generation of Slide Presentations
General Architecture for Generation of Slide Presentations
 
Dita documentation and open source sfd szeged 2011
Dita documentation and open source   sfd szeged 2011Dita documentation and open source   sfd szeged 2011
Dita documentation and open source sfd szeged 2011
 
Metadata lecture 5 part 2
Metadata lecture 5 part 2Metadata lecture 5 part 2
Metadata lecture 5 part 2
 
What “Model” DITA Specializations Can Teach About Information Modelinc
What “Model” DITA Specializations Can Teach About Information ModelincWhat “Model” DITA Specializations Can Teach About Information Modelinc
What “Model” DITA Specializations Can Teach About Information Modelinc
 
MetadataTheory: Metadata Tools (7th of 10)
MetadataTheory: Metadata Tools (7th of 10)MetadataTheory: Metadata Tools (7th of 10)
MetadataTheory: Metadata Tools (7th of 10)
 
OASIS DITA History(2009)
OASIS DITA History(2009)OASIS DITA History(2009)
OASIS DITA History(2009)
 

En vedette

Sergio et Jorge
Sergio  et JorgeSergio  et Jorge
Sergio et JorgeSchool
 
Creating reusable screencasts
Creating reusable screencastsCreating reusable screencasts
Creating reusable screencastsMatt Sullivan
 
Walk Through-Mr. Isacc
Walk Through-Mr. IsaccWalk Through-Mr. Isacc
Walk Through-Mr. Isacclawinfree
 
Gartner starting and scaling dev ops
Gartner starting and scaling dev opsGartner starting and scaling dev ops
Gartner starting and scaling dev opsTapabrata Pal
 
토픽기반 컨텐츠관리와 실시간 개발 지원방안
토픽기반 컨텐츠관리와 실시간 개발 지원방안토픽기반 컨텐츠관리와 실시간 개발 지원방안
토픽기반 컨텐츠관리와 실시간 개발 지원방안Seonbae Kim
 

En vedette (9)

Sergio et Jorge
Sergio  et JorgeSergio  et Jorge
Sergio et Jorge
 
Creating reusable screencasts
Creating reusable screencastsCreating reusable screencasts
Creating reusable screencasts
 
Walk Through-Mr. Isacc
Walk Through-Mr. IsaccWalk Through-Mr. Isacc
Walk Through-Mr. Isacc
 
(Ab)using Smart Cities - Whitepaper
(Ab)using Smart Cities - Whitepaper(Ab)using Smart Cities - Whitepaper
(Ab)using Smart Cities - Whitepaper
 
Gartner starting and scaling dev ops
Gartner starting and scaling dev opsGartner starting and scaling dev ops
Gartner starting and scaling dev ops
 
Secure communication
Secure communicationSecure communication
Secure communication
 
ACTIVIDAD DE APRENDIZAJE 8
ACTIVIDAD DE APRENDIZAJE  8 ACTIVIDAD DE APRENDIZAJE  8
ACTIVIDAD DE APRENDIZAJE 8
 
토픽기반 컨텐츠관리와 실시간 개발 지원방안
토픽기반 컨텐츠관리와 실시간 개발 지원방안토픽기반 컨텐츠관리와 실시간 개발 지원방안
토픽기반 컨텐츠관리와 실시간 개발 지원방안
 
Oms
OmsOms
Oms
 

Similaire à They Worked Before, What Happened? Understanding DITA Cross-Book Links

DITA 1.3: What's New and Different
DITA 1.3: What's New and DifferentDITA 1.3: What's New and Different
DITA 1.3: What's New and Differentdclsocialmedia
 
DITA 1.3: What's New and Different
DITA 1.3: What's New and DifferentDITA 1.3: What's New and Different
DITA 1.3: What's New and DifferentContrext Solutions
 
What's New in DITA 1.3 (Tekom, Nov 2014)
What's New in DITA 1.3 (Tekom, Nov 2014)What's New in DITA 1.3 (Tekom, Nov 2014)
What's New in DITA 1.3 (Tekom, Nov 2014)Contrext Solutions
 
Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for Keys
Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for KeysManaging Deliverable-Specific Link Anchors: New Suggested Best Practice for Keys
Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for Keysdclsocialmedia
 
The Evolution of DITAs
The Evolution of DITAsThe Evolution of DITAs
The Evolution of DITAsIXIASOFT
 
DITA OT Day 2015 Lightning Talk On The DITA Community Project
DITA OT Day 2015 Lightning Talk On The DITA Community ProjectDITA OT Day 2015 Lightning Talk On The DITA Community Project
DITA OT Day 2015 Lightning Talk On The DITA Community ProjectContrext Solutions
 
Reports and DITA Metrics IXIASOFT User Conference 2016
Reports and DITA Metrics IXIASOFT User Conference 2016Reports and DITA Metrics IXIASOFT User Conference 2016
Reports and DITA Metrics IXIASOFT User Conference 2016IXIASOFT
 
TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse?
TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse? TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse?
TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse? IXIASOFT
 
Joins in a distributed world Distributed Matters Barcelona 2015
Joins in a distributed world Distributed Matters Barcelona 2015Joins in a distributed world Distributed Matters Barcelona 2015
Joins in a distributed world Distributed Matters Barcelona 2015Lucian Precup
 
Joins in a distributed world - Lucian Precup
Joins in a distributed world - Lucian Precup Joins in a distributed world - Lucian Precup
Joins in a distributed world - Lucian Precup distributed matters
 
Overview of DITA 1.3
Overview of DITA 1.3Overview of DITA 1.3
Overview of DITA 1.3IXIASOFT
 
DITA, EPUB, and HTML5: An Update for 2015
DITA, EPUB, and HTML5: An Update for 2015DITA, EPUB, and HTML5: An Update for 2015
DITA, EPUB, and HTML5: An Update for 2015dclsocialmedia
 
Linked Open Citation Database (LOC-DB)
Linked Open Citation Database (LOC-DB)Linked Open Citation Database (LOC-DB)
Linked Open Citation Database (LOC-DB)Kai Eckert
 
Angular Rebooted: Components Everywhere - Carlo Bonamico, Sonia Pini - Codemo...
Angular Rebooted: Components Everywhere - Carlo Bonamico, Sonia Pini - Codemo...Angular Rebooted: Components Everywhere - Carlo Bonamico, Sonia Pini - Codemo...
Angular Rebooted: Components Everywhere - Carlo Bonamico, Sonia Pini - Codemo...Codemotion
 
Angular Rebooted: Components Everywhere
Angular Rebooted: Components EverywhereAngular Rebooted: Components Everywhere
Angular Rebooted: Components EverywhereCarlo Bonamico
 

Similaire à They Worked Before, What Happened? Understanding DITA Cross-Book Links (20)

DITA 1.3: What's New and Different
DITA 1.3: What's New and DifferentDITA 1.3: What's New and Different
DITA 1.3: What's New and Different
 
DITA 1.3: What's New and Different
DITA 1.3: What's New and DifferentDITA 1.3: What's New and Different
DITA 1.3: What's New and Different
 
What's New in DITA 1.3 (Tekom, Nov 2014)
What's New in DITA 1.3 (Tekom, Nov 2014)What's New in DITA 1.3 (Tekom, Nov 2014)
What's New in DITA 1.3 (Tekom, Nov 2014)
 
Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for Keys
Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for KeysManaging Deliverable-Specific Link Anchors: New Suggested Best Practice for Keys
Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for Keys
 
The Evolution of DITAs
The Evolution of DITAsThe Evolution of DITAs
The Evolution of DITAs
 
DITA OT Day 2015 Lightning Talk On The DITA Community Project
DITA OT Day 2015 Lightning Talk On The DITA Community ProjectDITA OT Day 2015 Lightning Talk On The DITA Community Project
DITA OT Day 2015 Lightning Talk On The DITA Community Project
 
Why Is DITA So Hard?
Why Is DITA So Hard?Why Is DITA So Hard?
Why Is DITA So Hard?
 
Reports and DITA Metrics IXIASOFT User Conference 2016
Reports and DITA Metrics IXIASOFT User Conference 2016Reports and DITA Metrics IXIASOFT User Conference 2016
Reports and DITA Metrics IXIASOFT User Conference 2016
 
TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse?
TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse? TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse?
TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse?
 
Joins in a distributed world Distributed Matters Barcelona 2015
Joins in a distributed world Distributed Matters Barcelona 2015Joins in a distributed world Distributed Matters Barcelona 2015
Joins in a distributed world Distributed Matters Barcelona 2015
 
Joins in a distributed world - Lucian Precup
Joins in a distributed world - Lucian Precup Joins in a distributed world - Lucian Precup
Joins in a distributed world - Lucian Precup
 
06 dm2 e_pisa-wp2-no-anim
06 dm2 e_pisa-wp2-no-anim06 dm2 e_pisa-wp2-no-anim
06 dm2 e_pisa-wp2-no-anim
 
Sebastian Hellmann
Sebastian HellmannSebastian Hellmann
Sebastian Hellmann
 
Overview of DITA 1.3
Overview of DITA 1.3Overview of DITA 1.3
Overview of DITA 1.3
 
Cloudant
CloudantCloudant
Cloudant
 
DITA, EPUB, and HTML5: An Update for 2015
DITA, EPUB, and HTML5: An Update for 2015DITA, EPUB, and HTML5: An Update for 2015
DITA, EPUB, and HTML5: An Update for 2015
 
Linked Open Citation Database (LOC-DB)
Linked Open Citation Database (LOC-DB)Linked Open Citation Database (LOC-DB)
Linked Open Citation Database (LOC-DB)
 
EBI Web redesign meeting
EBI Web redesign meetingEBI Web redesign meeting
EBI Web redesign meeting
 
Angular Rebooted: Components Everywhere - Carlo Bonamico, Sonia Pini - Codemo...
Angular Rebooted: Components Everywhere - Carlo Bonamico, Sonia Pini - Codemo...Angular Rebooted: Components Everywhere - Carlo Bonamico, Sonia Pini - Codemo...
Angular Rebooted: Components Everywhere - Carlo Bonamico, Sonia Pini - Codemo...
 
Angular Rebooted: Components Everywhere
Angular Rebooted: Components EverywhereAngular Rebooted: Components Everywhere
Angular Rebooted: Components Everywhere
 

Plus de Contrext Solutions

Stupid DITA Tricks: After-The-Fact Specialization: Treating Aircraft Manuals ...
Stupid DITA Tricks:After-The-Fact Specialization: Treating Aircraft Manuals ...Stupid DITA Tricks:After-The-Fact Specialization: Treating Aircraft Manuals ...
Stupid DITA Tricks: After-The-Fact Specialization: Treating Aircraft Manuals ...Contrext Solutions
 
Loose Leaf Publishing Using Antenna House Formatter and CSS for Pagination
Loose Leaf Publishing Using Antenna House Formatter and CSS for PaginationLoose Leaf Publishing Using Antenna House Formatter and CSS for Pagination
Loose Leaf Publishing Using Antenna House Formatter and CSS for PaginationContrext Solutions
 
Definition of the DITA Glossary: Or How to Get Some Cool Glossary Tools for Free
Definition of the DITA Glossary: Or How to Get Some Cool Glossary Tools for FreeDefinition of the DITA Glossary: Or How to Get Some Cool Glossary Tools for Free
Definition of the DITA Glossary: Or How to Get Some Cool Glossary Tools for FreeContrext Solutions
 
Twisted XSL Tricks: Column Switching for FOP
Twisted XSL Tricks: Column Switching for FOPTwisted XSL Tricks: Column Switching for FOP
Twisted XSL Tricks: Column Switching for FOPContrext Solutions
 
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITACan I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITAContrext Solutions
 
Ki, Qi, Key: The Way of DITA Harmony With Keys and Key References
Ki, Qi, Key: The Way of DITA Harmony With Keys and Key ReferencesKi, Qi, Key: The Way of DITA Harmony With Keys and Key References
Ki, Qi, Key: The Way of DITA Harmony With Keys and Key ReferencesContrext Solutions
 
Content Management on Zero Budget: DITA for Small Teams
Content Management on Zero Budget: DITA for Small TeamsContent Management on Zero Budget: DITA for Small Teams
Content Management on Zero Budget: DITA for Small TeamsContrext Solutions
 
Using CSS Paging to Render DITA Documents
Using CSS Paging to Render DITA DocumentsUsing CSS Paging to Render DITA Documents
Using CSS Paging to Render DITA DocumentsContrext Solutions
 
Locale-Aware Sorting and Text Handling in the Open Toolkit
Locale-Aware Sorting and Text Handling in the Open ToolkitLocale-Aware Sorting and Text Handling in the Open Toolkit
Locale-Aware Sorting and Text Handling in the Open ToolkitContrext Solutions
 
DITA for Small Teams Workshop (Tekom 2017)
DITA for Small Teams Workshop (Tekom 2017)DITA for Small Teams Workshop (Tekom 2017)
DITA for Small Teams Workshop (Tekom 2017)Contrext Solutions
 
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITACan I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITAContrext Solutions
 
XSLT Magic Tricks with DITA and FrameMaker
XSLT Magic Tricks with DITA and FrameMakerXSLT Magic Tricks with DITA and FrameMaker
XSLT Magic Tricks with DITA and FrameMakerContrext Solutions
 
FrameMaker and the DITA Open Toolkit
FrameMaker and the DITA Open ToolkitFrameMaker and the DITA Open Toolkit
FrameMaker and the DITA Open ToolkitContrext Solutions
 
Managing Multiple Open Toolkit Configurations Using git Lightning Talk
Managing Multiple Open Toolkit Configurations Using git Lightning TalkManaging Multiple Open Toolkit Configurations Using git Lightning Talk
Managing Multiple Open Toolkit Configurations Using git Lightning TalkContrext Solutions
 
Poster: Cross-Document Linking in DITA
Poster: Cross-Document Linking in DITAPoster: Cross-Document Linking in DITA
Poster: Cross-Document Linking in DITAContrext Solutions
 
DITA, HTML5, and EPUB3 (Content Agility, June 2013)
DITA, HTML5, and EPUB3 (Content Agility, June 2013)DITA, HTML5, and EPUB3 (Content Agility, June 2013)
DITA, HTML5, and EPUB3 (Content Agility, June 2013)Contrext Solutions
 

Plus de Contrext Solutions (18)

Stupid DITA Tricks: After-The-Fact Specialization: Treating Aircraft Manuals ...
Stupid DITA Tricks:After-The-Fact Specialization: Treating Aircraft Manuals ...Stupid DITA Tricks:After-The-Fact Specialization: Treating Aircraft Manuals ...
Stupid DITA Tricks: After-The-Fact Specialization: Treating Aircraft Manuals ...
 
Loose Leaf Publishing Using Antenna House Formatter and CSS for Pagination
Loose Leaf Publishing Using Antenna House Formatter and CSS for PaginationLoose Leaf Publishing Using Antenna House Formatter and CSS for Pagination
Loose Leaf Publishing Using Antenna House Formatter and CSS for Pagination
 
Definition of the DITA Glossary: Or How to Get Some Cool Glossary Tools for Free
Definition of the DITA Glossary: Or How to Get Some Cool Glossary Tools for FreeDefinition of the DITA Glossary: Or How to Get Some Cool Glossary Tools for Free
Definition of the DITA Glossary: Or How to Get Some Cool Glossary Tools for Free
 
Twisted XSL Tricks: Column Switching for FOP
Twisted XSL Tricks: Column Switching for FOPTwisted XSL Tricks: Column Switching for FOP
Twisted XSL Tricks: Column Switching for FOP
 
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITACan I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITA
 
Ki, Qi, Key: The Way of DITA Harmony With Keys and Key References
Ki, Qi, Key: The Way of DITA Harmony With Keys and Key ReferencesKi, Qi, Key: The Way of DITA Harmony With Keys and Key References
Ki, Qi, Key: The Way of DITA Harmony With Keys and Key References
 
Content Management on Zero Budget: DITA for Small Teams
Content Management on Zero Budget: DITA for Small TeamsContent Management on Zero Budget: DITA for Small Teams
Content Management on Zero Budget: DITA for Small Teams
 
Using CSS Paging to Render DITA Documents
Using CSS Paging to Render DITA DocumentsUsing CSS Paging to Render DITA Documents
Using CSS Paging to Render DITA Documents
 
Locale-Aware Sorting and Text Handling in the Open Toolkit
Locale-Aware Sorting and Text Handling in the Open ToolkitLocale-Aware Sorting and Text Handling in the Open Toolkit
Locale-Aware Sorting and Text Handling in the Open Toolkit
 
DITA for Small Teams Workshop (Tekom 2017)
DITA for Small Teams Workshop (Tekom 2017)DITA for Small Teams Workshop (Tekom 2017)
DITA for Small Teams Workshop (Tekom 2017)
 
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITACan I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITA
 
XSLT Magic Tricks with DITA and FrameMaker
XSLT Magic Tricks with DITA and FrameMakerXSLT Magic Tricks with DITA and FrameMaker
XSLT Magic Tricks with DITA and FrameMaker
 
FrameMaker and the DITA Open Toolkit
FrameMaker and the DITA Open ToolkitFrameMaker and the DITA Open Toolkit
FrameMaker and the DITA Open Toolkit
 
Managing Multiple Open Toolkit Configurations Using git Lightning Talk
Managing Multiple Open Toolkit Configurations Using git Lightning TalkManaging Multiple Open Toolkit Configurations Using git Lightning Talk
Managing Multiple Open Toolkit Configurations Using git Lightning Talk
 
Poster: Cross-Document Linking in DITA
Poster: Cross-Document Linking in DITAPoster: Cross-Document Linking in DITA
Poster: Cross-Document Linking in DITA
 
DITA for Small Teams
DITA for Small TeamsDITA for Small Teams
DITA for Small Teams
 
Wek cross-publication-linking
Wek cross-publication-linkingWek cross-publication-linking
Wek cross-publication-linking
 
DITA, HTML5, and EPUB3 (Content Agility, June 2013)
DITA, HTML5, and EPUB3 (Content Agility, June 2013)DITA, HTML5, and EPUB3 (Content Agility, June 2013)
DITA, HTML5, and EPUB3 (Content Agility, June 2013)
 

Dernier

Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 

Dernier (20)

Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 

They Worked Before, What Happened? Understanding DITA Cross-Book Links

  • 1. They Worked Before, What Happened? Understanding DITA Cross-Book Links 11/13/2015 Contrext, LLC 1 Eliot Kimber Contrext, LLC Tekom 2015, Stuttgart, Germany
  • 2. About the Author • Independent consultant focusing on DITA analysis, design, and implementation • Doing SGML and XML for cough 30 years cough • Founding member of the DITA Technical Committee • Founding member of the XML Working Group • Co-editor of HyTime standard (ISO/IEC 10744) • Primary developer and founder of the DITA for Publishers project • Author of DITA for Practitioners, Vol 1 (XML Press) 11/13/2015 Contrext, LLC 2
  • 3. Agenda • A story about migration to DITA • Cross-book links in legacy content • DITA introduces reuse, which breaks cross- document linking • DITA 1.3 adds cross-deliverable linking support 11/13/2015 Contrext, LLC 3
  • 4. A LEGACY MIGRATION STORY 11/13/2015 Contrext, LLC 4
  • 5. A Story Part 1: Legacy Days • Big company has DocBook documents for their publications • These books have cross-document links to other books ("olink" in DocBook) • These links work in the HTML and PDF generated from the DocBook 11/13/2015 Contrext, LLC 5
  • 6. Note on DocBook • Focusing on DocBook here because it is a typical pre-DITA legacy XML format • Other non-DITA XML applications may have similar cross-book linking features • May have done similar linking in unstructured formats (e.g., FrameMaker) • Not picking on DocBook specifically • Point is going from low-reuse to high-reuse content 11/13/2015 Contrext, LLC 6
  • 7. Part 2: But then DITA Happened • The DocBook books are converted to DITA • Now the writers have lots of nice topics and book maps • They produce their HTML and PDF • Suddenly the cross-book links stop working • The tools support people don't understand why • The writers say to them "it worked in DocBook, you broke it!" 11/13/2015 Contrext, LLC 7
  • 8. What Happened? • Why did the links work in DocBook? • Why did they stop working in DITA? • What can we do to fix it? 11/13/2015 Contrext, LLC 8
  • 9. BEFORE DITA: NO REUSE 11/13/2015 Contrext, LLC 9
  • 10. DocBook: No Reuse • In DocBook every book is a single XML document • There is no reuse • For each DocBook source document there is a small set of deliverables • DocBook <olink> points to a target DocBook XML document – Can include application-specific details for resolving the link • Works because there is no re-use • Depends on non-standard application processing ("magic") 11/13/2015 Contrext, LLC 10
  • 11. DocBook Cross-Book Links 11/13/2015 Contrext, LLC 11 Book 1 <book> … <olink targetdoc="book2.xml" targetptr="sect-04" /> Book 2 <book> … <section id="sect-04"> … </section> … </book>
  • 12. In DocBook, As Authored ≈ As Delivered • For a given link out of a document, the link exists in exactly one publication • For a given target in a document, the target exists in exactly one publication • Thus direct URI references from one DocBook document as authored to another DocBook document as authored are unambiguous for those documents as delivered. 11/13/2015 Contrext, LLC 12
  • 14. DITA Reuse Breaks Cross- Document Linking • In DITA the same topic may be used in multiple publications • One-to-many relationship between topics and deliverables • For a link from a topic to another topic, what is the target topic as delivered? • The target topic does not know where it is (or will be) used • A direct URI reference to a topic does not establish any use context for the topic 11/13/2015 Contrext, LLC 14
  • 15. Direct Topic-to-Topic Links 11/13/2015 Contrext, LLC 15 Topic 1 <topic id="topic-01"> … <xref href=="topic-02.dita#topic-02/sect-04" /> Topic 2 <topic id="topic-02"> … <section id="sect-04"> … </topic>Where are the maps?
  • 16. Wait, What? • Yes, DITA just broke cross-document linking • Simple approaches to addressing are not going to work • Seriously? • Seriously. • In particular, the direct URI references used in no-reuse applications like DocBook will not work in DITA 11/13/2015 Contrext, LLC 16
  • 17. In DITA, As Authored ≠ As Delivered 11/13/2015 Contrext, LLC 17 Topic 1 <xref href="topic-02.dita#t1/fig1" /> Topic 2 <topic id="t1"> … <fig id="fig1"> … </topic> Map 1 Map 2 Map 3
  • 18. Same Topic: Multiple Deliverables • Topic 1 is used in two maps: Map 1 and Map 2 • Topic 2 is used in two maps: Map 1 and Map 3 • Topic 1 points directly to Topic 2 • Which use of Topic 2 should Topic 1 as delivered point to? – The use in Map 1? – The use in Map 3? • No way to know given only information in the DITA source 11/13/2015 Contrext, LLC 18
  • 19. DITA 1.2: Keys • DITA 1.2 introduced indirect addressing: Keys and key references • A key is defined in a map • Binds a key name to a resource (e.g., a topic) • The same key can be bound to different resources in different maps • Now possible to have use-context-specific links from re-used topics 11/13/2015 Contrext, LLC 19
  • 20. 1.2 Keys Handle Reuse of Links Within Publications • Given a topic with a link where the topic is used in two different maps… • …map author can define the key-to-target binding so link resolves to the appropriate target within the same publication 11/13/2015 Contrext, LLC 20
  • 21. DITA 1.2 Key References 11/13/2015 Contrext, LLC 21 Topic 1 <xref keyref="topic-02" /> Topic 2 … <fig id="fig1"> … Map 1 <keydef keys="topic-02" href="topic-02.dita"/>
  • 22. DITA 1.2 Keys Don't Help Cross- Deliverable Links • Key-to-resource binding limited to a single root map • No way to say "this key binds to that topic as used in that other root map" • Could bind key to topic as delivered <keydef key="topic-02" href="http://mycorp.com/pubs/pub-02/topics/ topic-02.html" format="html" scope="external"/> • Only works for a single deliverable • Not interchangeable or generally reliable • Same problem as DocBook olink 11/13/2015 Contrext, LLC 22
  • 23. Wait, What? • Yeah, DITA 1.2 didn't address cross-book linking • Seriously? • Seriously. • But we fixed it in DITA 1.3 11/13/2015 Contrext, LLC 23
  • 24. DITA 1.3 CROSS- DELIVERABLE LINKS 11/13/2015 Contrext, LLC 24
  • 25. DITA 1.3: Scoped Keys • DITA 1.3 adds key scopes • A key scope establishes a distinct key space within a root map and gives it a prefix: <map> <topicgroup keyscope="scope-01"> <topicref keys="key-01" …/> </topicgroup> … </map> • Can refer to scope-qualified keys from outside the scope: <p>See <xref keyref="scope-01.key-01"/> … 11/13/2015 Contrext, LLC 25
  • 26. Relating Root Maps Together • DITA 1.3 defines a new meaning for @scope="peer" on map references – Target map is an independent root map – That is, the source for one or more deliverables • If you put a scope on the map reference… • …you can refer to keys defined in the target map • Enables unambiguous cross-document links 11/13/2015 Contrext, LLC 26
  • 27. Ambiguity Resolved • Topic 1: <xref keyref="topic-02"/> • Map 1: <topicref keys="topic-02" href="topic-02.dita"/> • Map 2: <keydef keys="topic-02" keyref="map-03.topic-02"/> <mapref keyscope="map-03" scope="peer" href="map-03.ditamap"/> • Map 3: <topicref keys="topic-02" href="topic-02.dita"/> 11/13/2015 Contrext, LLC 27
  • 28. DITA 1.3 Cross-Deliverable Links 11/13/2015 Contrext, LLC 28 Topic 1 <xref keyref="topic-02" /> Topic 2 … <fig id="fig1"> … Map 1 <keydef keys="topic-02" href="topic-02.dita"/> Map 2 <keydef keys="topic-02" keyref="map-03.topic-02"/> <mapref scope="map-03"…/> Map 3 <keydef keys="topic-02" href="topic-02.dita"/>
  • 29. Ambiguity Resolved (cont.) • When topic 1 is used in Map 1, key reference "topic-02" resolves to topic-02 as used in Map 1 • When topic 2 is used in Map 2, key reference "topic-02" resolves to topic-02 as used in Map 3 • Map authors get to decide what the binding for any key is, including redirecting a key to a key defined in a different root map 11/13/2015 Contrext, LLC 29
  • 30. Producing Deliverables • DITA 1.3 enables unambiguous links as authored • Still a challenge to produce deliverables • A given root map may result in many deliverables • For a given map-to-map link, which deliverable should the link get bound to? • No simple answer 11/13/2015 Contrext, LLC 30
  • 31. Production Challenges • Requires either consistent business rules or a way for authors to control deliverable linking details • Obvious business rule is "like links to like" – E.g., links from HTML go to HTML, links from PDFs go to PDFs • Not always possible or practical to impose this rule – May need PDFs to link to HTML or HTML to link to PDFs, for example. 11/13/2015 Contrext, LLC 31
  • 32. Generic Solution: Use Intermediate Key Definitions • Two passes: – Pass 1: Generate deliverable-specific key definitions for all anchors in all documents that link to each other – Pass 2: Documents include the intermediate key definitions for the other documents they link to • Effect is to replace key definitions that point to source XML with key definitions that point to deliverables 11/13/2015 Contrext, LLC 32
  • 33. Author Control of Deliverable- Specific Links • In theory, authors could manually adjust the intermediate key definitions • In practice, probably use private conventions in links or key definitions as authored to indicate deliverable linking policy • This starts to look a lot like the @type and @targetptr attributes on DocBook <olink> 11/13/2015 Contrext, LLC 33
  • 34. Summary • If there's no re-use, cross-book linking is relatively easy: source ≈ deliverable • Re-use breaks this simple model: direct references become ambiguous when re-used • DITA 1.2 doesn't solve the problem for cross-book links – No way to explicitly address keys in other root maps • DITA 1.3 solves the problem: – Provides a way to explicitly address other root maps – Key scopes enable redirecting key references to keys in other root maps • Processing is still a challenge: requires more complicated data processing and configuration management 11/13/2015 Contrext, LLC 34
  • 35. Resources • DITA 1.3: https://www.oasis- open.org/news/announcements/dita-version- 1-3-committee-specification-01-is-published • Me: ekimber@contrext.com, http://contrext.com 11/13/2015 Contrext, LLC 35
  • 36. Your opinion is important to us! Please tell us what you thought of the lecture. We look forward to your feedback via smartphone or tablet under http://IN24.honestly.de or scan the QR code The feedback tool will be available even after the conference!