Entfernen einer kompletten Klasse

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

Möglicherweise sind Ihre Änderungen derart, dass Sie eine komplette Klasse von Elementen entfernen möchten, wie alle Inlinegrafiken, Inlineformeln usw. Das Vorgehen für DocBook 4 ist etwas komplizierter als die vorhergenden Anpassungen. Gehen Sie wie folgt vor:

DocBook 4 anpassen

Prozedur: Entfernen von Inlinegrafiken, Inlineformeln usw. in DocBook 4

  1. Deaktivieren von %informal.class;
    Fügen Sie in Ihre Anpassungsdatei folgende Zeile ein:
<!ENTITY % informal.class "">
  1. Aktivieren der Redeklarierungsparameter
    Fügen Sie die folgenden Zeilen ein:
<!ENTITY % dbhier.redecl.module "INCLUDE"> 
<!ENTITY % rdbhier SYSTEM "db-informal.rdbhier.mod">

<!ENTITY % dbpool.redecl.module "INCLUDE"> 
<!ENTITY % rdbpool SYSTEM "db-informal.rdbpool.mod">
  1. Laden der DocBook-DTD
    Fügen Sie folgende Zeilen in Ihre Anpassungsdatei, um die DocBook-DTD zu laden:
<!ENTITY % DocBookDTD PUBLIC 
   "-//OASIS//DTD DocBook XML V4.5//EN" 
   "http://www.docbook.org/xml/4.5/docbookx.dtd"> 
%DocBookDTD;
  1. Anlegen der Datei db-informal.rdbpool.mod
    Erstellen Sie eine Datei db-informal.rdbpool.mod. Diese Datei enthält keine %informal.class;-Entities mehr:
<!ENTITY % local.component.mix ""> 
<!ENTITY % component.mix 
                "%list.class;           |%admon.class; 
                |%linespecific.class;   |%synop.class; 
                |%para.class; 
                |%formal.class;         |%compound.class; 
                |%genobj.class;         |%descobj.class; 
                |%ndxterm.class;        |beginpage 
                %local.component.mix;"> 

<!ENTITY % local.sidebar.mix ""> 
<!ENTITY % sidebar.mix 
                "%list.class;           |%admon.class; 
                |%linespecific.class;   |%synop.class; 
                |%para.class; 
                |%formal.class;         |procedure 
                |%genobj.class; 
                |%ndxterm.class;        |beginpage 
                %local.sidebar.mix;"> 

<!ENTITY % local.qandaset.mix ""> 
<!ENTITY % qandaset.mix 
                "%list.class;           |%admon.class; 
                |%linespecific.class;   |%synop.class; 
                |%para.class; 
                |%formal.class;         |procedure 
                |%genobj.class; 
                |%ndxterm.class; 
                %local.qandaset.mix;"> 


<!ENTITY % local.revdescription.mix ""> 
<!ENTITY % revdescription.mix 
                "%list.class;           |%admon.class; 
                |%linespecific.class;   |%synop.class; 
                |%para.class; 
                |%formal.class;         |procedure 
                |%genobj.class; 
                |%ndxterm.class; 
                %local.revdescription.mix;"> 

<!ENTITY % local.footnote.mix ""> 
<!ENTITY % footnote.mix 
                "%list.class; 
                |%linespecific.class;   |%synop.class; 
                |%para.class; 
                %local.footnote.mix;"> 

<!ENTITY % local.example.mix ""> 
<!ENTITY % example.mix 
                "%list.class; 
                |%linespecific.class;   |%synop.class; 
                |%para.class; 
                |%ndxterm.class;        |beginpage 
                %local.example.mix;"> 

<!ENTITY % local.highlights.mix ""> 
<!ENTITY % highlights.mix 
                "%list.class;           |%admon.class; 
                |%para.class; 
                |%ndxterm.class; 
                %local.highlights.mix;"> 

<!ENTITY % local.para.mix ""> 
<!ENTITY % para.mix 
                "%list.class;           |%admon.class; 
                |%linespecific.class; 
                |%formal.class; 
                %local.para.mix;"> 

<!ENTITY % local.admon.mix ""> 
<!ENTITY % admon.mix 
                "%list.class; 
                |%linespecific.class;   |%synop.class; 
                |%para.class; 
                |%formal.class;         |procedure|sidebar 
                |anchor|bridgehead|remark 
                |%ndxterm.class;        |beginpage 
                %local.admon.mix;">
  1. Anlegen der Datei db-informal.rdbhier.mod
    Erstellen Sie eine Datei db-informal.rdbhier.mod. Diese Datei enthält alle %*.mix;-Entities, die in dbhierx.mod vorhanden sind:
<!ENTITY % local.divcomponent.mix ""> 
<!ENTITY % divcomponent.mix 
                "%list.class;           |%admon.class; 
                |%linespecific.class;   |%synop.class; 
                |%para.class; 
                |%formal.class;         |%compound.class; 
                |%genobj.class;         |%descobj.class; 
                |%ndxterm.class;        |beginpage 
                %forms.hook; 
                %local.divcomponent.mix;"> 

<!ENTITY % local.refcomponent.mix ""> 
<!ENTITY % refcomponent.mix 
                "%list.class;           |%admon.class; 
                |%linespecific.class;   |%synop.class; 
                |%para.class; 
                |%formal.class;         |%compound.class; 
                |%genobj.class;         |%descobj.class; 
                |%ndxterm.class;        |beginpage 
                %local.refcomponent.mix;"> 

<!ENTITY % local.indexdivcomponent.mix ""> 
<!ENTITY % indexdivcomponent.mix 
             "itemizedlist|orderedlist  |variablelist|simplelist 
             |%linespecific.class;      |%synop.class; 
             |%para.class; 
             |anchor|remark 
             |%link.char.class; 
             |beginpage 
             %local.indexdivcomponent.mix;">
  1. Verwenden der Anpassungsdatei
    Verwenden Sie die Anpassungsdatei an Stelle der Originaldatei von DocBook (vgl. Validieren mit einer DocBook 4-Anpassungsdatei).

DocBook 5 anpassen

Die Anpassungen für DocBook 5 sind wesentlich einfacher. Gehen Sie wie folgt vor:

Prozedur: Entfernen von Inlinegrafiken, Inlineformeln usw. in DocBook 5

  1. Anlegen der Anpassungsdatei
    Erzeugen Sie eine Anpassungsdatei mit folgendem Inhalt:
<grammar ns="http://docbook.org/ns/docbook" xmlns:db="http://docbook.org/ns/docbook" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0"> 
    <include href="docbook.rng"> 
        <!-- Ihre Anpassungen --> 
    </include> 
</grammar>
namespace db = "http://docbook.org/ns/docbook" 
default namespace = "http://docbook.org/ns/docbook" 
include "docbook.rnc" { 
# Ihre Anpassungen 
}
  1. Identifizieren der Musternamen
    Suchen Sie nach db.*.inlines die Sie aus DocBook 5 entfernen möchten. Für die obige Anforderung sind dies db.graphic.inlines und db.math.inlines. Fügen Sie ein:
<!-- Ihre Anpassungen --> 
<define name="db.graphic.inlines"> 
    <notAllowed/> 
</define> 
<define name="db.math.inlines"> 
    <notAllowed/> 
</define>
# Ihre Anpassungen 
db.graphic.inlines = notAllowed 
db.math.inlines = notAllowed
  1. Verwenden der Anpassungsdatei
    Verwenden Sie die Anpassungsdatei an Stelle der Originaldatei von DocBook (vgl. Validieren mit einer DocBook 5-Anpassungsdatei).

  

<< zurück vor >>
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