76
Spezialisierung in DITA Jang F.M. Graat JANG Communication - Amsterdam Wie machen Sie es, und warum sollen Sie es machen ? TUT2

Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Embed Size (px)

DESCRIPTION

Spezialisierung ist Alleinstellungsmerkmal von DITA und damit das Wichtigste, was es in der technischen Redaktion in den letzten Jahrzehnten gegeben hat. Dieses Tutorial zeigt, warum Spezialisierung wichtig ist, was es genau bedeutet und wie Sie es erfolgreich umsetzen.

Citation preview

Page 1: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Spezialisierung in DITA

Jang F.M. Graat !JANG Communication - Amsterdam

Wie machen Sie es, und warum sollen Sie es machen ?

TUT2

Page 2: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Wer Spricht ?

✤ Jang F.M. Graat!

✤ Technische Redaktion!

✤ FM, RH, MadCap!

✤ DITA, XSLT, JS, CSS!

✤ Minimalist!

✤ Psychologe, Philosoph!

✤ Weltbürger in Amsterdam

Page 3: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Tom Aldous

✤ Integrated Technologies!

✤ Adobe (TechCom)!

✤ Acrolinx!

✤ 2-teiliges Webinar “DITA Specialization”

Page 4: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Eliot Kimber

✤ IBM!

✤ Innodata Isogen!

✤ RSI Content Solutions!

✤ Contrext Solutions!

✤ DITA Configuration and Specialization Tutorials!

✤ www.xiruss.org

Page 5: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Spezialisierung - Was ist es ?

Page 6: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Spezialisierung ist Alleinstellungsmerkmal von DITA

DITA, also nicht “ITA”

Page 7: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Spezialisierung ≠ EvolutionKeine völlig neue Elemente oder Strukturen

Page 8: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

topic

title

shortdesc

prolog

body

p, note, ...

ol, ul, dl, ...

fig, image, ...

table

section

example

bodydiv

related-links

topic

concept

title

shortdesc

prolog

conbody

table

section

example

conbodydiv

related-links

concept

p, note, ...

ol, ul, dl, ...

fig, image, ...

Strukturbezogen SpezialisierungAnpassung der internen Struktur (Elemente, Reihenfolge)

Page 9: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Grundtyp “Zimmer”Erforderlich: Tür, Wände, Boden, Decke. Optional: viele Elemente

Page 10: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Spezialisierung “Schlafzimmer”Erforderlich: Bett. Nicht erlaubt: Küchenmöbel, Büro, Esstisch, ...

Page 11: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Spezialisierung “Esszimmer”Erforderlich: Esstisch, Stüle. Nicht erlaubt: Bett, Kleiderschrank, Toilette, ...

Page 12: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Eine Terrasse ist kein ZimmerErforderlich für Grundtyp “Zimmer”: Tür, Wände, Decke.

Page 13: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

topic

title

shortdesc

prolog

body

p

note

fig

table

section

example

bodydiv

related-links

topic

hazardstatement

messagepanel

hazardsymbol

consequence

howtoavoid

typeofhazard

Domainbezogen SpezialisierungAlternatives Element hinzufügen

Page 14: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Grundtyp “Stuhl”Jeder weiß, wofür dieses Element gedacht ist

Page 15: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Spezialisierung “Bürostuhl”Hat extra Möglichkeiten, bleibt aber wesentlich ein Sitzplatz

Page 16: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Spezialisierung “Designstuhl”Kosmetische Anpassungen, gleiche Funktionalität

Page 17: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Hart an die GrenzeWürde man normalerweise nicht als Sitzplatz akzeptieren

Page 18: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

topic

title

shortdesc

prolog

body

p, note, ...

ol, ul, dl, ...

fig, image, ...

table

section

example

bodydiv

related-links

topic

task

title

shortdesc

prolog

taskbody

prereq

context

steps

example

postreq

related-links

task

concept reference

title

shortdesc

prolog

refbody

refbodydiv

section

example

refsyn

table

properties

refbodydiv

related-links

reference

title

shortdesc

prolog

conbody

p, note, ...

