SlideShare a Scribd company logo
Ki, Qi, Key:
The Way of DITA Harmony With
Keys and Key References
Eliot Kimber
Contrext, LLC
TC Dojo 2018
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)
• First-degree black belt (shodan) in Aikido
TC Dojo March 2018 2
Agenda
• The way of harmony: why keys are essential
• Connect and redirect: how keys and key
references work
• Key-hon waza: The essential techniques for
successful use of keys
• Hai dozo: Please try
TC Dojo March 2018 3
THE WAY OF HARMONY
TC Dojo March 2018 4
Never Attack…Redirect
TC Dojo March 2018
In the Art of Peace we never attack.
An attack is proof that one is out of control. Never run away
from any kind of challenge, but do not try to suppress or
control an opponent unnaturally.
Let attackers come any way they like and then blend with
them.
Never chase after opponents.
Redirect each attack and get firmly behind it.
—Morihei Ueshiba, The Art of Peace
Morihei Ueshiba
Founder of Aikido
5
It’s All About Connection
• In Aikido and similar arts, we connect with our
attacker and through that connection link our center
or “ki” with the attacker’s ki, take their balance, and
help them return to harmony
TC Dojo March 2018
• In DITA we connect maps and
topics to each other in order to
create harmonious collections of
content
• Both require care, skill, and
calmness to be successful
6
DITA is All About Linking
• DITA is about enabling reuse
• Reuse in DITA is use by reference
• Use by reference is done through links:
– Topicrefs from maps to topics or other maps
– Content references from elements to other
elements
• Reuse brings value but also significant cost
TC Dojo March 2018 7
Reuse Is The Enemy
• Reuse adds significant complexity
• If a topic is used in two places:
– How do you link to a specific use of that topic?
– Where do the links from the topic go?
– How do you know who links to (uses) the topic?
– When a new version of the topic is created, how
do users of the topic react?
• How to neutralize these attacks?
TC Dojo March 2018 8
CONNECT AND REDIRECT
TC Dojo March 2018 9
Two Ways to Connect
• Direct URI references:
<xref
href="topics/topic-01.dita"/>
• Indirect key references:
<xref
keyref="introduction"/>
TC Dojo March 2018 10
Direct References Are Hard and
Painful
• Creates a hard
dependency from source
to target
• Target will be the same
in all use contexts
• If target changes, must
change source
• This hurts
TC Dojo March 2018 11
Indirect References are Soft and
Gentle
• Indirect addresses allow
the ultimate target to
be different
TC Dojo March 2018 12
• Each map (or key scope in DITA 1.3) can
define a different target for a given key
• Changes to the target do not require changes
to the source, only changes to the key binding
• Pain is avoided
Indirection with Keys
• A key reference points to a key name:
• The key name is bound to a target in a
map:
• Different maps can bind the same key
name to different targets:
TC Dojo March 2018
Map 1
Key "introduction"
—> topic ABC.dita
Topic ABC.dita
"Introduction for
Beginners"
Topic DEF.dita
"Introduction for
Experts"
Map 2
Key "introduction"
—> topic DEF.dita
<xref keyref="introduction"/>
<topicref keys="introduction"
href="topics/ABC.dita"
/> (Map 1)
<topicref keys="introduction"
href="topics/DEF.dita"
/> (Map 2)
13
Topic 01
Topic with keyref to key
"introduction"
<xref
keyref="introduction"
/>
KEY-HON WAZA
TC Dojo March 2018 14
First Principle: Always Use
Keys
• All links from topics to anything else should
use keys:
– Content references (@conkeyref)
– Cross references (<xref>, <term>,
<keyword>)
– Image references (<image>)
– Object references (DITA 1.3) (<object>)
• Ensures that topics are fully reusable
TC Dojo March 2018 15
一
Second Principle:
Keys On All Navigation Topicrefs
• "Navigation" topicrefs are topicrefs with a
@processing-role of "normal" (the default):
<topicref keys="installation"
href="topic-02.dita"/>
• Navigation keys identify distinct uses of a given
topic in a publication's navigation structure
• Serve as targets for cross references and reltable
links
TC Dojo March 2018 16
二
Third Principle:
Keys on Resource-Only
Topicrefs• Resource-only topicrefs are topicrefs with a @processing-role of "resource-
only"
– <keydef> topicref type is resource-only by default
• Use for "warehouse" topics:
<keydef keys="reuse-figs" href="warehouse/figures.dita"/>
• @conkeyref points to warehouse topic key and element ID within the warehouse
topic:
<fig conkeyref="reuse-figs/fig-remove-cover"/>
• Use resource-only topicrefs for external (non-DITA resources):
<keydef keys="website-A"
scope="external" format="html"
href="http://www.example.com/A"
><topicmeta><navtitle>Web Site A</navtitle></topicmeta>
</keydef>
• Use resource-only topicrefs for images:
<keydef keys="image-cover-remove" format="jpg"
href="images/prod-01/cover/remove-01.jg"/>
• Do not use as targets of cross references
TC Dojo March 2018 17
三
Fourth Principle:
Use Only Keyrefs in Reltables
• All topicrefs in relationship tables should use
key references to navigation topicrefs
• Reltable links are equivalent to cross
references
• Want to link specific uses of topics to each
other
• Allows reltable itself to be reused in different
maps or key scopes
TC Dojo March 2018 18
四
Plenty of Perfect Practice
Always use keys for links from topics
Put keys on all navigation topicrefs
Put keys on resource-only topicrefs
Use only keyrefs in relationship tables
TC Dojo March 2018 19
一
二
三
四
Black Belt Techniques
• Using conditional
processing with keys
• Using key scopes (DITA 1.3)
• Cross-deliverable linking
(DITA 1.3)
• Managing sets of shared
keys
TC Dojo March 2018 20
Help Your Content Return to
Harmony
• Reuse is inherently difficult
• Keys allow same topic to be used in different
contexts
• Keys separate links from the details of the link
targets
– Makes the content more robust and less sensitive
to change
– Allows topics and maps to be reused in different
contexts
TC Dojo March 2018 21
Hai Dozo: Please Try
Like learning a martial art, using keys effectively
takes study and practice but if learned properly
and practiced consistently it will make you
powerful.
TC Dojo March 2018 22
Questions?
TC Dojo March 2018 23
Resources
• Me: ekimber@contrext.com
• DITA specification:
http://docs.oasis-open.org/dita/dita/v1.3/dita-v1.3-part3-all-inclusive.html
• DITA 1.3 Feature Article: Understanding
Scoped Keys in DITA 1.3, Leigh White.
https://www.oasis-open.org/committees/download.php/56472
• DITA For Practitioners, Vol. 1, Eliot Kimber.
http://xmlpress.net/publications/dita/practitioners-1/
– Chapter 8 covers keys. Predates DITA 1.3
TC Dojo March 2018 24

