Manche Dokumentformate bieten die Möglichkeit, in einem originären Datenstrom Verweise auf weitere Datenströme anzugeben. Letztere werden allgemein als Attachments bezeichnet. In manchen Fällen werden Attachments in den originären Datenstrom eingebettet, in anderen Fällen wird lediglich auf die Attachment-Daten verwiesen.[63] Manche Formate erlauben ausschließlich Attachments, die derselben Formatspezifikation genügen. Andere erlauben den Verweis auf beliebige Datenströme.[64]
Im Regelfall legen Formate zudem fest, wie die Verbindung zwischen einem Dokument und einem Attachment zu verstehen ist. So wird einerseits definiert, ob das Attachment mit dem Dokument als Ganzem oder lediglich mit einem Teil des Dokuments, beispielsweise einer Seite, verbunden ist. Andererseits wird oftmals die Art der Verbindung näher spezifiziert. Daraus kann zum Beispiel hervorgehen, ob das Attachment eine alternative Präsentation identischer Inhalte enthält, oder weitere Zusatzinformationen bietet, die im originären Dokument nicht enthalten sind. Mittels dieser Angaben kann somit die Semantik einer Beziehung zwischen Dokument und Attachment beschrieben werden.
Über die von Dokumentformaten gebotenen Möglichkeiten hinaus kann es in manchen Integrationen der jadice document platform sinnvoll sein, eigene, formatneutrale Attachments anzulegen und zu verwalten. In diesem Fall werden die Beziehungen zwischen Dokumenten (oder Dokumentteilen) und Attachments programmatisch zur Laufzeit angelegt und integrationsspezifisch persistiert.
Attachments werden in jadice durch das Interface Attachment repräsentiert.
                                         Während des Lesevorgangs eines Dokuments wird typischerweise[65] geprüft, ob Attachments enthalten sind, deren Daten eingebettet sind
                                         und die dem Dokument als Ganzem zugeordnet wurden. Ist dies der Fall, so werden
                                         Attachment Instanzen erzeugt und den beim Lesevorgang entstehenden
                                         PageSegments zugeordnet.[66]
Das Attachment ist ein PropertiesProvider. Aus dem Attachment können
                                         über die Methode getProperties() Zusatzinformationen
                                         abgefragt werden. Darüber hinaus gibt es die Möglichkeit, Listener mit den
                                         Methoden addPropertyChangeListener(PropertyChangeListener
                                                listener) und
                                             removePropertyChangeListener(PropertyChangeListener
                                                listener) zu registrieren oder zu deregistrieren, um Nachricht
                                         über Änderungen an den Properties zu erhalten.
                  
Diese Zusatzinformationen, wie zum Beispiel Attachment ID, Attachment Name und Attachment Beschreibung, werden beim Ladevorgang des Dokuments, falls möglich, angereichert. In manchen Fällen können die Felder leer sein. Dies ist insbesondere dann der Fall, wenn solche Informationen im Originaldokument nicht vorliegen.
In der Klasse Attachment sind Konstanten/Schlüssel definiert, um auf die
                                         Informationen zugreifen zu können. Bei Bedarf können den Properties auch weitere
                                         Werte hinzugefügt werden
                  
Bei der Arbeit mit Attachments werden für viele Aufgaben die Hilfsmethoden
                                         der Klasse Attachments verwendet. Diese Klasse bietet folgende Möglichkeiten:
                  
- 
                           Für eine Instanz von DocumentoderPagekann festgestellt werden, ob demPageSegmentauf einem bestimmtenDocumentLayerAttachments zugeordnet sind.
- 
                           In gleicher Weise besteht Zugriff auf die zugeordneten Instanzen von Attachment.
- 
                           Für ein gegebenes Attachmentbesteht zudem die Möglichkeit, den eingebetteten Datenstrom anzufordern. Es wird dabei ein Datenstrom zurückgegeben, dessen Lebenszyklus an den des originären Dokumentdatenstroms gebunden ist. Wird letzterer durch Aufruf derclose()-Methode geschlossen, so werdem damit auch sämtlich Attachment-Datenströme geschlossen.[67]
Das Laden von Attachments wird aus verschiedenen Formaten unterstützt. Nähere Details zu Attachments im PDF-Format gibt der Abschnitt „PDF: Attachments“.
Unter „Beispiel zur Verwendung der Attachments API“ finden sich Beispiele für die Arbeit mit Attachments.
[63] Ein Beispiel für eingebettete Attachments sind die ›Embedded Files‹ des PDF/A-3 Formats. Ein Beispiel für referenzierte Attachments sind externe Resourcen eines MO:DCA Datenstroms.
[64] Während beispielsweise PDF/A-2 das Einbetten von Attachments im Format PDF/A-2 (oder dessen ›Teilmenge‹ PDF/A-1) erlaubt, bietet PDF/A-3 die Möglichkeit beliebige Datenströme einzubetten.
[65] Die Unterstützung für Attachments ist formatabhängig. Für Formate, die Attachments unterstützen, finden sich nähere Angaben unter Kapitel 6, Formatspezifika.
[66] Die Zuordnung erfolgt durch Ablage der Attachments in den User
                                                    Properties des PageSegment unter einem definierten Schlüssel. Dies
                                                    ist jedoch ein internes Implementations-Detail, das ohne weitere
                                                    Benachrichtigung seitens levigo solutions jederzeit geändert werden kann. Ein
                                                    zuverlässiger Zugriff auf Attachments besteht somit nur über die in
                                                    diesem Abschnitt beschriebene Klasse Attachments.
                     
[67] Wann der korrekte Zeitpunkt gekommen ist, um einen
                                                                Dokumentdatenstrom zu schließen, kann nur
                                                                Integrationsspezifisch entschieden werden. Aus diesem Grund
                                                                hat der Integrator die Verantwortung, das Schließen von
                                                                Datenströmen anzustoßen. Soll ein Attachment-Datenstrom
                                                                länger verwendet werden, als der originäre
                                                                Dokumentdatenstromn zur Verfügung steht, so muss eine Kopie
                                                                der Daten angelegt werden. Dies ist beispielsweise über die
                                                                Methoden der Klasse IOUtils möglich.
                     