ol, ul, dl, ...

fig, image, ...

table

section

example

conbodydiv

related-links

concept

result

steps-unord.

DITA Topic-TypenSpezialisierungen von (Einschränkungen auf) Grundtyp “topic”

Page 19: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

topic

title

shortdesc

prolog

body

p

ol

ul

table

section

example

bodydiv

related-links

topic

task

title

shortdesc

prolog

taskbody

prereq

context

steps

example

postreq

related-links

task

result

steps-unord.

machineryTask

title

shortdesc

prolog

taskbody

prelreqs

context

steps

example

closereqs

related-links

task

result

steps-unord.

Mehrstufige SpezialisierungMehr Einschränkungen bei jedem Schritt (nur Strukturbezogen)

Page 20: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Spezialisierung - Warum ?

Page 21: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

0"

100"

200"

300"

400"

500"

600"

1.0" 1.1" 1.2"

Base"

Spec"

Anzahl der DITA-ElementeDITA “out-of-the-box” verwenden ist Schwachsinn

145

158

170

48140

364

Page 22: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

HTML Elemente : FormatierungBezug auf der Visualisierung in Ihrem Browser

<h1>Titel</h1>!<p>Text mit einige <i>Formatierung</i>.</p>!<h2>Titel auf zweite Ebene</h2>!<p>Und noch etwas <b>fette</b> Text</p>!<ul>!

<li>• Erster Punkt</li>!<li>• Zweiter Punkt</li>!

</ul>

Page 23: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

XML Elemente : SemantikBezug auf Bedeutung der Elemente in deren Kontext

<topic>!<title>Performing a task</title>!<shortdesc>Just one sentence</shortdesc>!<body>!

<p>First paragraph in this task</p>!<section>!

<title>Subtask</title>!<p>Another paragraph</p>!

</section>!</body>!

</topic>

Page 24: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Welche Elemente brauchen Sie ?Jede bedeutungsvolle Semantik ist nur lokal gültig

Page 25: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Welche Elemente brauchen Sie ?Jede bedeutungsvolle Semantik ist nur lokal gültig

Page 26: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

“Jeder Nachteil hat seinen Vorteil” (Johan Cruijff)

Benutzungsorientiert

Page 27: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Elemente ausblendenElemente minimieren = Eindeutigkeit maximieren

Page 28: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Elemente einblendenSicherstellen, daß bestimmte Elemente eingefügt werden

Page 29: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Terminologie erweiternElementnamen ermöglichen automatische Datenverarbeitung

Page 30: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Struktur festlegenLesbarkeit und Auffindbarkeit der Infos verbessern

Page 31: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Kreativität eingrenzenBenutzer brauchen Infos, keine Romane

Page 32: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Spezialisierung - Wie ?

Page 33: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Auswahl der ZutatenEinschränkung durch Konfiguration und “Constraints”

Page 34: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Konfiguration einer DTD-Shell

Page 35: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

DITA DTDs - Modulare AufbauDTD Topic Type Shell definiert welche Module eingebunden werden

Page 36: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

DTD Topic Type ShellDefiniert welche DTD Module eingebunden werden

highlightDomain!utilitiesDomain!indexingDomain!hazardstatementDomain

abbreviateDomain!programmingDomain!softwareDomain!uiDomain!

topic.mod

<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">

Page 37: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Base Topic TypNur unspezifische Domäne sind eingebunden

highlightDomain!utilitiesDomain!indexingDomain!hazardstatementDomain

abbreviateDomain!programmingDomain!softwareDomain!uiDomain!

topic.mod

<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Base Topic//EN" "basetopic.dtd">

Page 38: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Entfernen einer DomainAlle Referenzen müssen entfernt werden

!<!ENTITY % hi-d-dec PUBLIC "-//OASIS//ENTITIES DITA 1.2 Highlight Domain//EN" "highlightDomain.ent" >%hi-d-dec; !<!ENTITY % ph "ph | %hi-d-ph; "> !<!ENTITY included-domains "&hi-d-att; &ut-d-att; &hazard-d-att;"> !<!ENTITY % hi-d-def PUBLIC "-//OASIS//ELEMENTS DITA 1.2 Highlight Domain//EN" "highlightDomain.mod" >%hi-d-def;