More Related Content

What's hot

Hadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera
Hadoop World 2011: Advanced HBase Schema Design - Lars George, ClouderaHadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera
Hadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera
Cloudera, Inc.
 
Introduction to Cassandra Architecture
Introduction to Cassandra ArchitectureIntroduction to Cassandra Architecture
Introduction to Cassandra Architecture
nickmbailey
 
HBase Advanced - Lars George
HBase Advanced - Lars GeorgeHBase Advanced - Lars George
HBase Advanced - Lars George
JAX London
 
Refactoring for Domain Driven Design
Refactoring for Domain Driven DesignRefactoring for Domain Driven Design
Refactoring for Domain Driven Design
David Berliner
 
Introduction to CQL and Data Modeling with Apache Cassandra
Introduction to CQL and Data Modeling with Apache CassandraIntroduction to CQL and Data Modeling with Apache Cassandra
Introduction to CQL and Data Modeling with Apache Cassandra
Johnny Miller
 
HTML Semantic Tags
HTML Semantic TagsHTML Semantic Tags
HTML Semantic Tags
Bruce Kyle
 
MariaDB Galera Cluster - Simple, Transparent, Highly Available
MariaDB Galera Cluster - Simple, Transparent, Highly AvailableMariaDB Galera Cluster - Simple, Transparent, Highly Available
MariaDB Galera Cluster - Simple, Transparent, Highly Available
MariaDB Corporation
 
