Spezialisierung in DITA
Jang F.M. Graat !
JANG Communication - Amsterdam
Wie machen Sie es, und warum sollen Sie es machen...
Wer Spricht ?
✤ Jang F.M. Graat!
✤ Technische Redaktion!
✤ FM, RH, MadCap!
✤ DITA, XSLT, JS, CSS!
✤ Minimalist!
✤ Psycholo...
Tom Aldous
✤ Integrated Technologies!
✤ Adobe (TechCom)!
✤ Acrolinx!
✤ 2-teiliges Webinar 

“DITA Specialization”
Eliot Kimber
✤ IBM!
✤ Innodata Isogen!
✤ RSI Content Solutions!
✤ Contrext Solutions!
✤ DITA Configuration and
Specializati...
Spezialisierung -Was ist es ?
Spezialisierung ist Alleinstellungsmerkmal von DITA
DITA, also nicht “ITA”
Spezialisierung ≠ Evolution
Keine völlig neue Elemente oder Strukturen
topic
title
shortdesc
prolog
body
p, note, ...
ol, ul, dl, ...
fig, image, ...
table
section
example
bodydiv
related-links...
Grundtyp “Zimmer”
Erforderlich: Tür, Wände, Boden, Decke. Optional: viele Elemente
Spezialisierung “Schlafzimmer”
Erforderlich: Bett. Nicht erlaubt: Küchenmöbel, Büro, Esstisch, ...
Spezialisierung “Esszimmer”
Erforderlich: Esstisch, Stüle. Nicht erlaubt: Bett, Kleiderschrank, Toilette, ...
EineTerrasse ist kein Zimmer
Erforderlich für Grundtyp “Zimmer”: Tür, Wände, Decke.
prolog
body
p
note
fig
table
section
example
bodydiv
related-links
topic
hazardstatement
messagepanel
hazardsymbol
consequ...
Grundtyp “Stuhl”
Jeder weiß, wofür dieses Element gedacht ist
Spezialisierung “Bürostuhl”
Hat extra Möglichkeiten, bleibt aber wesentlich ein Sitzplatz
Spezialisierung “Designstuhl”
Kosmetische Anpassungen, gleiche Funktionalität
Hart an die Grenze
Würde man normalerweise nicht als Sitzplatz akzeptieren
topic
title
shortdesc
prolog
body
p, note, ...
ol, ul, dl, ...
fig, image, ...
table
section
example
bodydiv
related-links...
topic
title
shortdesc
prolog
body
p
ol
ul
table
section
example
bodydiv
related-links
topic
task
title
shortdesc
prolog
ta...
Spezialisierung -Warum ?
0"
100"
200"
300"
400"
500"
600"
1.0" 1.1" 1.2"
Base"
Spec"
Anzahl der DITA-Elemente
DITA “out-of-the-box” verwenden ist S...
HTML Elemente : Formatierung
Bezug auf der Visualisierung in Ihrem Browser
<h1>Titel</h1>!
<p>Text mit einige <i>Formatier...
XML Elemente : Semantik
Bezug auf Bedeutung der Elemente in deren Kontext
<topic>!
<title>Performing a task</title>!
<shor...
Welche Elemente brauchen Sie ?
Jede bedeutungsvolle Semantik ist nur lokal gültig
Welche Elemente brauchen Sie ?
Jede bedeutungsvolle Semantik ist nur lokal gültig
“Jeder Nachteil hat seinen Vorteil” (Johan Cruijff)
Benutzungsorientiert
Elemente ausblenden
Elemente minimieren = Eindeutigkeit maximieren
Elemente einblenden
Sicherstellen, daß bestimmte Elemente eingefügt werden
Terminologie erweitern
Elementnamen ermöglichen automatische Datenverarbeitung
Struktur festlegen
Lesbarkeit und Auffindbarkeit der Infos verbessern
Kreativität eingrenzen
Benutzer brauchen Infos, keine Romane
Spezialisierung -Wie ?
Auswahl der Zutaten
Einschränkung durch Konfiguration und “Constraints”
Konfiguration einer DTD-Shell
DITA DTDs - Modulare Aufbau
DTD Topic Type Shell definiert welche Module eingebunden werden
DTDTopicType Shell
Definiert welche DTD Module eingebunden werden
highlightDomain!
utilitiesDomain!
indexingDomain!
hazards...
BaseTopicTyp
Nur unspezifische Domäne sind eingebunden
highlightDomain!
utilitiesDomain!
indexingDomain!
hazardstatementDom...
Entfernen einer Domain
Alle Referenzen müssen entfernt werden
!
<!ENTITY % hi-d-dec 