1 !!

2 !!

3 !!

4

Page 39: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Minimaler Topic TypKeine Spezialisierung oder Einschränkung (“.mod” Datei) erforderlich

highlightDomain!utilitiesDomain!indexingDomain!hazardstatementDomain

abbreviateDomain!programmingDomain!softwareDomain!uiDomain!

topic.mod

<!DOCTYPE topic SYSTEM "minitopic.dtd">

Page 40: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Verfügbarkeit “PUBLIC”Eindeutige PUBLIC ID Schlüssel - muß nicht wirklich existieren

highlightDomain!utilitiesDomain!indexingDomain!hazardstatementDomain

abbreviateDomain!programmingDomain!softwareDomain!uiDomain!

topic.mod

<!DOCTYPE topic PUBLIC "-//IDN ditadocs.com//DTD Mini Topic//EN" "minitopic.dtd">

Page 41: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Wie erzähle ich es meine OT ?XML Katalog bildet PUBLIC IDs ab auf lokale Dateien

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE topic PUBLIC "-//IDN ditadocs.com//DTD Mini Topic//EN"" "minitopic.dtd"> <topic id="topic_vck_2nc_sn"> <title>Topic title</title> <body> <p>Topic paragraph</p> </body> </topic>

<!-- Custom DTDs defined by JANG Communication / ditadocs.com --> <public publicId="-//IDN ditadocs.com//DTD Mini Topic//EN"" uri="minitopic.dtd" " xml:base="plugins/com.ditadocs.minitopic/dtd/">"</public>

Page 42: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Einschränkungen (“Constraints”)

Page 43: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Extremes Constraint-ModulConstraints definieren Inhalts-Entitäten neu

!<?xml version="1.0" encoding="UTF-8"?> <!-- ====================================== Constraint Module: Paragraphs with only text. Copyright (c) 2014 JANG Communication ====================================== --><!ENTITY topic-constraints "(topic TextOnlyTopic-c)" > <!ENTITY % p.content " ( #PCDATA ) ">"

TextOnlyTopicConstraints.mod

Page 44: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Nicht alles ausschließen ?Definition der schon bekannten Entitäten wegen Verarbeitungsreihenfolge

!<?xml version=”1.0” encoding=”UTF-8”?>"<!-- Constraint module: highlights-only paragraphs " Copyright (c) 2010 Eliot Kimber -->"!<!ENTITY topic-constraints “(topic HighlightsOnlyTopic-c)” >"!<!ENTITY % b "b" > <!ENTITY % i "i" > <!ENTITY % u "u" > !<!ENTITY % p.content "(#PCDATA | %b; | %i; | %u;)*" >"

HighlightsOnlyTopicConstraints.mod

Page 45: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Constraints aktivierenReihenfolge der Definitionen in der DTD ist wichtig

!<!-- DOMAINS ATTRIBUTE OVERRIDE -->"!<!ENTITY included-domains "&topic-constraints;" > !<!-- CONTENT CONSTRAINT INTEGRATION -->"!<!ENTITY % TextOnlyTopic-c-def SYSTEM "TextOnlyTopicConstraint.mod"> %TextOnlyTopic-c-def; !<!-- TOPIC ELEMENT INTEGRATION -->"!..."

TextOnlyTopic.dtd

1 !!

2

Page 46: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Einschränkung der GültigkeitNur an Stellen, die im Constraint-Modul neu definiert wurden

!<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE topic PUBLIC "-//IDN ditadocs.com//DTD TextOnlyTopic//EN" " "TextOnlyTopic.dtd"> !<topic id="topic_vck_2nc_sn"> <title>Topic title</title> <body> <p>Topic paragraph with <term>Invalid</term> content.</p>" <note>The <term>Term</term> element is still valid here.</note> </body> </topic>

MyTestDoc.dita

Page 47: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

DITA-taugliche SoftwareAutomatische Erkennung der Einschränkungen und Spezialisierungen