HBase in Practice
HBase in Practice HBase in Practice
HBase in Practice
DataWorks Summit/Hadoop Summit
 
Flexbox and Grid Layout
Flexbox and Grid LayoutFlexbox and Grid Layout
Flexbox and Grid Layout
Rachel Andrew
 
Optimizing RocksDB for Open-Channel SSDs
Optimizing RocksDB for Open-Channel SSDsOptimizing RocksDB for Open-Channel SSDs
Optimizing RocksDB for Open-Channel SSDs
Javier González
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)
NAVER D2
 
Devel::NYTProf 2009-07 (OUTDATED, see 201008)
Devel::NYTProf 2009-07 (OUTDATED, see 201008)Devel::NYTProf 2009-07 (OUTDATED, see 201008)
Devel::NYTProf 2009-07 (OUTDATED, see 201008)
Tim Bunce
 
Large-Scale Text Processing Pipeline with Spark ML and GraphFrames: Spark Sum...
Large-Scale Text Processing Pipeline with Spark ML and GraphFrames: Spark Sum...Large-Scale Text Processing Pipeline with Spark ML and GraphFrames: Spark Sum...
Large-Scale Text Processing Pipeline with Spark ML and GraphFrames: Spark Sum...
Spark Summit
 
Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on Kubernetes
Bruno Borges
 
Achieving compliance With MongoDB Security
Achieving compliance With MongoDB Security Achieving compliance With MongoDB Security
Achieving compliance With MongoDB Security
Mydbops
 
MySQL Performance Schema in MySQL 8.0
MySQL Performance Schema in MySQL 8.0MySQL Performance Schema in MySQL 8.0
MySQL Performance Schema in MySQL 8.0
Mayank Prasad
 
Database storage engines
Database storage enginesDatabase storage engines
Database storage engines
University of Sindh, Jamshoro
 
Why does my choice of storage matter with cassandra?
Why does my choice of storage matter with cassandra?Why does my choice of storage matter with cassandra?
Why does my choice of storage matter with cassandra?
Johnny Miller
 
Hadoop World 2011: Advanced HBase Schema Design
Hadoop World 2011: Advanced HBase Schema DesignHadoop World 2011: Advanced HBase Schema Design
Hadoop World 2011: Advanced HBase Schema Design
Cloudera, Inc.
 
MySQL GTID 시작하기
MySQL GTID 시작하기MySQL GTID 시작하기
MySQL GTID 시작하기
I Goo Lee
 

What's hot (20)

Hadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera
Hadoop World 2011: Advanced HBase Schema Design - Lars George, ClouderaHadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera
Hadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera
 
Introduction to Cassandra Architecture
Introduction to Cassandra ArchitectureIntroduction to Cassandra Architecture
Introduction to Cassandra Architecture
 
HBase Advanced - Lars George
HBase Advanced - Lars GeorgeHBase Advanced - Lars George
HBase Advanced - Lars George
 
Refactoring for Domain Driven Design
Refactoring for Domain Driven DesignRefactoring for Domain Driven Design
Refactoring for Domain Driven Design
 
Introduction to CQL and Data Modeling with Apache Cassandra
Introduction to CQL and Data Modeling with Apache CassandraIntroduction to CQL and Data Modeling with Apache Cassandra
Introduction to CQL and Data Modeling with Apache Cassandra
 
HTML Semantic Tags
HTML Semantic TagsHTML Semantic Tags
HTML Semantic Tags
 
MariaDB Galera Cluster - Simple, Transparent, Highly Available
MariaDB Galera Cluster - Simple, Transparent, Highly AvailableMariaDB Galera Cluster - Simple, Transparent, Highly Available
MariaDB Galera Cluster - Simple, Transparent, Highly Available
 
HBase in Practice
HBase in Practice HBase in Practice
HBase in Practice
 
Flexbox and Grid Layout
Flexbox and Grid LayoutFlexbox and Grid Layout
Flexbox and Grid Layout
 
