Entfernen von Attributen aus allen Elementen

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

Falls Sie von den allgemeinen Attributen einige entfernen müssen, zeigen die folgenden Abschnitte, wie Sie dies in Version 4 und 5 implementieren.

DocBook 4 anpassen

Gehen Sie für DocBook 4 wie folgt vor:

Prozedur: Entfernen von conformance, remap, security, userlevel und vendor aus allen Elementen

  1. Identifizieren der Attributdeklaration
    Es gibt zwei Parameter-Entities, die in allen Elementen verwendet werden: %effectivity.attrib;, %common.attrib; und %idreq.common.attrib;. Letzteres unterschiedet sich nur in der Deklaration des id-Attributs (#REQUIRED statt #IMPLIED). Die Parameter-Entities %effectivity.attrib; und %common.attrib; besitzen die folgende Deklaration, nachdem alle Verweise aufgelöst wurden:
<!ENTITY % effectivity.attrib 
   "arch CDATA #IMPLIED 
   condition CDATA #IMPLIED 
   conformance CDATA #IMPLIED 
   os CDATA #IMPLIED 
   revision CDATA #IMPLIED 
   security CDATA #IMPLIED 
   userlevel CDATA #IMPLIED 
   vendor CDATA #IMPLIED 
   %local.effectivity.attrib;"> 
<!-- ... --> 
<!ENTITY % common.attrib 
   "id ID #IMPLIED 
   lang CDATA #IMPLIED 
   remap CDATA #IMPLIED 
   xreflabel CDATA #IMPLIED 
   revisionflag CDATA #IMPLIED 
   %effectivity.attrib; 
   %local.common.attrib;">
  1. Anlegen einer Anpassungsdatei
    Erzeugen Sie eine Anpassungsdatei und fügen die vorige Deklaration ein. Entfernen Sie die Zeilen, die Sie nicht als Attribut haben wollen. Für dieses Beispiel ist dies conformance, remap, security, userlevel und vendor:
<!ENTITY % effectivity.attrib 
   "arch CDATA #IMPLIED 
   condition CDATA #IMPLIED 
   os CDATA #IMPLIED 
   revision CDATA #IMPLIED 
   %local.effectivity.attrib;"> 
<!ENTITY % common.attrib 
   "id ID #IMPLIED 
   lang CDATA #IMPLIED 
   xreflabel CDATA #IMPLIED 
   revisionflag CDATA #IMPLIED 
   %effectivity.attrib; 
   %local.common.attrib;"> 
<!ENTITY % common.attrib 
   "id ID #REQUIRED 
   lang CDATA #IMPLIED 
   xreflabel CDATA #IMPLIED 
   revisionflag CDATA #IMPLIED 
   %effectivity.attrib; 
   %local.common.attrib;">
  1. Laden der DocBook-DTD
    Fügen Sie folgende Zeilen in Ihre Anpassungsdatei ein, 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. 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 sind die Korrekturen minimal. Sie müssen lediglich das entsprechende Definitionsmuster als leer angeben:

<grammar xmlns="http://relaxng.org/ns/structure/1.0">
    <include href="docbook.rng">
        <define name="db.conformance.attribute">
            <empty/>
        </define>
        <define name="db.security.attribute">
            <empty/>
        </define>
        <define name="db.userlevel.attribute">
            <empty/>
        </define>
        <define name="db.vendor.attribute">
            <empty/>
        </define>
    </include>
</grammar>
default namespace db = "http://docbook.org/ns/docbook"
include "docbook.rnc" {
  db.conformance.attribute = empty
  db.security.attribute = empty
  db.userlevel.attribute = empty
  db.vendor.attribute = empty
}
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