Listing 2.5 Definition von Metadaten über einen eigenen Namespace
Darüber hinaus ist es möglich, auf umfangreiche Pakete an Metainformationen außerhalb des EPUB-Containers zu verweisen. Ein externer Datensatz kann mit dem Element link referenziert werden. Mit dem rel-Attribut wird eine vordefinierte oder Namespace-basierende Eigenschaft (entsprechend dem meta-Element) deklariert, auf deren Datenquelle im Attribut href verwiesen wird. Direkt unterstützte externe Ressourcen sind MARC21, MODS, ONIX, XML Signature und das von Adobe eingesetzte XMP.
Listing 2.4 Link auf ein externes XMP-Metadatenset
2.1.2 Der manifest-Container
Der zweite Container der Packaging-Datei ist das manifest-Element, das eine Auflistung aller Dateien beinhaltet, aus welchen sich das E-Book zusammensetzt. Dazu gehören die Inhaltsdokumente wie Texte und Multimedia, Navigationsdokumente, Stylesheets und eingebettete Schriften.
Diese Dateien müssen jeweils in einem item-Element referenziert werden. Die item-Elemente sind leere Elemente und beinhalten die notwendigen Angaben als Attributewerte. Im Einzelnen sind dies eine eindeutige ID, ein Verweis auf die Zieldatei sowie eine Deklaration des Medientyps dieser Datei. Der Medientyp einer Ressource wird über den sogenannten MIME-Type definiert. Der MIME-Type beinhaltet eine maschinenlesbare Information über den Typ einer Datei.
MIME-Type |
Endung |
Bedeutung |
application/xhtml+xml |
.xhtml |
Inhaltsformat |
application/font-woff |
.woff |
Fontformat |
application/vnd.ms-opentype |
.otf |
Fontformat |
application/pls+xml |
.pls |
XML-basiertes Aussprachelexikon |
application/smil+xml |
.smil |
XML-basierte Synchronisierungsstruktur |
application/x-dtbncx+xml |
.ncx |
Abgelöster Navigationsstandard |
image/gif |
.gif |
Abbildungsformat |
image/jpeg |
.jpg |
Abbildungsformat |
image/png |
.png |
Abbildungsformat |
image/svg+xml |
.svg |
XML-basiertes Vektorgrafikformat |
audio/mp4 |
.mp4 |
Audioformat |
audio/mpeg |
.mp3 |
Audioformat |
text/css |
.css |
Stylesheetformat |
text/javascript |
.js |
Skriptformat |
Tab. 2.2 MIME-Types der Core Media Types
Für externe Ressourcen sowie Inhalte, die nicht den sogenannten Core Media Types entsprechen, muss des Weiteren eine Alternative angegeben werden, auf die zurückgegriffen werden kann, wenn das Lesegerät den fremden Dateityp nicht wiedergeben kann. Wird beispielsweise ein PDF-Dokument in ein EPUB eingebunden, sollte eine HTML-Datei gleichen Inhalts mitgeliefert werden, um die Inhalte auf Geräten, die PDF nicht darstellen können, dennoch zugänglich zu machen.
Diese Fallback-Lösungen sind notwendig, um eine vollständige Unterstützung der EPUB-Inhalte durch technologisch unterschiedlich leistungsfähige Ausgabegeräte zu gewährleisten und stellen einen wesentlichen Erfolgsfaktor des EPUB 3-Formats dar.
Für das item-Element existiert eine Liste an properties-Attributwerten, welche für bestimmte Einträge gesetzt werden müssen. So wird beispielsweise eine Abbildung mit der cover-image-Eigenschaft als Covergrafik des EPUBs definiert. Darüber hinaus kann mit dem media-overlay-Attribut auf ein Audio-Overlay für ein Inhaltsdokument verwiesen werden, welches wiederum im Manifest gelistet werden muss (siehe Kapitel 2.3
).
1
2
3
4
5
6
7
8
9
Listing 2.6 Das manifest-Element mit den item-Kindelementen
Das obere Code-Listing beinhaltet eine Fallback-Struktur für ein eingebundenes PDF [8]. Kann dieses nicht angezeigt werden, wird stattdessen eine XHTML-Datei, die idealerweise denselben Inhalt anbietet, angezeigt. Ausgeschlossen von dieser Fallbackregelung über das manifest-Element sind lediglich Schriftdateien – hier findet das Fallback-Handling über die CSS-Datei statt.
Das Manifest eines EPUBs muss mindestens aus einem Eintrag, der den Verweis auf das Navigationsdokument enthält, bestehen.
Ein weiterer grundlegender Bestandteil des OPF-Standards ist eine Struktur, welche die standardmäßige Abfolge der einzelnen Inhaltsdokumente innerhalb des EPUBs festlegt. Diese Sortierung wird von dem Containerelement spine übernommen. Kommt ein Lesegerät am Ende einer Datei an, wird anhand der Angaben innerhalb dieses Container festgelegt, welche Datei als nächstes angezeigt wird.
Die Einträge der XHTML-Inhaltsdokumente im Spine erfolgen mit dem Element itemref. Die Reihenfolge dieser Elemente definiert die Sequenz in der Publikation in Form einer geordneten Liste. Jedes itemref-Element muss mit dem idref-Attribut auf einen item-Eintrag im Manifest verweisen. Somit sind die Elemente in spine grundsätzlich eine Teilmenge der im manifest-Element definierten EPUB-Dokumente.
Mit dem Attribut linear kann darüber hinaus zwischen Dokumenten, die für die Leseabfolge benötigt werden und zusätzlichen Inhalten außerhalb dieser Abfolge unterschieden werden. Dokumente, die Bestandteil des Haupttextes sind, besitzen den Standardwert yes, ergänzende Inhalte erhalten den Wert no. Aufgrund des Standardwerts kann das Attribut bei primären Dokumenten weggelassen werden.
Für das itemref-Element sind in der Spezifikation Eigenschaften definiert, die im optionalen property-Attribut angegeben werden können. Die Eigenschaftswerte page-spread-left und page-spread-right ermöglichen die Festlegung des Seitenbeginns eines Inhaltsdokuments. Stellt ein EPUB-Reader die Inhalte in einer Doppelseiten-Ansicht dar, kann auf diese Weise die Seitenanordnung gesteuert werden.
Darüber hinaus existiert zur Seitensteuerung für das spine-Element das optionale Attribut page-progression-direction, mit welchem die globale Seitenlaufrichtung festgelegt werden kann. Mögliche Werte sind ltr (links nach rechts), rtl (rechts nach links) und default (Standardeinstellung des Geräts).
Der spine-Container muss mindestens einen Eintrag für das Navigationsdokument beinhalten. Das nachstehende Beispiel bezieht sich auf das manifest entsprechend Code-Listing 2.6.
1
2
3
4
5
Listing 2.7 Ein einfacher spine-Container
2.1.4 Das bindings-Element
Der bindings-Container ermöglicht die Steuerung von komplexen Fallback-Mechanismen für Systeme, die JavaScript unterstützen. Die Struktur steuert den Umgang mit Inhalten, die von dem HTML 5-Element object[3] referenziert werden, jedoch nicht zu den Kernmedientypen des EPUB-Standards gehören. Mit diesem Element können externe Inhalte in ein Dokument eingebunden werden. Eine ausführliche Beschreibung des Elements findet sich im Kapitel „HTML 5-Inhaltsdokumente“. Das folgende Beispiel zeigt die Einbindung eines Flash-Videoplayers, der ein MPEG -codiertes Video aufruft.
1
2
3
Listing 2.8 Das object-Element
Die recht komplexe Struktur des bindings-Elements wird hier nur der Vollständigkeit halber beschrieben, ihr Einsatz in EPUB beschränkt sich auf Ausnahmefälle.
Unterstützt ein Lesegerät eine über object eingebettete Struktur oder ein Dateiformat nicht, wird zunächst der bindings-Container auf den nicht unterstützten MIME-Type geprüft und bei Erfolg das in diesem Element referenzierte XHTML-Dokument aufgerufen. Erst wenn keine Entsprechung in den Bindings existiert bzw. auch das geskriptete Inhaltsdokument nicht wiedergegeben werden kann, werden die elementeigenen Alternativen verwendet.
Читать дальше