Optimizing RocksDB for Open-Channel SSDs
Optimizing RocksDB for Open-Channel SSDsOptimizing RocksDB for Open-Channel SSDs
Optimizing RocksDB for Open-Channel SSDs
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)
 
Devel::NYTProf 2009-07 (OUTDATED, see 201008)
Devel::NYTProf 2009-07 (OUTDATED, see 201008)Devel::NYTProf 2009-07 (OUTDATED, see 201008)
Devel::NYTProf 2009-07 (OUTDATED, see 201008)
 
Large-Scale Text Processing Pipeline with Spark ML and GraphFrames: Spark Sum...
Large-Scale Text Processing Pipeline with Spark ML and GraphFrames: Spark Sum...Large-Scale Text Processing Pipeline with Spark ML and GraphFrames: Spark Sum...
Large-Scale Text Processing Pipeline with Spark ML and GraphFrames: Spark Sum...
 
Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on Kubernetes
 
Achieving compliance With MongoDB Security
Achieving compliance With MongoDB Security Achieving compliance With MongoDB Security
Achieving compliance With MongoDB Security
 
MySQL Performance Schema in MySQL 8.0
MySQL Performance Schema in MySQL 8.0MySQL Performance Schema in MySQL 8.0
MySQL Performance Schema in MySQL 8.0
 
Database storage engines
Database storage enginesDatabase storage engines
Database storage engines
 
Why does my choice of storage matter with cassandra?
Why does my choice of storage matter with cassandra?Why does my choice of storage matter with cassandra?
Why does my choice of storage matter with cassandra?
 
Hadoop World 2011: Advanced HBase Schema Design
Hadoop World 2011: Advanced HBase Schema DesignHadoop World 2011: Advanced HBase Schema Design
Hadoop World 2011: Advanced HBase Schema Design
 
MySQL GTID 시작하기
MySQL GTID 시작하기MySQL GTID 시작하기
MySQL GTID 시작하기
 

Similar to Ki, Qi, Key: The Way of DITA Harmony With Keys and Key References

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
dclsocialmedia
 
Style Guides: Fashionable But Also Practical - TC Dojo, Single Sourcing
Style Guides: Fashionable But Also Practical - TC Dojo, Single SourcingStyle Guides: Fashionable But Also Practical - TC Dojo, Single Sourcing
Style Guides: Fashionable But Also Practical - TC Dojo, Single Sourcing
IXIASOFT
 
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
Contrext Solutions
 
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
 
Taking Cross References to the Next Level: Reltables for Non-Topic Elements
Taking Cross References to the Next Level: Reltables for Non-Topic ElementsTaking Cross References to the Next Level: Reltables for Non-Topic Elements
Taking Cross References to the Next Level: Reltables for Non-Topic Elements
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 DITA
Contrext Solutions
 
How to write in DITA
How to write in DITAHow to write in DITA
How to write in DITA
Anindita Basu
 
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
Contrext Solutions
 
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
dclsocialmedia
 
No Ki Magic: Managing Complex DITA Hyperdocuments
No Ki Magic: Managing Complex DITA HyperdocumentsNo Ki Magic: Managing Complex DITA Hyperdocuments
No Ki Magic: Managing Complex DITA Hyperdocuments
Contrext Solutions
 
DITA Quick Start for Authors Part II
DITA Quick Start for Authors Part IIDITA Quick Start for Authors Part II
DITA Quick Start for Authors Part IISuite Solutions
 
They Worked Before, What Happened? Understanding DITA Cross-Book Links
They Worked Before, What Happened? Understanding DITA Cross-Book Links They Worked Before, What Happened? Understanding DITA Cross-Book Links
They Worked Before, What Happened? Understanding DITA Cross-Book Links
Contrext Solutions
 
Why Is DITA So Hard?
Why Is DITA So Hard?Why Is DITA So Hard?
Why Is DITA So Hard?
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
 
Wek cross-publication-linking
Wek cross-publication-linkingWek cross-publication-linking
Wek cross-publication-linking
Contrext Solutions
 
