XML für InDesign

In den letzten beiden Tage habe ich zwei weitere Mitarbeiter von Westteam Marketing GmbH im Bereich XML geschult. Auch diesmal war das große Thema: Wie bekomme ich aus einen in Adobe InDesign erstellten Katalog eine XML-Datei? Dazu haben wir uns am Anfang erstmal den Aufbau von XML, die Regeln und die Definitionen angesehen.

Im zweiten Teil sind wir dann näher auf das Regelwerk und die damit zusammenhängende DTD eingegangen. Wir haben uns Gedanken darüber gemacht, wie ein Regelwerk eines fiktiven Adressbuches aussehen könnte. Später haben wir als Übung noch ein Regelwerk, also DTD, für den Aufbau von Büchern erstellt.

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!ELEMENT buch(impressum,verzeichnisse?+,inhalt)>
  3. <!ELEMENT impressum(titel,isbn,autoren,buchreihe,verlag)>
  4. <!ELEMENT titel (#PCDATA)>
  5. <!ELEMENT isbn (#PCDATA)>
  6. <!ELEMENT autoren (autor+)>
  7. <!ELEMENT autor (#PCDATA)>
  8. <!ELEMENT buchreihe(#PCDATA)>
  9. <!ELEMENT verlag (#PCDATA)>
  10. <!ELEMENTverzeichnisse (index?,literatur?,abbildung?)>
  11. <!ELEMENT index(eintrage+)>
  12. <!ELEMENT eintrag (name,seite+)>
  13. <!ELEMENT name (#PCDATA)>
  14. <!ELEMENT seite (#PCDATA)>
  15. <!ELEMENT literatur(eintrage+)>
  16. <!ELEMENT abbildung(eintrage+)>
  17. <!ELEMENT inhalt(vorwort*,einleitung*,danksagung*,kapitel+,anhang*)>
  18. <!ELEMENT vorwort(#PCDATA)>
  19. <!ELEMENT einleitung(#PCDATA)>
  20. <!ELEMENT danksagung(#PCDATA)>
  21. <!ELEMENT kapitel (name,(kapitel|text|bild|tabelle|hinweis)+)>
  22. <!ELEMENT name (#PCDATA)>
  23. <!ELEMENT text (#PCDATA)>
  24. <!ELEMENT hinweis (text+)>
  25. <!ELEMENT bild EMPTY>
  26. <!ELEMENT tabelle EMPTY>
  27. <!ELEMENT anhang (name,(kapitel|text|bild|tabelle|hinweis)+)>

Zusätzlich habe ich zum Vergleich hier noch ein XML-Schema

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <schematargetNamespace="http://www.re-design.de/xmlbuch/example" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.re-design.de/xmlbuch/example">
  3. <element name="buch" type="tns:buch"></element>
  4. <complexType name="buch">
  5. <sequence>
  6. <element ref="tns:impressum"></element>
  7. <element ref="tns:verzeichnisse"></element>
  8. <element ref="tns:inhalt"></element>
  9. </sequence>
  10. </complexType>
  11. <elementname="impressum" type="tns:impressum"></element>
  12. <complexTypename="impressum">
  13. <sequence>
  14. <element ref="tns:titel"></element>
  15. <element ref="tns:isbn"></element>
  16. <element ref="tns:autoren"></element>
  17. <element ref="tns:buchreihe" minOccurs="0" maxOccurs="1"></element>
  18. <element ref="tns:verlag"></element>
  19. </sequence>
  20. </complexType>
  21. <element name="titel" type="string"></element>
  22. <element name="isbn" type="int"></element>
  23. <element name="buchreihe" type="string"></element>
  24. <element name="verlag" type="string"></element>
  25. <element name="autoren" type="tns:autoren"></element>
  26. <complexType name="autoren">
  27. <sequence>
  28. <element ref="tns:autor" minOccurs="1" maxOccurs="unbounded"></element>
  29. </sequence>
  30. </complexType>
  31. <element name="autor" type="string"></element>
  32. <element name="verzeichnisse" type="tns:verzeichnisse" ></element>
  33. <complexType name="verzeichnisse">
  34. <sequence>
  35. <element ref="tns:index" minOccurs="0" maxOccurs="1"></element>
  36. <element ref="tns:literatur" minOccurs="0" maxOccurs="1"></element>
  37. <element ref="tns:abbildung" minOccurs="0" maxOccurs="1"></element>
  38. </sequence>
  39. </complexType>
  40. <element name="index" type="tns:index"></element>
  41. <complexType name="index">
  42. <sequence>
  43. <element ref="tns:eintrag" minOccurs="1" maxOccurs="unbounded"></element>
  44. </sequence>
  45. </complexType>
  46. <element name="literatur" type="tns:literatur"></element>
  47. <complexType name="literatur">
  48. <sequence>
  49. <element ref="tns:eintrag" minOccurs="1" maxOccurs="unbounded"></element>
  50. </sequence>
  51. </complexType>
  52. <element name="abbildung" type="tns:abbildung"></element>
  53. <complexType name="abbildung">
  54. <sequence>
  55. <element ref="tns:eintrag" minOccurs="1" maxOccurs="unbounded"></element>
  56. </sequence>
  57. </complexType>
  58. <element name="eintrag" type="tns:eintrag"></element>
  59. <complexType name="eintrag">
  60. <sequence>
  61. <element ref="tns:name"></element>
  62. <element ref="tns:seite" minOccurs="1" maxOccurs="unbounded"></element>
  63. </sequence>
  64. </complexType>
  65. <element name="name" type="string"></element>
  66. <element name="seite" type="int"></element>
  67. <element name="inhalt" type="tns:inhalt"></element>
  68. <complexType name="inhalt">
  69. <sequence>
  70. <element ref="tns:vorwort" minOccurs="0" maxOccurs="unbounded"></element>
  71. <element ref="tns:einleitung" minOccurs="0" maxOccurs="unbounded"></element>
  72. <element ref="tns:kapitel" minOccurs="1" maxOccurs="unbounded"></element>
  73. <element ref="tns:abbildung" minOccurs="0" maxOccurs="unbounded"></element>
  74. </sequence>
  75. </complexType>
  76. <element name="vorwort" type="string"></element>
  77. <element name="einleitung" type="string"></element>
  78. <element name="danksagung" type="string"></element>
  79. <element name="kapitel" type="tns:kapitel"></element>
  80. <complexType name="kapitel">
  81. <sequence>
  82. <element ref="tns:name"></element>
  83. <choice minOccurs="1" maxOccurs="unbounded">
  84. <element ref="tns:kapitel"></element>
  85. <element ref="tns:text"></element>
  86. <element ref="tns:bild"></element>
  87. <element ref="tns:hinweis"></element>
  88. <element ref="tns:tabelle"></element>
  89. </choice>
  90. </sequence>
  91. </complexType>
  92. <element name="text" type="string"></element>
  93. <element name="hinweis" type="tns:hinweis"></element>
  94. <complexType name="hinweis">
  95. <sequence>
  96. <element ref="tns:text"></element>
  97. </sequence>
  98. </complexType>
  99. <element name="bild" type="anyURI"></element>
  100. <element name="anhang" type="tns:anhang"></element>
  101. <complexType name="anhang">
  102. <sequence>
  103. <element ref="tns:text"></element>
  104. </sequence>
  105. </complexType>
  106. <element name="tabelle" type="string"></element>
  107. </schema>

Aus diesen beiden Regelwerken könnte dann eine folgende XML Datei entstehen:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE buch SYSTEM "buch.dtd">
  3. <buch>
  4. <impressum>
  5. <titel></titel>
  6. <isbn></isbn>
  7. <autoren>
  8. <autor></autor>
  9. </autoren>
  10. <buchreihe></buchreihe>
  11. <verlag></verlag>
  12. </impressum>
  13. <verzeichnisse>
  14. <index>
  15. <eintrag>
  16. <name></name>
  17. <seite></seite>
  18. </eintrag>
  19. </index>
  20. </verzeichnisse>
  21. <inhalt>
  22. <vorwort></vorwort>
  23. <einleitung></einleitung>
  24. <kapitel>
  25. <name></name>
  26. <text></text>
  27. <kapitel>
  28. <name></name>
  29. <text></text>
  30. <bild />
  31. </kapitel>
  32. <text></text>
  33. <tabelle></tabelle>
  34. <text></text>
  35. <hinweis></hinweis>
  36. </kapitel>
  37. <anhang>
  38. <name></name>
  39. <text></text>
  40. </anhang>
  41. </inhalt>
  42. </buch>

alle Dateien zum Download

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.