FAQ-Plugin einbinden (Teil 2)

Anleitung: So binden Sie die DITA-Domains in die FAQ-DTD ein.

Das Einbinden erfolgt in folgenden Schritten, die anschließend genauer beschrieben werden:

  1. Ein FAQ-DTD-Plugin mit plugin.xml und zwei catalog.xml-Dateien im Plugin-Ordner des DITA-OTs anlegen.
  2. faq.mod kopieren und neue FAQ-DTD nach Vorbild faq_shell.dtd anpassen.
  3. integrator.xml aufrufen.

Die folgenden Handlungsschritte sind nach der Lektüre von Eliot Kimbers Tutorial zur Spezialisierung entstanden. Untenstehend finden Sie den Link.

Um die Domains wie z.B. User Interface in die FAQ-DTD einzubinden, habe ich das Tutorial von Eliot Kimber beherzigt [1]. Und das hieß: Find an existing shell that is close to what you want to end up with and copy it to a new location. Mein ursprünglicher Plan, der Datei demo/faq/faq_shell.dtd die nötigen Domains hinzuzufügen, war zuvor leider gescheitert. Nun also hier der umgekehrte Weg: einer DTD, die bereits erfolgreich die Domains integriert, durch FAQ-spezifische Angaben bereichern.
  1. Legen Sie im Plugin-Ordner des DITA-OT ein neues Verzeichnis org.yourdomain.faq.doctypes an. Ersetzen Sie org.yourdomain mit Ihrem Domainnamen.
  2. Legen Sie im neu erstellten Ordner eine Datei plugin.xml mit folgenden Inhalt an:
    <plugin id="org.yourdomain.faq.doctypes">
      <feature extension="dita.specialization.catalog.relative" value="catalog.xml" type="file"/>
    </plugin>
    
  3. Legen Sie im neu erstellten Ordner eine Datei catalog.xml mit folgenden Inhalt an:
    <?xml version="1.0" encoding="UTF-8"?>
    <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public">
      <nextCatalog catalog="dtd/catalog.xml"/>
    </catalog>
    
  4. Erstellen Sie im Ordner org.yourdomain.faq.dtd einen Unterordner dtd.
  5. Kopieren Sie aus dem Verzeichnis demo/faq die Datei faq.mod in das neu erstellte dtd-Unterverzeichnis.
  6. Erstellen Sie im dtd-Unterverzeichnis eine neue Datei namens catalog.xml mit folgendem Inhalt:
    <?xml version="1.0" encoding="UTF-8"?>
    <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public">
      <public publicId="urn:pubid:yourdomain.org:doctypes:dita:faq" uri="faq_shell.dtd"/>
      <system systemId="urn:pubid:yourdomain.org:doctypes:dita:faq" uri="faq_shell.dtd"/>
      <public publicId="urn:pubid:yourdomain.org:modules:faq.mod" uri="faq.mod"/>
      <system systemId="urn:pubid:yourdomain.org:modules:faq.mod" uri="faq.mod"/>
    </catalog>
    
    Ersetzen Sie org.yourdomain mit Ihrem Domainnamen.
  7. Kopieren Sie die Datei reference.dtd aus dem Dita4Publishers-Ordner net.sourceforge.dita4publishers.doctypes/doctypes/reference/dtd in den Ordner org.yourdomain.faq.doctypes/dtd. Benennen Sie die Datei um in faq_shell.dtd.
  8. Öffnen Sie die Datei und suchen Sie folgenden Eintrag:
    <!ENTITY % reference-info-types "reference">

    Ändern Sie diesen Eintrag um in:

    <!ENTITY % faq-info-types "faq">
  9. Suchen Sie folgenden Eintrag:
    <!ENTITY % reference-typemod PUBLIC "-//OASIS//ELEMENTS DITA Reference//EN" "../dita-base/reference.mod">
     %reference-typemod;

    Ändern Sie diesen Eintrag um in:

    <!ENTITY % faq-typemod PUBLIC "urn:pubid:yourdomain.org:modules:faq" "faq.mod">
    %faq-typemod;
  10. Öffnen Sie das DITA-Toolkit auf Kommandoebene und geben Sie den Befehl ant -f integrator.xml ein.


    Abbildung 1. Starten der startcmd.bat und Skript ausführen
  11. Kopieren Sie die Datei demo/faq/ditafaq.xml in Ihr topic-Verzeichnis, benennen Sie sie um und nutzen Sie diese als Vorlage für Ihre individuellen FAQ-Seiten. Binden Sie neue FAQ-Topics in die die ditamap ein. Benutzen Sie dabei das Attribut type=”faq”.