50 Shades of Fail KScope16
50 Shades of Fail KScope1650 Shades of Fail KScope16
50 Shades of Fail KScope16
Christian Berg
 
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
IXIASOFT
 
Advanced CSS Troubleshooting
Advanced CSS TroubleshootingAdvanced CSS Troubleshooting
Advanced CSS Troubleshooting
Denise Jacobs
 
Style & Design Principles 01 - Code Style & Structure
Style & Design Principles 01 - Code Style & StructureStyle & Design Principles 01 - Code Style & Structure
Style & Design Principles 01 - Code Style & Structure
Nick Pruehs
 
Chapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptChapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.ppt
RushikeshChikane1
 

Similar to Ki, Qi, Key: The Way of DITA Harmony With Keys and Key References (20)

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
 
Style Guides: Fashionable But Also Practical - TC Dojo, Single Sourcing
Style Guides: Fashionable But Also Practical - TC Dojo, Single SourcingStyle Guides: Fashionable But Also Practical - TC Dojo, Single Sourcing
Style Guides: Fashionable But Also Practical - TC Dojo, Single Sourcing
 
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
 
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?
 
Taking Cross References to the Next Level: Reltables for Non-Topic Elements
Taking Cross References to the Next Level: Reltables for Non-Topic ElementsTaking Cross References to the Next Level: Reltables for Non-Topic Elements
Taking Cross References to the Next Level: Reltables for Non-Topic Elements
 
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
 
How to write in DITA
How to write in DITAHow to write in DITA
How to write in DITA
 
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
 
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
 
No Ki Magic: Managing Complex DITA Hyperdocuments
No Ki Magic: Managing Complex DITA HyperdocumentsNo Ki Magic: Managing Complex DITA Hyperdocuments
No Ki Magic: Managing Complex DITA Hyperdocuments
 
DITA Quick Start for Authors Part II
DITA Quick Start for Authors Part IIDITA Quick Start for Authors Part II
DITA Quick Start for Authors Part II
 
They Worked Before, What Happened? Understanding DITA Cross-Book Links
They Worked Before, What Happened? Understanding DITA Cross-Book Links They Worked Before, What Happened? Understanding DITA Cross-Book Links
They Worked Before, What Happened? Understanding DITA Cross-Book Links
 
Why Is DITA So Hard?
Why Is DITA So Hard?Why Is DITA So Hard?
Why Is DITA So Hard?
 
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 ...
 
Wek cross-publication-linking
Wek cross-publication-linkingWek cross-publication-linking
Wek cross-publication-linking
 
50 Shades of Fail KScope16
50 Shades of Fail KScope1650 Shades of Fail KScope16
50 Shades of Fail KScope16
 
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
 
Advanced CSS Troubleshooting
Advanced CSS TroubleshootingAdvanced CSS Troubleshooting
Advanced CSS Troubleshooting
 
Style & Design Principles 01 - Code Style & Structure
Style & Design Principles 01 - Code Style & StructureStyle & Design Principles 01 - Code Style & Structure
Style & Design Principles 01 - Code Style & Structure
 
Chapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptChapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.ppt
 

More from 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 Pagination
Contrext 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 Free
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 DITA
Contrext 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 Teams
Contrext 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 Documents
Contrext 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 Toolkit
Contrext 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
 
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
Contrext Solutions
 
FrameMaker and the DITA Open Toolkit
FrameMaker and the DITA Open ToolkitFrameMaker and the DITA Open Toolkit
FrameMaker and the DITA Open Toolkit
Contrext Solutions
 
RELAX NG and DITA: An Almost Perfect Match
RELAX NG and DITA: An Almost Perfect MatchRELAX NG and DITA: An Almost Perfect Match
RELAX NG and DITA: An Almost Perfect Match
Contrext 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 Talk
Contrext Solutions
 
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
Contrext Solutions
 
Poster: Cross-Document Linking in DITA
Poster: Cross-Document Linking in DITAPoster: Cross-Document Linking in DITA
Poster: Cross-Document Linking in DITA
Contrext Solutions
 
DITA for Small Teams
DITA for Small TeamsDITA for Small Teams
DITA for Small Teams
Contrext 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
 
