Untergeordnete Seiten
  • Das jadice Annotationsformat
Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Das jadice Annotationsformat

Neben archivspezifischen Annotationsformaten (IBM Content Manager 7 und 8, IBM FileNet IS und P8) unterstützt die jadice Produktfamilie ein eigenes Format zum Speichern von Annotationen, das unter der Bezeichnung jadice Annotationsformat geführt wird.

Annotationen werden dabei in einer XML-Datenstruktur abgelegt, deren Aufbau in Zusammenhang mit der jadice Annotation API in diesem Artikel beschrieben wird.

Aufbau der XML-Struktur

Das jadice Annotationsformat besteht aus einem Root-Tag <annotations>, innerhalb dessen alle Inhalte aller Annotationen eines Dokuments festgehalten werden.

  • Anschließend werden seitenweise <page index=..."> alle zu dieser Seite gehörenden Annotatioinen gespeichert.
  • Jede Annotation ist in ein <annotation>-Element eingeschlossen.
  • Zu einer Annotation gehören im wesentlichen zwei Dinge: 
    • <user-properties>, also vom User selbst definierte Zusatzinformationen, die mit der Annotation zu persistieren sind,
    • <properties>, in denen alle zur Annotation gehörenden, jadice-spezifischen Eigenschaften hinterlegt sind. 

Kommentierte Beispiele für jadice Annotationen

Beispiel: Eine einzige Rechteckannotation auf einer einzigen Seite

Einen groben Überblick über die XML-Struktur des jadice Annotationsformats gibt folgendes, besonders einfaches Beispiel.

 Codebeispiel einblenden
Einfaches Beispiel

Beispiel: Gängigste Annotationstypen auf zwei verschiedenen Seiten

Folgendes Beispiel enthält die gängigsten Annotationen (Pfeil, Freitext, Stempel, Notiz und Textmarker) .

 Codebeispiel einblenden
Ausgewählte Annotationstypen

Beispiel: alle Annotationstypen

In den folgenden Beispielen sind kommentierte XML-Ausschnitte für allen Annotationstypen enthalten.

 Codebeispiel einblenden
Linienannotation
Pfeilannotation
Stiftannotation
Rechteckannotation
Maskierungsannotation
Ellipse
Textmarker
Freitext
Textnotiz
Offenes Polygon
Geschlossenes Polygon
Gefülltes Polygon
Stempel
Erledigt-Stempel
Eingangs-Stempel


Zusammenhang zwischen Annotationsprofil und Annotationen

Um den Zusammenhang zwischen den im Jadice-Annotationsformat gespeicherten Annotationen und dem Annotationsprofil zu erläutern, enthält das folgende Beispiel

  • sowohl das Annotationsprofil 
  • als auch eine zu diesem Annotationsprofil abgelegte jadice-Annotations-XML-Datenstruktur

Zu jedem im Annotationsprofil definierten Annotationstypen wurde eine Instanz einer Annotation auf das Beispieldokument aufgebracht, und anschließend alle Annotationen im jadice Annotationsformat exportiert.

Eine Erklärung, welche Klassen und Methoden zum Speichern und Laden von Annotationen im Jadice-Annotationsformat zu verwenden sind, findet sich in der Entwicklerdokumentation unter Laden/Speichern von Annotationen.

 XML anzeigen
Beispiel: Annotationsprofil
Zugehörige Annotationen

Ausführliche Beschreibung der Annotations-Properties

Die Properties einer gespeicherten Annotation bestehen aus Name/Value-Paaren.

Der Name (name="...") bezeichnet die Eigenschaft der Annotation. Diese Eigenschaft wird immer im Annotationsprofil der zugehörigen Annotation definiert.

Alle diese Property tags werden wiederum aus den Basistypen, den Base Property Types zusammengesetzt, die im nächsten Abschnitt genauer beschrieben werden. Eine Auflistung der Property tags mit allen Namen ist hier tabellarisch aufgelistet:

NameInhalt
(Base Property Type)
HerkunftBedeutung
<property name="lineWidth"><float>ShapeBasedAnnotationBreite der Border für die Annotation. In der Klasse als float lineWidth definiert.
<property name="strokeColor"><color>ShapeBasedAnnotationStrichfarbe für Linien, Borderlines etc.. In der Klasse als java.awt.Color strokeColor definiert.

<property name="p1">

<property name="p2">

