Wir leben in einem Zeitalter der Überarbeitung und der Unterbildung, in einem Zeitalter, in dem die Menschen so fleißig sind, daß sie verdummen.
Oscar Wilde
Projektmenü; Überblick; Erläuterungen zu EPUB 3; Erläuterungen zu EPUB 2
Die Datei 'container.xml' hat primär die Aufgabe, auf das OPF-Dokument mit den sonstigen Angaben zum Inhalt des Buches zu verweisen. Sofern weitere alternative Repräsentationen des Inhaltes im selben Archiv verfügbar sind, können darin auch die Alternativen angegeben werden. Folgendes zeigt ein Beispiel für den Inhalt eines solchen Dokumentes mit drei Alternativen, dem erforderlichen OPF-Dokument samt zugehörigen Inhaltsdokumenten einerseits, andererseits als Alternative eine Variante im Format FictionBook [FB2] und eine als PS-Dokument, welche den gleichen Inhalt im jeweiligen Format repräsentieren:
<?xml version="1.0"?> <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container"> <rootfiles> <rootfile full-path="Inhalt/index.opf" media-type="application/oebps-package+xml" /> <rootfile full-path="FB2/Buch.fb2" media-type="text/xml" /> <rootfile full-path="PS/Buch.ps" media-type="application/postscript" /> </rootfiles> </container>
Die Struktur des Dokumentes ist eigentlich recht einfach. Das Wurzelelement ist container aus dem Namensraum 'urn:oasis:names:tc:opendocument:xmlns:container' und verwendet wird Version 1.0.
container enthält ein Element rootfiles. Da container sonst keinen Inhalt enthalten kann, bleibt unklar, was die konkrete Funktion dieses Elementes ist.
rootfiles enthält mindestens eines, optional
mehrere Elemente rootfile.
Ein rootfile steht jeweils für eine
alternative Repräsentation des gesamten Buches.
Es wird empfohlen, für jede Alternative ein eigenes Unterverzeichnis
im Wurzelverzeichnis anzulegen. Gegebenenfalls gemeinsam genutzte
Dateien können natürlich in einem weiteren Verzeichnis untergebracht
werden.
rootfile hat die Attribute full-path und media-type.
Mittels full-path wird der Pfad relativ zum Wurzelverzeichnis des Archivs zu jener Datei angegeben, welche die jeweilige Buchalternative repräsentiert, also etwa das OPF-Dokument oder bei Formaten, bei denen das Buch nur aus einem Dokument besteht, eben der Pfad zu diesem Dokument.
media-type gibt den Medien-Typ oder Inhaltstyp der referenzierten Datei an, für ein OPF-Dokument ist dies 'application/oebps-package+xml', für ein XHTML-Dokument entsprechend 'application/xhtml+xml' oder für ein SVG_Dokument entsprechend 'image/svg+xml'.
Exakt ein rootfile muß ein OPF-Dokument referenzieren, optionale andere referenzieren andere Formate als Alternativen. Somit sind andere Sprachversionen eines Buches also in diesem Sinne keine alternative Ansichten, auch sollte man bei den Alternativen pro Format auch nur eine Alternative angeben, weil es bei der Auswahl der Alternative einzig auf den verwendeten Medientyp ankommt.
Es ist nicht angegeben, wie ein Darstellungsprogramm auswählt. Plausibel wäre es zum Beispiel, dem Leser eine Auswahl der Alternativen anzugeben und dabei jene zu markieren, die mit dem Programm direkt darstellbar sind, unter denen dann ausgewählt werden kann. Bei den anderen könnte ein solches Programm dann die Möglichkeit anbieten, diese Alternativen bei Bedarf mit einem anderen Programm darstellen zu lassen.
'manifest.xml' ist eine Datei, welche Angaben gemäß ODF enthalten kann. Dies kann zum Beispiel dazu dienen, eine Alternative im Format ODF im selben Archiv anzubieten. ODF verwendet ebenfalls ZIP als Archivformat und für den Inhalt ebenfalls XML-Formate. Eine solche Datei entspricht von der Funktion her ungefähr der OPF-Datei für EPUB und weist ähnliche Strukturen auf [ODF].
In der Datei 'metadata.xml' können Metainformationen über das gesamte Archiv notiert werden, während etwa in der OPF-Datei nur Metainformationen über jenes Buch stehen, welches durch diese Datei beschrieben wird. Auch anderen Alternativen können natürlich ihre eigenen Metainformationen separat beinhalten. Was für alle Alternative zusammen notiert werden soll, gehört allerdings in diese Datei.
Der Inhalt ist derzeit nicht festgelegt, sofern vorhanden muß es aber XML mit einer korrekten Namensraumangabe sein. Plausibel wäre es zum Beispiel, den Standard RDF zu verwenden [RDF].
Mit 'signatures.xml' können digitale Signaturen für andere Dokumente im Archiv angegeben werden. Mit einer solchen Signatur kann etwa geprüft werden, ob ein Dokument im Archiv beschädigt ist oder manipuliert wurde.
Bei einer absichtlichen Manipulation besteht natürlich das Problem, daß ein Angreifer auch diese Datei selbst manipulieren kann, daher kann es notwendig sein, die Signatur für diese Datei öffentlich zu hinterlegen, damit eine Prüfung mit einer Signatur außerhalb des Buches und jenseits der Zugriffsmöglichkeiten eines Manipulators erfolgen kann.
Das Grundprinzip der Prüfung besteht also darin, daß zunächst aus der zu signierenden Datei eine digitale Signatur erzeugt wird. Die zu signierende Datei kann so einfach verteilt werden. Jemand, der diese Datei prüfen möchte, erzeugt mit derselben Methode aus der Datei eine Signatur und vergleicht sie mit der veröffentlichten Signatur des Originals. Stimmen beide überein, ist der Inhalt nicht manipuliert oder beschädigt.
Zum Beispiel 'XML Signature' beschreibt allerdings ein Verfahren, mit welchem man die Signatur aus einem Dokument entfernen kann, bevor man dessen Signatur ermittelt. So ist es letztlich auch möglich, für 'signatures.xml' selbst eine Signatur zu erstellen, mit welcher überprüft werden kann, ob das Dokument mit den Signaturen selbst manipuliert worden ist [XMLS].
Das kann einen Manipulator natürlich nicht davon abhalten, das gesamte Archiv auszutauschen und für das manipulierte Archiv eigene Signaturen einzubauen. Letztlich ist es also vermutlich immer notwendig, für die Prüfung mindestens eine externe vertrauenswürdige Signatur-Quelle für die Datei 'signatures.xml' bereitzustellen oder eben gleich eine solche Signatur für das komplette Archiv bereitzustellen, wonach man sich dann diese Datei sparen kann.
Die Struktur des Dokumentes sieht wie folgt aus: Das Wurzelelement heißt signatures aus dem Namensraum 'urn:oasis:names:tc:opendocument:xmlns:container'. Es enthält ein oder mehrere Elemente Signature aus dem Namensraum 'http://www.w3.org/2001/04/xmldsig#', der zu XML Signature gehört.
Falls im Archiv irgendeine Datei verschlüsselt ist, so muß eine Datei 'encryption.xml' vorhanden sein. Diese enthält für jede verschlüsselte Datei Angaben, mit welchem Schlüssel verschlüsselt wurde und eine Beschreibung, welche Datei damit verschlüsselt wurde.
Dabei ist natürlich zu beachten, daß verschlüsselte Dateien nicht
mehr zugänglich sind, also die Verschlüsselung den Zugang zur
Information verhindert, falls Schlüssel oder Entschlüsselungsprogramme
nicht verfügbar sind.
Bei einem gekauften Buch kann dies ein Mangel und damit eine
Rückgabegrund im Rahmen der Gewährleistung oder Produkthaftung sein,
falls es dem Leser nicht gelingt, die Inhalte zu entschlüsseln.
Die Struktur des Dokumentes sieht wie folgt aus: Das Wurzelelement heißt encryption aus dem Namensraum 'urn:oasis:names:tc:opendocument:xmlns:container'. Es enthält ein oder mehrere Elemente EncryptedData oder EncryptedKey aus dem Namensraum 'http://www.w3.org/2001/04/xmlenc#', der zu XML Encryption Syntax and Processing gehört [XMLE].
Folgende Dateien dürfen nicht verschlüsselt sein:
In der Datei 'rights.xml' können Angaben zu Rechten und Lizenzen notiert werden. Es ist allerdings nicht angegeben, welches Format und welche Syntax dazu zu verwenden ist. Naheliegend sind hier natürlich wieder RDF, Elemente von Dublin Core [DC], Terme von Dublin Core [DCT] und creative commons [CC] etc.
In der Beschreibung der Datei ist auch von
DRM
(Digitale Rechteverwaltung/Einschränkungsverwaltung) die Rede, was allerdings
mehr der Kontrolle als Gewährung von Rechten dient und daher recht umstritten
ist. Wenn eine solche Verwaltung jedenfalls den Zugang zum Inhalt verhindert,
kann dies ähnlich wie eine Verschlüsselung ein Mangel sein, der im
Rahmen der Gewährleistung oder Produkthaftung zu einer Rückgabe eines
gekauften Produktes wegen Funktionsuntüchtigkeit führen kann,
falls es dem Leser nicht gelingt,
sich den Inhalt dauerhaft zugänglich zu machen, was es auch notwendig machen
kann, Sicherheitskopien anzufertigen und von den Werken für den eigenen Bedarf
Schlüssel und ähnliche Barrieren zu entfernen, um sich den Inhalt mit
bevorzugten Programmen zugänglich zu machen oder auch eine Nutzung in
Zukunft sicherzustellen, wenn die Rechteverwaltung des Anbieters nicht
mehr verfügbar ist.
Von daher ist sicher zu empfehlen, bei Bedarf nur beschreibend Rechte am Werk
einzuräumen.
Wird nichts angegeben, gilt ohnehin automatisch das Urheberrecht.
Unberechtigte dürfen dann etwa das Werk nicht weiter verbreiten.