RELAX NG to DTD and XSD Using the Open Toolkit
RELAX NG to DTD and XSD Using the Open ToolkitRELAX NG to DTD and XSD Using the Open Toolkit
RELAX NG to DTD and XSD Using the Open Toolkit
Contrext Solutions
 
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
Contrext Solutions
 
Dita cross-deliverable-addressing-poster
Dita cross-deliverable-addressing-posterDita cross-deliverable-addressing-poster
Dita cross-deliverable-addressing-poster
Contrext Solutions
 
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
Contrext 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
 

More from Contrext Solutions (20)

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
 
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
 
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)
 
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
 
RELAX NG and DITA: An Almost Perfect Match
RELAX NG and DITA: An Almost Perfect MatchRELAX NG and DITA: An Almost Perfect Match
RELAX NG and DITA: An Almost Perfect Match
 
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
 
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
 
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
 
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)
 
RELAX NG to DTD and XSD Using the Open Toolkit
RELAX NG to DTD and XSD Using the Open ToolkitRELAX NG to DTD and XSD Using the Open Toolkit
RELAX NG to DTD and XSD Using the Open Toolkit
 
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 cross-deliverable-addressing-poster
Dita cross-deliverable-addressing-posterDita cross-deliverable-addressing-poster
Dita cross-deliverable-addressing-poster
 
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, 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)
 

Recently uploaded

Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 

Recently uploaded (20)

Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 