Page 48: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Erlaubte EinschränkungenEingeschränktes Modell muß gegen allgemeines Modell validieren

!

!

!!

xx

xx

xx

x

x11

Page 49: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Eigenbau ElementeWenn die 534 Standard DITA Elemente nicht ausreichen

Page 50: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Spezialisierung

Page 51: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

hazardstatement

messagepanel

hazardsymbol

consequence

howtoavoid

typeofhazard

note

ul

image

li

p, ol, dl, sl, ...

fig, table, ...

apinamekeyword

GrundprinzipSpezialisierung geht immer von ein existierendes Element aus

Page 52: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Vererbung über “class” AttributZeigt komplette Abstammung des Elements

@class = “- topic/body task/taskbody mytask/mytaskbody “

Elemente

DTD Module

Struktur

@class = “+ topic/p mydomain-d/mypara “

Elemente

DTD ModuleDomain

Page 53: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Semantische ErweiterungErmöglicht einfache und bequeme Bereicherung der Inhalte

The basic principle in phenomenology is the episteme, or "putting the world within brackets". Whatever we may see in the outside world, we try to disregard. Not by closing our eyes, but by looking at the way we look at the world. The foreground (the world) becomes the background and the act of looking becomes the focus of our attention. Of course, this reflection (in an almost literal sense) can be repeated endlessly.

philosophy-term term

Page 54: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

ElementdefinitionMehrere Elemente können in einem Modul kombiniert werden

!<!-- ELEMENT NAME ENTITIES --><!ENTITY % philo-term "philo-term" > <!-- ELEMENT DECLARATIONS --><!ENTITY % philo-term.content " (#PCDATA)* " > <!ENTITY % philo-term.attributes ' %univ-atts; ' >"<!ELEMENT philo-term %philo-term.content; > <!ATTLIST philo-term %philo-term.attributes; > <!-- SPECIALIZATION ATTRIBUTE DECLARATIONS --><!ATTLIST philo-term %global-atts; " class CDATA "+ topic/term jang-d/philo-term " > !

JangDomain.mod

Page 55: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Definition der EntitätenWerden in der spezialisierten DTD eingebunden

!<!ENTITY % jang-d-term "philo-term" > <!ENTITY jang-d-att "(topic jang-d)" >"

JangDomain.ent

!<!ENTITY % jang-d-term " "philo-concept |" philosopher |" school |" dogma" " > <!ENTITY jang-d-att "(topic jang-d)" >"

Page 56: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

ElementdefinitionMehrere Elemente können in einem Modul kombiniert werden

!<!-- DOMAIN ENTITY DECLARATIONS --><!ENTITY % jang-d-dec SYSTEM "jangDomain.ent" >%jang-d-dec; !<!-- DOMAIN EXTENSIONS -->"!<!ENTITY % term "term | %jang-d-term; " >"!<!-- DOMAINS ATTRIBUTE OVERRIDE --><!ENTITY included-domains "&hi-d-att; &jang-d-att;" >"!<!-- DOMAIN ELEMENT INTEGRATION --><!ENTITY % jang-d-def SYSTEM "jangDomain.mod" >%jang-d-def;

philotopic.dtd

Page 57: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Neues Element verfügbarBlendet keine existierende Elemente aus

Page 58: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Festlegen einer StrukturKeine Formatierungsänderungen erforderlich

Page 59: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

recipebody

recipe concept

title

shortdesc

conbody

section

image

p

p

ul

li

ol

li

title

shortdesc

ingredient

recipeinfo

image

source

cuisine

ingredients

instructions

recipestep

Grundtypen auswählenIst das Mapping erlaubt ?

Page 60: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

recipebody

recipe topic

title

shortdesc

body

section

image

p

p

ul

li

ol

li

title

shortdesc

ingredient

recipeinfo

image

source

cuisine

ingredients

instructions

recipestep

Grundtypen auswählenIst das Mapping erlaubt ?

Page 61: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

recipebody

recipe task

title

shortdesc

taskbody

context

image

p

p

prereq

p

