SlideShare una empresa de Scribd logo
1 de 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!

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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)
 

Destacado

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
 

Destacado (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
 

Similar a 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
 

Similar a 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
 

Más 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
 

Más 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)
 

Último

VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...software pro Development
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 

Último (20)

VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 

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!