Ki, Qi, Key: The Way of DITA Harmony With Keys and Key References

  • 1. Ki, Qi, Key: The Way of DITA Harmony With Keys and Key References Eliot Kimber Contrext, LLC TC Dojo 2018
  • 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) • First-degree black belt (shodan) in Aikido TC Dojo March 2018 2
  • 3. Agenda • The way of harmony: why keys are essential • Connect and redirect: how keys and key references work • Key-hon waza: The essential techniques for successful use of keys • Hai dozo: Please try TC Dojo March 2018 3
  • 4. THE WAY OF HARMONY TC Dojo March 2018 4
  • 5. Never Attack…Redirect TC Dojo March 2018 In the Art of Peace we never attack. An attack is proof that one is out of control. Never run away from any kind of challenge, but do not try to suppress or control an opponent unnaturally. Let attackers come any way they like and then blend with them. Never chase after opponents. Redirect each attack and get firmly behind it. —Morihei Ueshiba, The Art of Peace Morihei Ueshiba Founder of Aikido 5
  • 6. It’s All About Connection • In Aikido and similar arts, we connect with our attacker and through that connection link our center or “ki” with the attacker’s ki, take their balance, and help them return to harmony TC Dojo March 2018 • In DITA we connect maps and topics to each other in order to create harmonious collections of content • Both require care, skill, and calmness to be successful 6
  • 7. DITA is All About Linking • DITA is about enabling reuse • Reuse in DITA is use by reference • Use by reference is done through links: – Topicrefs from maps to topics or other maps – Content references from elements to other elements • Reuse brings value but also significant cost TC Dojo March 2018 7
  • 8. Reuse Is The Enemy • Reuse adds significant complexity • If a topic is used in two places: – How do you link to a specific use of that topic? – Where do the links from the topic go? – How do you know who links to (uses) the topic? – When a new version of the topic is created, how do users of the topic react? • How to neutralize these attacks? TC Dojo March 2018 8
  • 9. CONNECT AND REDIRECT TC Dojo March 2018 9
  • 10. Two Ways to Connect • Direct URI references: <xref href="topics/topic-01.dita"/> • Indirect key references: <xref keyref="introduction"/> TC Dojo March 2018 10
  • 11. Direct References Are Hard and Painful • Creates a hard dependency from source to target • Target will be the same in all use contexts • If target changes, must change source • This hurts TC Dojo March 2018 11
  • 12. Indirect References are Soft and Gentle • Indirect addresses allow the ultimate target to be different TC Dojo March 2018 12 • Each map (or key scope in DITA 1.3) can define a different target for a given key • Changes to the target do not require changes to the source, only changes to the key binding • Pain is avoided
  • 13. Indirection with Keys • A key reference points to a key name: • The key name is bound to a target in a map: • Different maps can bind the same key name to different targets: TC Dojo March 2018 Map 1 Key "introduction" —> topic ABC.dita Topic ABC.dita "Introduction for Beginners" Topic DEF.dita "Introduction for Experts" Map 2 Key "introduction" —> topic DEF.dita <xref keyref="introduction"/> <topicref keys="introduction" href="topics/ABC.dita" /> (Map 1) <topicref keys="introduction" href="topics/DEF.dita" /> (Map 2) 13 Topic 01 Topic with keyref to key "introduction" <xref keyref="introduction" />
  • 14. KEY-HON WAZA TC Dojo March 2018 14
  • 15. First Principle: Always Use Keys • All links from topics to anything else should use keys: – Content references (@conkeyref) – Cross references (<xref>, <term>, <keyword>) – Image references (<image>) – Object references (DITA 1.3) (<object>) • Ensures that topics are fully reusable TC Dojo March 2018 15 一
  • 16. Second Principle: Keys On All Navigation Topicrefs • "Navigation" topicrefs are topicrefs with a @processing-role of "normal" (the default): <topicref keys="installation" href="topic-02.dita"/> • Navigation keys identify distinct uses of a given topic in a publication's navigation structure • Serve as targets for cross references and reltable links TC Dojo March 2018 16 二
  • 17. Third Principle: Keys on Resource-Only Topicrefs• Resource-only topicrefs are topicrefs with a @processing-role of "resource- only" – <keydef> topicref type is resource-only by default • Use for "warehouse" topics: <keydef keys="reuse-figs" href="warehouse/figures.dita"/> • @conkeyref points to warehouse topic key and element ID within the warehouse topic: <fig conkeyref="reuse-figs/fig-remove-cover"/> • Use resource-only topicrefs for external (non-DITA resources): <keydef keys="website-A" scope="external" format="html" href="http://www.example.com/A" ><topicmeta><navtitle>Web Site A</navtitle></topicmeta> </keydef> • Use resource-only topicrefs for images: <keydef keys="image-cover-remove" format="jpg" href="images/prod-01/cover/remove-01.jg"/> • Do not use as targets of cross references TC Dojo March 2018 17 三
  • 18. Fourth Principle: Use Only Keyrefs in Reltables • All topicrefs in relationship tables should use key references to navigation topicrefs • Reltable links are equivalent to cross references • Want to link specific uses of topics to each other • Allows reltable itself to be reused in different maps or key scopes TC Dojo March 2018 18 四
  • 19. Plenty of Perfect Practice Always use keys for links from topics Put keys on all navigation topicrefs Put keys on resource-only topicrefs Use only keyrefs in relationship tables TC Dojo March 2018 19 一 二 三 四
  • 20. Black Belt Techniques • Using conditional processing with keys • Using key scopes (DITA 1.3) • Cross-deliverable linking (DITA 1.3) • Managing sets of shared keys TC Dojo March 2018 20
  • 21. Help Your Content Return to Harmony • Reuse is inherently difficult • Keys allow same topic to be used in different contexts • Keys separate links from the details of the link targets – Makes the content more robust and less sensitive to change – Allows topics and maps to be reused in different contexts TC Dojo March 2018 21
  • 22. Hai Dozo: Please Try Like learning a martial art, using keys effectively takes study and practice but if learned properly and practiced consistently it will make you powerful. TC Dojo March 2018 22
  • 24. Resources • Me: ekimber@contrext.com • DITA specification: http://docs.oasis-open.org/dita/dita/v1.3/dita-v1.3-part3-all-inclusive.html • DITA 1.3 Feature Article: Understanding Scoped Keys in DITA 1.3, Leigh White. https://www.oasis-open.org/committees/download.php/56472 • DITA For Practitioners, Vol. 1, Eliot Kimber. http://xmlpress.net/publications/dita/practitioners-1/ – Chapter 8 covers keys. Predates DITA 1.3 TC Dojo March 2018 24