steps

step

title

shortdesc

ingredient

recipeinfo

image

source

cuisine

ingredients

instructions

recipestep

Grundtypen auswählenWelches Mapping ist optimal für Ihre Anwendung ?

Page 62: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

recipebody

recipe task

title

shortdesc

taskbody

context

image

p

p

prereq

ul

li

steps

step

cmd

title

shortdesc

ingredient

recipeinfo

image

source

cuisine

ingredients

recipesteps

recipestep

cmd

recipereqs

Struktur / Mapping optimierenEin iterativer Prozeß führt zu ein optimales Ergebnis

Page 63: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Testdokument erstellenSo lange es ungültig ist, ist Ihre DTD noch nicht richtig definiert

!<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE recipe SYSTEM "recipe.dtd" > <recipe id="risotto-mushrooms"> <title>Risotto with mushrooms</title> <shortdesc>A simple and fast Italian dish with a modern British twist." </shortdesc> <recipebody> <recipeinfo> <image></image> <recipesrc>Jamie Oliver</recipesrc> <recipestyle>Modern Italian</recipestyle> </recipeinfo> <recipereqs> <ingredients> <ingredient>500g risotto rice</ingredient> <ingredient>250g cellery</ingredient> <ingredient>3 cloves of garlic</ingredient>

risotto-mushrooms.xml

Page 64: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Shell DTD erstellenKopieren und anpassen ist eine effiziente und sichere Methode

!<?xml version="1.0" encoding="UTF-8"?> <!-- ============================================================= --><!-- HEADER --><!-- ============================================================= --><!-- MODULE: DITA Recipe DTD --><!-- VERSION: 1.0 --><!-- --><!-- SYSTEM: Darwin Information Typing Architecture (DITA) --><!-- --><!-- PURPOSE: DTD to describe DITA Recipes --><!-- --><!-- ORIGINAL CREATION DATE: --><!-- April 2014 --><!-- (C) Copyright JANG Communication 2014 --><!-- --><!-- ============================================================= -->"

recipe.dtd

Page 65: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Unbenötigte Domäne entfernenAlle Referenzen müssen entfernt werden

!<!ENTITY % hi-d-dec PUBLIC "-//OASIS//ENTITIES DITA 1.2 Highlight Domain//EN" "highlightDomain.ent" >%hi-d-dec; !<!ENTITY % ph "ph | %hi-d-ph; "> !<!ENTITY included-domains "&hi-d-att; &ut-d-att; &hazard-d-att;"> !<!ENTITY % hi-d-def PUBLIC "-//OASIS//ELEMENTS DITA 1.2 Highlight Domain//EN" "highlightDomain.mod" >%hi-d-def;

1 !

2 !

3 !!

4

recipe.dtd

Page 66: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Einbetten von Topics untersagenGenerell sind Tasks innerhalb einer Task erlaubt

!<!-- ============================================================= --><!-- TOPIC NESTING OVERRIDE --><!-- ============================================================= --><!-- Redefine the infotype entity to exclude other topic types and disallow nesting --><!ENTITY % recipe-info-types "no-topic-nesting" > !

recipe.dtd

Page 67: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Modul-Datei erstellenKopieren der "task.mod" und referenzieren in der neuen DTD

!<!-- ============================================================= --><!-- TOPIC ELEMENT INTEGRATION --><!-- ============================================================= --><!-- Embed topic to get generic elements --><!ENTITY % topic-type PUBLIC "-//OASIS//ELEMENTS DITA 1.2 Topic//EN" "../../base/dtd/topic.mod" > %topic-type; <!-- Embed recipe to get specific elements --><!ENTITY % recipe-typemod SYSTEM "recipe.mod" > %recipe-typemod;

technicalContent/dtd/task.mod recipe.mod

Page 68: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Entitäten definierenAlle spezialisierten Elemente werden in der "mod" Datei definiert