<point>LineAnnotationStart- und Endpunkt einer Linie / Pfeil. In der Klasse als java.awt.geom.Point2D p1 bzw. java.awt.geom.Point2D p2 definiert.
<property name="headAngle"><integer>ArrowAnnotationWinkel des Pfeilkopfes in Grad. In Java als int headAngle definiert.
<property name="headLength"><integer>ArrowAnnotationLänge des Pfeilkopfes in Prozent auf Gesamtlänge des Pfeils / in Pixel, kann über Eigenschaft setHeadLengthInPercent(boolean) der ArrowAnnotation engestellt werden . In Java als int headLength definiert.
<property name="path"><path>PathAnnotationPfad der PathAnnotation. In Java als java.awt.geom.Path2D path definiert.
<property name="filled"><true>,<false>ShapeBasedAnnotationGibt an, ob die Annotation mit einer Hintergrundfarbe gerendert werden soll. In Java als boolean filled definiert.
<property name="linePainted"><true>,<false>ShapeBasedAnnotationGibt an, ob ein Rahmen um die Annotation gezeichnet werden soll. In Java als boolean linePainted definiert.
<property name="fillColor"><color>ShapeBasedAnnotationFüllfarbe der Annotation. In Java als java.awt.geom.Color fillColor definiert.
<property name="rectangle"><rectangle>RectangleAnnotationRechteck der RectangleAnnotation. In Java als java.awt.geom.Rectangle2D shape definiert.
<property name="textColor"><color>TextAnnotationTextfarbe des Textes. In Java als java.awt.Color textColor definiert.
<property name="fontFace"><string>TextAnnotationBezeichnung der Schriftart. In Java als String fontFace definiert.
<property name="fontSize"><float>TextAnnotationSchriftgröße. In Java als float fontSize definiert.
<property name="italic"><true>,<false>TextAnnotationGibt an, ob die Schrift in kursiver Textauszeichnung darzustellen ist. In Java als boolean italic definiert.
<property name="bold"><true>,<false>TextAnnotationGibt an, ob die Schrift in fetter Textauszeichnung darzustellen ist. In Java als boolean bold definiert.
<property name="strikethrough"><true>,<false>TextAnnotationGibt an, ob die Schrift durchgestrichen darzustellen ist. In Java als boolean strikethrough definiert.
<property name="underscored"><true>,<false>TextAnnotationGibt an, ob die Schrift unterstrichen darzustellen ist. In Java als boolean underscored definiert.
<property name="text"><string>TextAnnotationTextinhalt. In Java als String text definiert.
<property name="gap"><integer>StampAnnotationAbstand zwischen Border / Rand und der logischen Textumrandung der Annotation  in Pixel. In Java als int gap definiert.
<property name="allowMultipleTextlines"><true>,<false>StampAnnotationGibt an, ob mehrere Textzeilen erlaubt sind. In Java als boolean allowMultipleTextlines definiert.
<property name="rotation"><integer>StampAnnotation, StampImageAnnotationRotation der Annotation in Grad. In Java als int rotation definiert.

Hierarchie der Annotationsklassen

  • Annotation
    • ShapeBasedAnnotation
      • RectangleAnnotation
        • EllipseAnnotation
        • TextAnnotation
          • HistoryAnnotation
          • StampAnnotation
        • ObjectAnnotation
          • ImageAnnotation
            • StampImageAnnotation
            • WangImageAnnotation
      • LineAnnotation
        • ArrowAnnotation
      • PdfEmbeddedAnnotation
      • PathAnnotation

 

XML-Schema (XSD) des jadice Annotationsformats 

Die XML-Schema-Definition für das jadice Annotationsformat ist unter http://xml.levigo.com/ns/jadice/annotations/1.0 zu finden.

Zum besseren Verständnis hier eine kommentierte Variante des Schemas: 

 Schema anzeigen
Kommentiertes XML-Schema

Base Property Types

Name des Tags

InhaltAttributÄquivalent in Java
point x(xs:float), y(xs:float)java.awt.geom.Point2D
stringxs:string String
true  Boolean
false  Boolean
null  null
integerxs:integer int
floatxs:float float
numberxs:double double
rectangle x(xs:float), y(xs:float), width(xs:float), height(xs:float)java.awt.geom.Rectangle2D
path

<move-to>
<line-to>
<quad-to>
<curve-to>
<close>

 java.awt.geom.Path2D
move-to

x(xs:float),y(xs:float)

Diese Tags stehen für die einzelnen Operationen von
java.awt.geom.Path2D, um einen komplexen Pfad zu konstruieren.

   

Operation Path2D.moveTo(float,float)

line-tox(xs:float),y(xs:float)Operation Path2D.lineTo(float,float)
quad-tox(xs:float),y(xs:float),cx(xs:float),cy(xs:float)Operation Path2D.quadTo(float,float,float,float)
curve-tox(xs:float),y(xs:float),c1x(xs:float),c1y(xs:float),c2x(xs:float),c2y(xs:float)Operation Path2D.curveTo(float,float,float,float,float,float)
close Operation Path2D.closePath()
color 

r(xs:unsignedByte),g(xs:unsignedByte),b(xs:unsignedByte)

Optional: alpha(xs:unsignedByte)

java.awt.Color
data

xs:base64Binary

(Aktuell noch nicht implementiert, siehe DOCPV-2827)

mime-type(xs:normalizedString)