Entfernen eines Inline-Elements

(Auszug aus "DocBook-XML: Medienneutrales und plattformunabhängiges Publizieren" von Thomas Schraitle)

Inline-Elemente treten im Fließtext und noch an anderen Stellen auf (wie im title, subtitle…). Um ein Element dieser Kategorie zu entfernen, brauchen Sie mehr Code in DocBook 4 als in DocBook 5.

DocBook 4 anpassen

Gehen Sie für DocBook 4 wie folgt vor:

Prozedur: Entfernen von database in DocBook 4

  1. Deaktivieren von %database.module;
    Deaktivieren Sie das database-Element durch ein IGNORE mit Hilfe des Parameter-Entity %database.module;:
<!ENTITY % database.module "IGNORE">

Mit dieser Deklaration wird das Element inklusive aller Attribute deaktiviert.

  1. Wo ist database überall vorhanden?
    Suchen Sie in den Dateien *.mod und *.dtd der DocBook-DTD nach jedem Vorkommen des gesuchten Elements (hier database):
<!-- dbpoolx.mod --> 
<!ENTITY % tech.char.class "...|guisubmenu|database|interface..."> 
  1. Neudefinition von Element- und Entitydeklarationen
    Entfernen Sie in den gefundenen Element- und Entitydeklarationen das entsprechende Element. Ihre Anpassungsdatei sieht wie folgt aus:
<!ENTITY % database.module "IGNORE"> 
<!ENTITY % local.tech.char.class ""> 
<!ENTITY % tech.char.class 
     "action|application 
     |classname|methodname|interfacename|exceptionname 
     |ooclass|oointerface|ooexception 
     |command|computeroutput 
     |email|envar|errorcode|errorname|errortype|errortext 
     |filename|function|guibutton|guiicon|guilabel|guimenu 
     |guimenuitem|guisubmenu|hardware|interface|keycap 
     |keycode|keycombo|keysym|literal|constant|markup 
     |medialabel|menuchoice|mousebutton|option|optional 
     |parameter|prompt|property|replaceable|returnvalue 
     |sgmltag|structfield|structname|symbol|systemitem|token 
     |type|userinput|varname 
     %local.tech.char.class;"> 
<!ENTITY % DocBookDTD PUBLIC 
   "-//OASIS//DTD DocBook XML V4.5//EN" 
   "http://www.docbook.org/xml/4.5/docbookx.dtd"> 
%DocBookDTD;

In der Originaldatei dbpoolx.mod enthält das Parameter-Entity tech.char.class zusätzlich eine Zeile mit %ebnf.inline.hook;, die für das Einbinden des EBNF-Moduls zuständig ist. Aus Gründen der Einfachheit wurde sie nicht eingefügt.

  1. Verwenden der Anpassungsdatei
    Verwenden Sie die Anpassungsdatei an Stelle der Originaldatei von DocBook (vgl. Validieren mit einer DocBook 4-Anpassungsdatei).

DocBook 5 anpassen

Für DocBook 5 benötigen Sie sehr wenige Zeilen in Ihrer Anpassungsdatei:

<include href="docbook.rng">    
    <define name="db.database">
        <notAllowed/>
    </define>
</include>
include "docbook.rnc" {
   db.database = notAllowed
}
Tipp der data2type-Redaktion:
Zum Thema DocBook bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © 2009 Millin Verlag
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "DocBook-XML: Medienneutrales und plattformunabhängiges Publizieren" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

Millin Verlag, Siebengebirgsring 36, 53797 Lohmar, info(at)millin.de