Erweitern von DocBook des CDList-Schema

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

Um das CDList-Schema in DocBook 5 einzufügen, gehen Sie wie folgt vor:

  1. Wo sollen die CDList-Elemente erscheinen?
    Entscheiden Sie zuerst, an welcher Stelle die CDList-Elemente erscheinen sollen. Das Element cd:cd-collection ist ein Kandidat und passt gut zu Tabellen, Gleichungen usw. Für diesen Zweck gibt es das Definitionsmuster db.formal.blocks. Weitere Definitionsmuster finden Sie in der Tabelle Namenskonventionen für DocBook 5.
  2. Erstellen der Anpassungsdatei
    Erstellen Sie Ihre Anpassungsdatei und fügen folgende Zeile ein:
<grammar xmlns="http://relaxng.org/ns/structure/1.0"><!-- Ihre Anpassungen --></grammar>
namespace cd = "http://www.example.org/ns/cd" 
default namespace db = "http://docbook.org/ns/docbook" 
namespace html = "http://www.w3.org/1999/xhtml" 
# Ihre Anpassungen
  1. Integrieren des CDList-Schema
    Verweisen Sie mit externalRef/ external auf Ihr CD-Schema:
<define name="dbx.cdlist"> 
  <externalRef href="cd-list.rng"/> 
</define>
dbx.cdlist = 
  # Lädt die Datei "cd-list.rnc" in das Muster dbx.cdlist 
  external "cd.rnc"
  1. Laden des DocBook-Schema
    Integrieren Sie DocBook 5 und überschreiben Sie das Definitionsmuster db.formal.blocks:
<include href="docbook.rng"> 
    <define name="db.formal.blocks" combine="choice"> 
        <ref name="dbx.cdlist"/> 
    </define> 
    <define name="db._any"> 
        <element> 
            <anyName> 
                <except> 
                    <nsName ns="http://docbook.org/ns/docbook"/> 
                    <nsName ns="http://www.w3.org/1999/xhtml"/> 
                    <nsName ns="http://www.example.org/ns/cd"/> 
                </except> 
            </anyName> 
            <zeroOrMore> 
                <choice> 
                    <attribute> 
                        <anyName/> 
                    </attribute> 
                    <text/> 
                    <ref name="db._any"/> 
                </choice> 
            </zeroOrMore> 
        </element> 
    </define> 
</include>
include "docbook.rnc" { 
  db.formal.blocks |= dbx.cdlist 
  db._any = 
    element * - (db:* | html:* | cd:*) { 
      (attribute * { text } 
       | text 
       | db._any)* 
   } 
}
  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