!<!-- ============================================================= --><!-- ELEMENT NAME ENTITIES --><!-- ============================================================= --><!ENTITY % recipe "recipe" ><!ENTITY % recipebody "recipebody" > <!ENTITY % recipesteps "recipesteps" ><!ENTITY % recipestep "recipestep" > <!ENTITY % recipereqs "recipereqs" > <!ENTITY % recipeinfo "recipeinfo" > <!ENTITY % recipesrc "recipesrc" ><!ENTITY % recipestyle "recipestyle" ><!ENTITY % ingredients "ingredients" ><!ENTITY % ingredient "ingredient" >

recipe.mod

Page 69: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Elemente definierenInhalte und Attribute aller spezialisierten Elemente

!<!-- ============================================================= --><!-- ELEMENT DECLARATIONS --><!-- ============================================================= --><!ENTITY % recipebody.content "((%recipeinfo;), (%recipereqs;), (%recipesteps;) )" > <!ENTITY % recipebody.attributes "%univ-atts;" > <!ELEMENT recipebody %recipebody.content;> <!ATTLIST recipebody %recipebody.attributes;>

recipe.mod

Page 70: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Abstammung definierenAttribut "class" muß zeigen, welche Vorfahren jedes Element hat

<!-- ============================================================= --><!-- SPECIALIZATION ATTRIBUTE DECLARATIONS --><!-- ============================================================= --><!ATTLIST recipe %global-atts; class CDATA "- topic/topic task/task recipe/recipe " > <!ATTLIST recipebody %global-atts; class CDATA "- topic/body task/taskbody recipe/recipebody " > <!ATTLIST recipesteps %global-atts; class CDATA "- topic/ol task/steps recipe/recipesteps " > <!ATTLIST recipestep %global-atts; class CDATA "- topic/li task/step recipe/recipestep " > <!ATTLIST recipereqs %global-atts; class CDATA "- topic/section task/prereq recipe/recipereqs " > <!ATTLIST recipeinfo %global-atts; class CDATA "- topic/section task/context recipe/recipeinfo " > <!ATTLIST recipesrc %global-atts; class CDATA "- topic/p recipe/recipesrc " > <!ATTLIST recipestyle %global-atts; class CDATA "- topic/p recipe/recipestyle " > <!ATTLIST ingredients %global-atts; class CDATA "- topic/ul recipe/ingredients " > <!ATTLIST ingredient %global-atts; class CDATA "- topic/li recipe/ingredient " >

recipe.mod

@class = “- module/element module/element “

Ursprung Spezialisierung

Leerzeichen am EndeStrukturell

Page 71: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Entitäten-Datei definierenEntität muß die Abstammung enthalten

<?xml version="1.0" encoding="UTF-8"?> <!-- ============================================================= --><!-- HEADER --><!-- ============================================================= --><!-- MODULE: DITA Recipe Entity --><!-- VERSION: 1.2 --><!-- DATE: April 2014 vvv --><!-- --><!-- ============================================================= --><!-- ============================================================= --><!-- RECIPE ENTITIES --><!-- ============================================================= --><!ENTITY recipe-att "(topic task recipe)" > <!-- ================== End Task Entities ======================== -->

recipe.ent

Page 72: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Entitäten-Datei referenzierenÜber SYSTEM oder per PUBLIC ID via "catalog-dita.xml"

!<!-- TOPIC ENTITY DECLARATIONS --><!ENTITY % recipe-dec PUBLIC "-//IDN ditadocs.com//DITA Recipe//EN" "recipe.ent" >%recipe-dec;"!<!-- DOMAINS ATTRIBUTE OVERRIDE --><!ENTITY included-domains "&task-att;" &recipe-att; &taskbody-constraints; " >

recipe.dtd

Page 73: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Rezepte editieren in XMLSicherstellen, daß alle Autoren den gleichen Struktur folgen

Page 74: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

XSLT und XPathSemantik ermöglicht einfaches Auffinden aller Inhalte

Page 75: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

XSLT und XSL-FOSemantik ermöglicht automagische Umwandlung der Inhalte

Page 76: Dita Spezialisierung - Wie machen Sie es, und warum Sie es machen sollen

Fragen ?

www.jang.nl!

[email protected]!

4everJang!

blogs.jang.nl