PUBLIC "-//OASIS//ENTITIES DITA 1.2 ...
MinimalerTopicTyp
Keine Spezialisierung oder Einschränkung (“.mod” Datei) erforderlich
highlightDomain!
utilitiesDomain!
i...
Verfügbarkeit “PUBLIC”
Eindeutige PUBLIC ID Schlüssel - muß nicht wirklich existieren
highlightDomain!
utilitiesDomain!
in...
Wie erzähle ich es meine OT ?
XML Katalog bildet PUBLIC IDs ab auf lokale Dateien
<?xml version="1.0" encoding="UTF-8"?>

...
Einschränkungen (“Constraints”)
Extremes Constraint-Modul
Constraints definieren Inhalts-Entitäten neu
!
<?xml version="1.0" encoding="UTF-8"?>

<!-- =====...
Nicht alles ausschließen ?
Definition der schon bekannten Entitäten wegen Verarbeitungsreihenfolge
!
<?xml version=”1.0” en...
Constraints aktivieren
Reihenfolge der Definitionen in der DTD ist wichtig
!
<!-- DOMAINS ATTRIBUTE OVERRIDE -->"
!
<!ENTIT...
Einschränkung der Gültigkeit
Nur an Stellen, die im Constraint-Modul neu definiert wurden
!
<?xml version="1.0" encoding="U...
DITA-taugliche Software
Automatische Erkennung der Einschränkungen und Spezialisierungen
Erlaubte Einschränkungen
Eingeschränktes Modell muß gegen allgemeines Modell validieren
!
!
!
!
x
x
x
x
x
x
x
x11
Eigenbau Elemente
Wenn die 534 Standard DITA Elemente nicht ausreichen
Spezialisierung
hazardstatement
messagepanel
hazardsymbol
consequence
howtoavoid
typeofhazard
note
ul
image
li
p, ol, dl, sl, ...
fig, tab...
Vererbung über “class”Attribut
Zeigt komplette Abstammung des Elements
@class = “- topic/body task/taskbody mytask/mytaskb...
Semantische Erweiterung
Ermöglicht einfache und bequeme Bereicherung der Inhalte
The basic principle in phenomenology is t...
Elementdefinition
Mehrere Elemente können in einem Modul kombiniert werden
!
<!-- ELEMENT NAME ENTITIES -->



<!ENTITY % ...
Definition der Entitäten
Werden in der spezialisierten DTD eingebunden
!
<!ENTITY % jang-d-term "philo-term" >



<!ENTITY...
Elementdefinition
Mehrere Elemente können in einem Modul kombiniert werden
!
<!-- DOMAIN ENTITY DECLARATIONS -->



<!ENTI...
Neues Element verfügbar
Blendet keine existierende Elemente aus
Festlegen einer Struktur
Keine Formatierungsänderungen erforderlich
recipebody
recipe concept
title
shortdesc
conbody
section
image
p
p
ul
li
ol
li
title
shortdesc
ingredient
recipeinfo
imag...
recipebody
recipe topic
title
shortdesc
body
section
image
p
p
ul
li
ol
li
title
shortdesc
ingredient
recipeinfo
image
sou...
recipebody
recipe task
title
shortdesc
taskbody
context
image
p
p
prereq
p
steps
step
title
shortdesc
ingredient
recipeinf...
recipebody
recipe task
title
shortdesc
taskbody
context
image
p
p
prereq
ul
li
steps
step
cmd
title
shortdesc
ingredient
r...
Testdokument erstellen
So lange es ungültig ist, ist Ihre DTD noch nicht richtig definiert
!
<?xml version="1.0" encoding="...
Shell DTD erstellen
Kopieren und anpassen ist eine effiziente und sichere Methode
!
<?xml version="1.0" encoding="UTF-8"?>
...
Unbenötigte Domäne entfernen
Alle Referenzen müssen entfernt werden
!
<!ENTITY % hi-d-dec 

PUBLIC "-//OASIS//ENTITIES DIT...
Einbetten vonTopics untersagen
Generell sind Tasks innerhalb einer Task erlaubt
!
<!-- ===================================...
Modul-Datei erstellen
Kopieren der "task.mod" und referenzieren in der neuen DTD
!
<!-- ==================================...
Entitäten definieren
Alle spezialisierten Elemente werden in der "mod" Datei definiert
!
<!-- =============================...
Elemente definieren
Inhalte und Attribute aller spezialisierten Elemente
!
<!-- ==========================================...
Abstammung definieren
Attribut "class" muß zeigen, welche Vorfahren jedes Element hat
<!-- ===============================...
Entitäten-Datei definieren
Entität muß die Abstammung enthalten
<?xml version="1.0" encoding="UTF-8"?>

