Hinzufügen neuer Attribute zu einem bestimmten Element

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

Angenommen, Sie benötigen für das Element chapter ein optionales Attribut proofreadfrom, das anzeigen soll, von wem ein Text schon lektoriert wurde. Der Inhalt soll ein Kürzel oder einen Namen enthalten.

DocBook 4 anpassen

Gehen Sie für DocBook 4 wie folgt vor:

Prozedur: Hinzufügen von proofreadfrom zu chapter für DocBook 4

  1. Deklarieren von proofreadfrom
    Erstellen Sie eine neue Datei und definieren Sie das Attribut proofreadfrom als Parameter-Entity wie folgt:
    <!ENTITY % proofreadfrom.attrib "proofreadfrom CDATA #IMPLIED">

    1. Einfügen in die Attributliste von chapter
      Fügen Sie Ihr soeben definiertes Parameter-Entity in die Attributliste von chapter ein. Verwenden Sie für Ihre Anpassung %local.chapter.attrib;:
    <!ENTITY % local.chapter.attrib "%proofreadfrom.attrib;">
    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. Verwenden der Anpassungsdatei
      Verwenden Sie die Anpassungsdatei an Stelle der Originaldatei von DocBook (vgl. Validieren mit einer DocBook 4-Anpassungsdatei).

    DocBook 5 anpassen

    Gehen Sie für DocBook 5 wie folgt vor:

    Prozedur: Hinzufügen von proofreadfrom zu chapter für 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"/> 
      <!-- Erweitern: --> 
    </grammar>
    default namespace db = "http://docbook.org/ns/docbook" 
    include "docbook.rnc" 
    # Erweitern
    1. Definieren von proofreadfrom
      Fügen Sie folgende Zeile hinzu:
    <define name="db.proofreadfrom.attribute"> 
        <attribute name="proofreadfrom"> 
            <a:documentation>Which person proofread this text?</a:documentation> 
        </attribute> 
    </define>
    db.proofreadfrom.attribute = 
      ## Which person proofread this text? 
      attribute proofreadfrom { text }

    1. Erweitern der Attributliste von chapter
      Fügen Sie im letzten Schritt Ihr neues Attribut nach dem vorigen Kommentar ein:
    <define name="db.chapter.attlist" combine="interleave"> 
        <optional> 
            <ref name="db.proofreadfrom.attribute"/> 
        </optional> 
    </define>
    db.chapter.attlist &= db.proofreadfrom.attribute?
    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