<!-- =============...
Entitäten-Datei referenzieren
Über SYSTEM oder per PUBLIC ID via "catalog-dita.xml"
!
<!-- TOPIC ENTITY DECLARATIONS -->

...
Rezepte editieren in XML
Sicherstellen, daß alle Autoren den gleichen Struktur folgen
XSLT und XPath
Semantik ermöglicht einfaches Auffinden aller Inhalte
XSLT und XSL-FO
Semantik ermöglicht automagische Umwandlung der Inhalte
Fragen ?
www.jang.nl!
jang@jang.nl!
4everJang!
blogs.jang.nl
Upcoming SlideShare
Loading in …5
×

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

453
-1

Published on

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.

Published in: Education
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
453
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. Spezialisierung in DITA Jang F.M. Graat ! JANG Communication - Amsterdam Wie machen Sie es, und warum sollen Sie es machen ? TUT2
  2. 2. Wer Spricht ? ✤ Jang F.M. Graat! ✤ Technische Redaktion! ✤ FM, RH, MadCap! ✤ DITA, XSLT, JS, CSS! ✤ Minimalist! ✤ Psychologe, Philosoph! ✤ Weltbürger in Amsterdam
  3. 3. Tom Aldous ✤ Integrated Technologies! ✤ Adobe (TechCom)! ✤ Acrolinx! ✤ 2-teiliges Webinar 
 “DITA Specialization”
  4. 4. Eliot Kimber ✤ IBM! ✤ Innodata Isogen! ✤ RSI Content Solutions! ✤ Contrext Solutions! ✤ DITA Configuration and Specialization Tutorials! ✤ www.xiruss.org
  5. 5. Spezialisierung -Was ist es ?
  6. 6. Spezialisierung ist Alleinstellungsmerkmal von DITA DITA, also nicht “ITA”
  7. 7. Spezialisierung ≠ Evolution Keine völlig neue Elemente oder Strukturen
  8. 8. 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 Spezialisierung Anpassung der internen Struktur (Elemente, Reihenfolge)
  9. 9. Grundtyp “Zimmer” Erforderlich: Tür, Wände, Boden, Decke. Optional: viele Elemente
  10. 10. Spezialisierung “Schlafzimmer” Erforderlich: Bett. Nicht erlaubt: Küchenmöbel, Büro, Esstisch, ...
  11. 11. Spezialisierung “Esszimmer” Erforderlich: Esstisch, Stüle. Nicht erlaubt: Bett, Kleiderschrank, Toilette, ...
  12. 12. EineTerrasse ist kein Zimmer Erforderlich für Grundtyp “Zimmer”: Tür, Wände, Decke.
  13. 13. prolog body p note fig table section example bodydiv related-links topic hazardstatement messagepanel hazardsymbol consequence howtoavoid typeofhazard Domainbezogen Spezialisierung Alternatives Element hinzufügen
  14. 14. Grundtyp “Stuhl” Jeder weiß, wofür dieses Element gedacht ist
  15. 15. Spezialisierung “Bürostuhl” Hat extra Möglichkeiten, bleibt aber wesentlich ein Sitzplatz
  16. 16. Spezialisierung “Designstuhl” Kosmetische Anpassungen, gleiche Funktionalität
  17. 17. Hart an die Grenze Würde man normalerweise nicht als Sitzplatz akzeptieren
  18. 18. 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. DITATopic-Typen Spezialisierungen von (Einschränkungen auf) Grundtyp “topic”
  19. 19. 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 Spezialisierung Mehr Einschränkungen bei jedem Schritt (nur Strukturbezogen)
  20. 20. Spezialisierung -Warum ?
  21. 21. 0" 100" 200" 300" 400" 500" 600" 1.0" 1.1" 1.2" Base" Spec" Anzahl der DITA-Elemente DITA “out-of-the-box” verwenden ist Schwachsinn 145 158 170 48 140 364
  22. 22. HTML Elemente : Formatierung Bezug 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>
  23. 23. XML Elemente : Semantik Bezug 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>
  24. 24. Welche Elemente brauchen Sie ? Jede bedeutungsvolle Semantik ist nur lokal gültig
  25. 25. Welche Elemente brauchen Sie ? Jede bedeutungsvolle Semantik ist nur lokal gültig
  26. 26. “Jeder Nachteil hat seinen Vorteil” (Johan Cruijff) Benutzungsorientiert
  27. 27. Elemente ausblenden Elemente minimieren = Eindeutigkeit maximieren
  28. 28. Elemente einblenden Sicherstellen, daß bestimmte Elemente eingefügt werden
  29. 29. Terminologie erweitern Elementnamen ermöglichen automatische Datenverarbeitung
  30. 30. Struktur festlegen Lesbarkeit und Auffindbarkeit der Infos verbessern
  31. 31. Kreativität eingrenzen Benutzer brauchen Infos, keine Romane
  32. 32. Spezialisierung -Wie ?
  33. 33. Auswahl der Zutaten Einschränkung durch Konfiguration und “Constraints”
  34. 34. Konfiguration einer DTD-Shell
  35. 35. DITA DTDs - Modulare Aufbau DTD Topic Type Shell definiert welche Module eingebunden werden
  36. 36. DTDTopicType Shell Definiert 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">

  37. 37. BaseTopicTyp Nur 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">

  38. 38. Entfernen einer Domain Alle 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
  39. 39. MinimalerTopicTyp Keine Spezialisierung oder Einschränkung (“.mod” Datei) erforderlich highlightDomain! utilitiesDomain! indexingDomain! hazardstatementDomain abbreviateDomain! programmingDomain! softwareDomain! uiDomain! topic.mod <!DOCTYPE topic SYSTEM "minitopic.dtd">

  40. 40. 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">

  41. 41. 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>

  42. 42. Einschränkungen (“Constraints”)
  43. 43. Extremes Constraint-Modul Constraints 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
  44. 44. 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
  45. 45. Constraints aktivieren Reihenfolge 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
  46. 46. Einschränkung der Gültigkeit Nur 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
  47. 47. DITA-taugliche Software Automatische Erkennung der Einschränkungen und Spezialisierungen
  48. 48. Erlaubte Einschränkungen Eingeschränktes Modell muß gegen allgemeines Modell validieren ! ! ! ! x x x x x x x x11
  49. 49. Eigenbau Elemente Wenn die 534 Standard DITA Elemente nicht ausreichen
  50. 50. Spezialisierung
  51. 51. hazardstatement messagepanel hazardsymbol consequence howtoavoid typeofhazard note ul image li p, ol, dl, sl, ... fig, table, ... apinamekeyword Grundprinzip Spezialisierung geht immer von ein existierendes Element aus
  52. 52. Vererbung über “class”Attribut Zeigt komplette Abstammung des Elements @class = “- topic/body task/taskbody mytask/mytaskbody “ Elemente DTD Module Struktur @class = “+ topic/p mydomain-d/mypara “ Elemente DTD Module Domain
  53. 53. Semantische Erweiterung Ermö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-termterm
  54. 54. Elementdefinition Mehrere 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
  55. 55. Definition der Entitäten Werden 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)" >" 

  56. 56. Elementdefinition Mehrere 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
  57. 57. Neues Element verfügbar Blendet keine existierende Elemente aus
  58. 58. Festlegen einer Struktur Keine Formatierungsänderungen erforderlich
  59. 59. 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ählen Ist das Mapping erlaubt ?
  60. 60. 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ählen Ist das Mapping erlaubt ?
  61. 61. 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ählen Welches Mapping ist optimal für Ihre Anwendung ?
  62. 62. 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 optimieren Ein iterativer Prozeß führt zu ein optimales Ergebnis
  63. 63. Testdokument erstellen So 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
  64. 64. Shell DTD erstellen Kopieren 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
  65. 65. Unbenötigte Domäne entfernen Alle 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
  66. 66. Einbetten vonTopics untersagen Generell 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
  67. 67. Modul-Datei erstellen Kopieren 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
  68. 68. Entitäten definieren Alle 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
  69. 69. Elemente definieren Inhalte 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
  70. 70. Abstammung definieren Attribut "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
  71. 71. Entitäten-Datei definieren Entitä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
  72. 72. 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
  73. 73. Rezepte editieren in XML Sicherstellen, daß alle Autoren den gleichen Struktur folgen
  74. 74. XSLT und XPath Semantik ermöglicht einfaches Auffinden aller Inhalte
  75. 75. XSLT und XSL-FO Semantik ermöglicht automagische Umwandlung der Inhalte
  76. 76. Fragen ? www.jang.nl! jang@jang.nl! 4everJang! blogs.jang.nl

×