Das jadice Annotationsformat

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 Annotationen 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
<?xml version="1.0" encoding="UTF-8"?>
<!-- Übergeordnetes Element, das alle Annotationen enthält -->
<annotations xmlns="http://xml.levigo.com/ns/jadice/annotations/1.0">
    <!--  Seite mit Index beginnend bei 0 und dem gewählten Annotation-Profile, auf der die nachfolgende gelisteteten Annotation angebracht sind -->
    <page index="0" profile="Default">
	    <!-- Annotation mit Archetyp der Annotation sowie Datum der Erstellung und letzten Modifikation in gregorianischer Zeit im Format [-]CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm]  -->	
        <!-- Erstellungs- und Modifikations-Datum sind optionale Attribute. -->
        <annotation type="Rectangle" created-at="2018-08-13T15:06:40+02:00"
            last-modified-at="2018-08-13T15:06:41+02:00">
            <!-- Benutzer- bzw. integrationsspezifische Zusatzinformationen zur Annotation -->			
            <user-properties/>
			<!-- Annotationsspezifische Properties, die jeweils einen Namen und eine Ausprägung bzw. einen Wert tragen. Je nach Annotationstyp stehen hier unterschiedliche -->
			<!-- Properties, mit teilweise vorbelegten Daten aus dem zugehörigen Annotationsprofil. -->			
            <properties>
                <property name="filled">
                    <true/>
                </property>
                <property name="linePainted">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>1.0</float>
                </property>
                <property name="strokeColor">
                    <color r="255" g="0" b="0"/>
                </property>
                <property name="fillColor">
                    <color r="255" g="255" b="0" alpha="127"/>
                </property>
                <property name="rectangle">
                    <rectangle x="15375.0" y="18450.0" width="27075.0" height="17625.0"/>
                </property>
            </properties>
        </annotation>
    </page>
</annotations>

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
<?xml version="1.0" encoding="UTF-8"?>
<annotations xmlns="http://xml.levigo.com/ns/jadice/annotations/1.0">
    <page index="0" profile="Default">
        <!-- Beispiel für eine Pfeilannotation -->
        <annotation type="Arrow" created-at="2018-08-13T14:58:30+02:00"
            last-modified-at="2018-08-13T14:59:15+02:00">
			<user-properties/>
            <properties>
                <property name="lineWidth">
                    <float>5.0</float>
                </property>
                <property name="strokeColor">
                    <color r="255" g="0" b="0"/>
                </property>
                <property name="p1">
                    <point x="27150.0" y="45039.0"/>
                </property>
                <property name="p2">
                    <point x="33450.0" y="68139.0"/>
                </property>
                <property name="headAngle">
                    <integer>20</integer>
                </property>
                <property name="headLength">
                    <integer>25</integer>
                </property>
            </properties>
        </annotation>
        <!-- Beispiel für eine Freitext-Annotation -->
        <annotation type="Text" created-at="2018-08-13T14:59:27+02:00"
            last-modified-at="2018-08-13T14:59:45+02:00">
            <user-properties/>
            <properties>
                <property name="filled">
                    <true/>
                </property>
                <property name="linePainted">
                    <true/>
                </property>
                <property name="strokeColor">
                    <color r="255" g="0" b="0"/>
                </property>
                <property name="fillColor">
                    <color r="255" g="255" b="0" alpha="127"/>
                </property>
                <property name="rectangle">
                    <rectangle x="34950.0" y="51600.0" width="21075.0" height="4650.0"/>
                </property>
                <property name="lineWidth">
                    <float>1.0</float>
                </property>
                <property name="textColor">
                    <color r="0" g="0" b="255"/>
                </property>
                <property name="fontFace">
                    <string>SansSerif</string>
                </property>
                <property name="fontSize">
                    <float>36.0</float>
                </property>
                <property name="bold">
                    <false/>
                </property>
                <property name="italic">
                    <false/>
                </property>
                <property name="underscored">
                    <false/>
                </property>
                <property name="strikethrough">
                    <false/>
                </property>
                <property name="text">
                    <string>Exampletext</string>
                </property>
				<property name="horizontalAlignment">
					<enum>LEFT</enum>
				</property>
            </properties>
        </annotation>
        <!-- Beispiel für Stempelannotation -->
        <annotation type="Stamp" created-at="2018-08-13T15:00:13+02:00"
            last-modified-at="2018-08-13T15:00:15+02:00">
            <user-properties/>
            <properties>
                <property name="fontFace">
                    <string>sansserif</string>
                </property>
                <property name="fontSize">
                    <float>36.0</float>
                </property>
                <property name="text">
                    <string>Stamp-Annotation</string>
                </property>
                <property name="gap">
                    <integer>1</integer>
                </property>
                <property name="allowMultipleTextlines">
                    <true/>
                </property>
                <property name="filled">
                    <true/>
                </property>
                <property name="linePainted">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>10.0</float>
                </property>
                <property name="textColor">
                    <color r="255" g="0" b="0"/>
                </property>
                <property name="strokeColor">
                    <color r="255" g="0" b="0"/>
                </property>
                <property name="fillColor">
                    <color r="255" g="255" b="255"/>
                </property>
                <property name="rotation">
                    <integer>20</integer>
                </property>
                <property name="rectangle">
                    <rectangle x="6390.0" y="25328.0" width="29681.578125" height="4885.875"/>
                </property>
            </properties>
        </annotation>
        <!-- Beispiel für Notizannotation -->
        <annotation type="Note" created-at="2018-08-13T15:02:58+02:00"
            last-modified-at="2018-08-13T15:03:11+02:00">
            <user-properties/>
            <properties>
                <property name="filled">
                    <true/>
                </property>
                <property name="linePainted">
                    <true/>
                </property>
                <property name="strokeColor">
                    <color r="255" g="0" b="0"/>
                </property>
                <property name="rectangle">
                    <rectangle x="16403.0" y="33900.0" width="27472.0" height="7950.0"/>
                </property>
                <property name="lineWidth">
                    <float>1.0</float>
                </property>
                <property name="fontFace">
                    <string>SansSerif</string>
                </property>
                <property name="fontSize">
                    <float>36.0</float>
                </property>
                <property name="bold">
                    <false/>
                </property>
                <property name="italic">
                    <false/>
                </property>
                <property name="underscored">
                    <false/>
                </property>
                <property name="strikethrough">
                    <false/>
                </property>
                <property name="text">
                    <string>Note-Annotation</string>
                </property>
                <property name="fillColor">
                    <color r="255" g="255" b="0"/>
                </property>
                <property name="textColor">
                    <color r="0" g="0" b="0"/>
                </property>
            </properties>
        </annotation>
    </page>
    <page index="2" profile="Default">
        <!-- Beispiel für eine Textmarker-Annotation -->
        <annotation type="Highlight" created-at="2018-08-13T14:58:55+02:00"
            last-modified-at="2018-08-13T14:58:57+02:00">
            <user-properties/>
            <properties>
                <property name="filled">
                    <true/>
                </property>
                <property name="linePainted">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>1.0</float>
                </property>
                <property name="rectangle">
                    <rectangle x="15300.0" y="31350.0" width="25950.0" height="3750.0"/>
                </property>
                <property name="strokeColor">
                    <color r="255" g="0" b="0" alpha="127"/>
                </property>
                <property name="fillColor">
                    <color r="255" g="0" b="0" alpha="127"/>
                </property>
            </properties>
        </annotation>
    </page>
</annotations>

Beispiel: alle Annotationstypen

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

 Codebeispiel einblenden
Linienannotation
	    <!-- Beispiel für Linienannotation (LineAnnotation) -->
        <annotation type="Line" created-at="2018-09-04T12:28:32+02:00"
            last-modified-at="2018-09-04T12:28:34+02:00">
            <user-properties/>
			<!-- Angabe aller im Annotationsprofile definierter Properties inklusive der geerbten Properties -->
            <properties>
			    <!-- Steht für die in ShapeBasedAnnotation definierte lineWidth, welche die Breite der Border für die Annotation angibt. -->
				<!-- In XML wird der float Wert der Implementation in den Base Property Type "float" umgewandelt. -->
                <property name="lineWidth">
                    <float>5.0</float>
                </property>
				<!-- Steht für die in ShapeBasedAnnotation definierte strokeColor, welche die Strichfarbe (für Linien, Borderlines etc.) angibt -->
				<!-- In Java als java.awt.Color Objekt definiert, wird im XML Format stellvertretend das "color" Tag der Base Property Types verwendet -->
                <property name="strokeColor">
                    <color r="255" g="0" b="0"/>
                </property>
				<!-- Steht für die in LineAnnotation definierten Punkte p1 und p2 um Start- und Endpunkt der Linie zu definieren. In Java mit Point2D definiert, -->
				<!-- wird im XML Format der Base Property Type "point" zum Abspeichern verwendet -->
                <property name="p1">
                    <point x="8550.0" y="11100.0"/>
                </property>
                <property name="p2">
                    <point x="24000.0" y="28800.0"/>
                </property>
            </properties>
        </annotation>
Pfeilannotation
		<!-- Beispiel für PfeilAnnotation (ArrowAnnotation) -->
        <annotation type="Arrow" created-at="2018-09-04T12:28:37+02:00"
            last-modified-at="2018-09-04T12:28:38+02:00">
            <user-properties/>
            <properties>
                <property name="lineWidth">
                    <float>5.0</float>
                </property>
                <property name="strokeColor">
                    <color r="255" g="0" b="0"/>
                </property>
                <property name="p1">
                    <point x="43050.0" y="14400.0"/>
                </property>
                <property name="p2">
                    <point x="29925.0" y="26100.0"/>
                </property>
				<!-- Steht für den in ArrowAnnotation definierten headAngle. Dieser gibt an, welchen Winkel in Grad der Pfeilkopf besitzt. In Java als int -->
				<!-- angegeben, wird in XML der Base Property Type "integer" verwendet. -->
                <property name="headAngle">
                    <integer>20</integer>
                </property>
				<!-- Steht für den in ArrowAnnotation definierten headLength. Dieser gibt an, wie lange die Spitze des Pfeilkopfes ist. In Java als int definiert -->
                <!-- wird in XML zum abspeichern der Base Property Type "integer" benutzt. -->
				<property name="headLength">
                    <integer>25</integer>
                </property>
            </properties>
        </annotation>

Stiftannotation
		<!-- Beispiel für eine Stiftannotation (PathAnnotation) -->
        <annotation type="Pen" created-at="2018-09-04T12:28:44+02:00"
            last-modified-at="2018-09-04T12:28:45+02:00">
            <user-properties/>
            <properties>
                <property name="allowResize">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>5.0</float>
                </property>
                <property name="strokeColor">
                    <color r="255" g="0" b="0"/>
                </property>
				<!-- Steht für den in PathAnnotation definierten path. Um den Pfad und aus dem XML zu rekonstruieren, wird der aus den Base Property Types -->
				<!-- stammende Tag "path" verwendet. Mit dem verschiedenen Operationen, die in Path2D definiert sind, kann der Pfad aus der Reihe von Tags -->
				<!-- die für Operationen stehen nachgebildet werden -->
                <property name="path">
                    <path>
                        <move-to x="14025.0" y="29625.0"/>
                        <line-to x="14100.0" y="29700.0"/>
                        <line-to x="14025.0" y="29700.0"/>
                        <line-to x="14025.0" y="30150.0"/>
                        <line-to x="14025.0" y="30375.0"/>
                        <line-to x="14025.0" y="30600.0"/>
                        <line-to x="14025.0" y="30825.0"/>
                        <line-to x="14025.0" y="30975.0"/>
                        <line-to x="14025.0" y="31125.0"/>
                        <line-to x="14025.0" y="31200.0"/>
                        <line-to x="14025.0" y="31275.0"/>
                        <line-to x="14025.0" y="31425.0"/>
                        <line-to x="14025.0" y="31575.0"/>
                        <line-to x="14025.0" y="31650.0"/>
                        <line-to x="14025.0" y="31800.0"/>
                        <line-to x="14100.0" y="31875.0"/>
                        <line-to x="14100.0" y="31950.0"/>
                        <line-to x="14175.0" y="32025.0"/>
                        <line-to x="14175.0" y="32100.0"/>
                        <line-to x="14250.0" y="32175.0"/>
                        <line-to x="14325.0" y="32250.0"/>
                        <line-to x="14400.0" y="32325.0"/>
                        <line-to x="14400.0" y="32400.0"/>
                        <line-to x="14475.0" y="32475.0"/>
                        <line-to x="14550.0" y="32550.0"/>
                        <line-to x="14625.0" y="32625.0"/>
                        <line-to x="14625.0" y="32700.0"/>
                        <line-to x="14700.0" y="32775.0"/>
                        <line-to x="14775.0" y="32925.0"/>
                        <line-to x="14925.0" y="33075.0"/>
                        <line-to x="15075.0" y="33225.0"/>
                        <line-to x="15075.0" y="33300.0"/>
                        <line-to x="15150.0" y="33375.0"/>
                        <line-to x="15300.0" y="33525.0"/>
                        <line-to x="15375.0" y="33600.0"/>
                        <line-to x="15450.0" y="33675.0"/>
                        <line-to x="15525.0" y="33900.0"/>
                        <line-to x="15600.0" y="33975.0"/>
                        <line-to x="15675.0" y="34050.0"/>
                        <line-to x="15825.0" y="34200.0"/>
                        <line-to x="15975.0" y="34275.0"/>
                        <line-to x="15975.0" y="34350.0"/>
                        <line-to x="16050.0" y="34425.0"/>
                        <line-to x="16125.0" y="34425.0"/>
                        <line-to x="16200.0" y="34500.0"/>
                        <line-to x="16275.0" y="34500.0"/>
                        <line-to x="16425.0" y="34500.0"/>
                        <line-to x="16575.0" y="34500.0"/>
                        <line-to x="17100.0" y="34500.0"/>
                        <line-to x="17400.0" y="34500.0"/>
                        <line-to x="17700.0" y="34500.0"/>
                        <line-to x="18075.0" y="34500.0"/>
                        <line-to x="18525.0" y="34500.0"/>
                        <line-to x="18825.0" y="34500.0"/>
                        <line-to x="19200.0" y="34500.0"/>
                        <line-to x="19650.0" y="34500.0"/>
                        <line-to x="19950.0" y="34500.0"/>
                        <line-to x="20100.0" y="34500.0"/>
                        <line-to x="20325.0" y="34500.0"/>
                        <line-to x="20550.0" y="34500.0"/>
                        <line-to x="20700.0" y="34500.0"/>
                        <line-to x="20850.0" y="34500.0"/>
                        <line-to x="21075.0" y="34500.0"/>
                        <line-to x="21225.0" y="34500.0"/>
                        <line-to x="21375.0" y="34500.0"/>
                        <line-to x="21450.0" y="34500.0"/>
                        <line-to x="21600.0" y="34500.0"/>
                        <line-to x="21750.0" y="34500.0"/>
                        <line-to x="21825.0" y="34500.0"/>
                        <line-to x="21975.0" y="34500.0"/>
                        <line-to x="22050.0" y="34500.0"/>
                        <line-to x="22200.0" y="34500.0"/>
                    </path>
                </property>
            </properties>
        </annotation>

Rechteckannotation
		<!-- Beispiel für eine Rechteck-Annotation (RectangleAnnotation) -->
        <annotation type="Rectangle" created-at="2018-09-04T12:28:51+02:00"
            last-modified-at="2018-09-04T12:28:53+02:00">
            <user-properties/>
            <properties>
			    <!-- Steht für das in ShapeBasedAnnotation definierte flag filled, dass angibt ob die Annotation mit einer Hintergrundfarbe gerendert werden soll. -->
				<!-- Im XML Format wird der Wert wahlweise durch die Base Property Types "false" oder "true" ausgefüllt -->
                <property name="filled">
                    <true/>
                </property>
				<!-- Steht für das in ShapeBasedAnnotation definierte flag linePainted, dass angibt ob die annotation border gerendert werden soll -->
				<!-- Im XML Format wird der Wert wahlweise durch die Base Property Types "false" oder "true" ausgefüllt -->
                <property name="linePainted">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>1.0</float>
                </property>
                <property name="strokeColor">
                    <color r="255" g="0" b="0"/>
                </property>
				<!-- Steht für die in ShapeBasedAnnotation definierte fillColor, die die aktuelle Füllfarbe mittels java.awt.Color angibt. Im XML-Format -->
				<!-- wird die Eigenschaft durch das "color" Tag gespeichert -->
                <property name="fillColor">
                    <color r="255" g="255" b="0" alpha="127"/>
                </property>
				<!-- Steht für die in RectangleAnnotation definierte shape, die das Rechteck der Annotation mit java.awt.geom.Rectangle2D angibt. Im XML-Format -->
				<!-- wird die Eigenschaft durch das "rectangle" Tag gespeichert -->
                <property name="rectangle">
                    <rectangle x="30525.0" y="30450.0" width="11025.0" height="6600.0"/>
                </property>
            </properties>
        </annotation>

Maskierungsannotation
		<!-- Beispiel für eine Maskierungs-Annotation (RectangleAnnotation) -->
        <annotation type="Mask" created-at="2018-09-04T12:28:56+02:00"
            last-modified-at="2018-09-04T12:28:57+02:00">
            <user-properties/>
            <properties>
                <property name="filled">
                    <true/>
                </property>
                <property name="linePainted">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>1.0</float>
                </property>
                <property name="rectangle">
                    <rectangle x="12075.0" y="39750.0" width="13350.0" height="13875.0"/>
                </property>
                <property name="strokeColor">
                    <color r="0" g="0" b="0"/>
                </property>
                <property name="fillColor">
                    <color r="255" g="255" b="255"/>
                </property>
            </properties>
        </annotation>

Ellipse
		<!-- Beispiel für eine Ellipsenannotation (EllipseAnnotation) -->
        <annotation type="Ellipse" created-at="2018-09-04T12:29:00+02:00"
            last-modified-at="2018-09-04T12:29:03+02:00">
            <user-properties/>
            <properties>
                <property name="filled">
                    <true/>
                </property>
                <property name="linePainted">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>1.0</float>
                </property>
                <property name="strokeColor">
                    <color r="255" g="0" b="0"/>
                </property>
                <property name="fillColor">
                    <color r="255" g="255" b="0" alpha="127"/>
                </property>
                <property name="rectangle">
                    <rectangle x="31425.0" y="41025.0" width="23250.0" height="9750.0"/>
                </property>
            </properties>
        </annotation>

Textmarker
		<!-- Beispiel für eine Textmarker-Annotation (RectangleAnnotation) -->
        <annotation type="Highlight" created-at="2018-09-04T12:29:06+02:00"
            last-modified-at="2018-09-04T12:29:09+02:00">
            <user-properties/>
            <properties>
                <property name="filled">
                    <true/>
                </property>
                <property name="linePainted">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>1.0</float>
                </property>
                <property name="rectangle">
                    <rectangle x="31650.0" y="5775.0" width="15150.0" height="6450.0"/>
                </property>
                <property name="strokeColor">
                    <color r="255" g="0" b="0" alpha="127"/>
                </property>
                <property name="fillColor">
                    <color r="255" g="0" b="0" alpha="127"/>
                </property>
            </properties>
        </annotation>
Freitext
		<!-- Beispiel für eine Freitext-Annotation (TextAnnotation) -->
        <annotation type="Text" created-at="2018-09-04T12:29:13+02:00"
            last-modified-at="2018-09-04T12:29:33+02:00">
            <user-properties/>
            <properties>
                <property name="filled">
                    <true/>
                </property>
                <property name="linePainted">
                    <true/>
                </property>
                <property name="strokeColor">
                    <color r="255" g="0" b="0"/>
                </property>
                <property name="fillColor">
                    <color r="255" g="255" b="0" alpha="127"/>
                </property>
                <property name="rectangle">
                    <rectangle x="40275.0" y="20775.0" width="14100.0" height="2775.0"/>
                </property>
                <property name="lineWidth">
                    <float>1.0</float>
                </property>
				<!-- Steht für das in TextAnnotation definierte textColor, welches die Farbe des Textes angibt. In XML wird stellvertretend für das in Java verwendete -->
				<!-- java.awt.Color Objekt das aus den Base Property Types stammende "color" Tag verwendet. -->
                <property name="textColor">
                    <color r="0" g="0" b="255"/>
                </property>
				<!-- Steht für den in TextAnnotation definierten String, welcher die Schriftart als String repräsentiert. Im XML Format wird der -->
				<!-- "string" Tag der Base Property Types verwendet. -->
                <property name="fontFace">
                    <string>SansSerif</string>
                </property>
				<!-- Steht für die in TextAnnotation definierte fontSize, welche die Schriftgröße als Float repräsentiert. Im XML Format wird der Tag -->
				<!-- "float" aus den Base Property Types verwendet -->
                <property name="fontSize">
                    <float>16.0</float>
                </property>
				<!-- Steht für den in TextAnnotation definierten flag, ob die Schrift fett geschrieben ist. Im XML Format wird hierzu -->
				<!-- wahlweise das "false" oder "true" tag gesetzt -->
                <property name="bold">
                    <false/>
                </property>
				<!-- Steht für den in TextAnnotation definierten flag, ob die Schrift kursiv geschrieben ist. Im XML Format wird hierzu -->
				<!-- wahlweise das "false" oder "true" tag gesetzt -->
                <property name="italic">
                    <false/>
                </property>
				<!-- Steht für den in TextAnnotation definierten flag, ob die Schrift unterstrichen ist. Im XML Format wird hierzu -->
				<!-- wahlweise das "false" oder "true" tag gesetzt -->
                <property name="underscored">
                    <false/>
                </property>
				<!-- Steht für den in TextAnnotation definierten flag, ob die Schrift durchgestrichen ist. Im XML Format wird hierzu -->
				<!-- wahlweise das "false" oder "true" tag gesetzt -->
                <property name="strikethrough">
                    <false/>
                </property>
				<!-- Steht für den Text der Annotation, der in TextAnnotation definiert ist. In Java als String definiert, wird im XML Format -->
				<!-- der aus den Base Property Types stammende Tag "string" verwendet. -->
                <property name="text">
                    <string>Exampletext</string>
                </property>
		        <!-- Steht für die Ausrichtung, welche für den Text der Annotation definierte wurde. In Java als vordefiniertes Enum vorgegeben, -->
				<!-- wird im XML Format der Tag "enum" verwendet --> 
				<property name="horizontalAlignment">
					<enum>LEFT</enum>
				</property>
            </properties>
        </annotation>
Textnotiz
		<!-- Beispiel für eine Textnotiz-Annotation (TextAnnotation) -->
        <annotation type="Note" created-at="2018-09-04T12:29:42+02:00"
            last-modified-at="2018-09-04T12:29:56+02:00">
            <user-properties/>
            <properties>
                <property name="filled">
                    <true/>
                </property>
                <property name="linePainted">
                    <true/>
                </property>
                <property name="strokeColor">
                    <color r="255" g="0" b="0"/>
                </property>
                <property name="rectangle">
                    <rectangle x="27675.0" y="56175.0" width="24750.0" height="4050.0"/>
                </property>
                <property name="lineWidth">
                    <float>1.0</float>
                </property>
                <property name="fontFace">
                    <string>SansSerif</string>
                </property>
                <property name="fontSize">
                    <float>24.0</float>
                </property>
                <property name="bold">
                    <false/>
                </property>
                <property name="italic">
                    <false/>
                </property>
                <property name="underscored">
                    <false/>
                </property>
                <property name="strikethrough">
                    <false/>
                </property>
                <property name="text">
                    <string>Beispielnotiz</string>
                </property>
                <property name="fillColor">
                    <color r="255" g="255" b="0"/>
                </property>
                <property name="textColor">
                    <color r="0" g="0" b="0"/>
                </property>
            </properties>
        </annotation>
Offenes Polygon
		<!-- Beispiel für ein Offenes Polygon (PathAnnotation) -->
        <annotation type="Polygon" created-at="2018-09-04T12:30:02+02:00"
            last-modified-at="2018-09-04T12:30:05+02:00">
            <user-properties/>
            <properties>
                <property name="allowResize">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>5.0</float>
                </property>
                <property name="path">
                    <path>
                        <move-to x="9150.0" y="22650.0"/>
                        <line-to x="14925.0" y="25275.0"/>
                        <line-to x="5775.0" y="35925.0"/>
                        <line-to x="2925.0" y="27525.0"/>
                    </path>
                </property>
                <property name="filled">
                    <false/>
                </property>
                <property name="fillColor">
                    <color r="255" g="0" b="0" alpha="127"/>
                </property>
                <property name="strokeColor">
                    <color r="0" g="255" b="0" alpha="127"/>
                </property>
            </properties>
        </annotation>
Geschlossenes Polygon
		<!-- Beispiel für ein geschlossenes Polygon (PathAnnotation) -->
        <annotation type="Polygon" created-at="2018-09-04T12:30:11+02:00"
            last-modified-at="2018-09-04T12:30:18+02:00">
            <user-properties/>
            <properties>
                <property name="allowResize">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>5.0</float>
                </property>
                <property name="path">
                    <path>
                        <move-to x="11100.0" y="58725.0"/>
                        <line-to x="22425.0" y="58650.0"/>
                        <line-to x="7800.0" y="68700.0"/>
                        <line-to x="2325.0" y="60075.0"/>
                        <line-to x="6075.0" y="60825.0"/>
                        <close/>
                    </path>
                </property>
                <property name="filled">
                    <false/>
                </property>
                <property name="fillColor">
                    <color r="255" g="0" b="0" alpha="127"/>
                </property>
                <property name="strokeColor">
                    <color r="0" g="153" b="0"/>
                </property>
            </properties>
        </annotation>
Gefülltes Polygon
		<!-- Beispiel für ein gefülltes Polygon (PathAnnotation) -->
        <annotation type="Polygon" created-at="2018-09-04T12:30:22+02:00"
            last-modified-at="2018-09-04T12:30:32+02:00">
            <user-properties/>
            <properties>
                <property name="allowResize">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>1.0</float>
                </property>
                <property name="path">
                    <path>
                        <move-to x="27750.0" y="65475.0"/>
                        <line-to x="38250.0" y="62775.0"/>
                        <line-to x="29550.0" y="70575.0"/>
                        <line-to x="41700.0" y="68700.0"/>
                        <close/>
                    </path>
                </property>
                <property name="filled">
                    <true/>
                </property>
                <property name="fillColor">
                    <color r="255" g="0" b="0" alpha="127"/>
                </property>
                <property name="strokeColor">
                    <color r="0" g="153" b="0"/>
                </property>
            </properties>
        </annotation>
Stempel
		<!-- Beispiel für einen Stempel (StampAnnotation) -->
        <annotation type="Stamp" created-at="2018-09-04T12:30:39+02:00"
            last-modified-at="2018-09-04T12:30:43+02:00">
            <user-properties/>
            <properties>
                <property name="fontFace">
                    <string>sansserif</string>
                </property>
                <property name="fontSize">
                    <float>36.0</float>
                </property>
                <property name="text">
                    <string>Stamp-Annotation</string>
                </property>
				<!-- Steht für den in StampAnnotation definierten gap, der den Abstand zwischen Border und Text darstellt. In Java als int definiert, -->
				<!-- wird im XML Format der tag "integer" der Base Property Types verwendet -->
                <property name="gap">
                    <integer>1</integer>
                </property>
				<!-- Steht für den in StampAnnotation definierten flag allowMultipleTextlines, der angibt ob mehrere Textzeilen erlaubt sind. Im XML Format -->
				<!-- wird der Parameter durch die tags "false" oder "true" der Base Property Types ausgefüllt. -->
                <property name="allowMultipleTextlines">
                    <true/>
                </property>
                <property name="filled">
                    <true/>
                </property>
                <property name="linePainted">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>10.0</float>
                </property>
                <property name="textColor">
                    <color r="255" g="0" b="0"/>
                </property>
                <property name="strokeColor">
                    <color r="255" g="0" b="0"/>
                </property>
                <property name="fillColor">
                    <color r="255" g="255" b="255"/>
                </property>
				<!-- Steht für die in StampImageAnnotation und StampAnnotation definierte rotation. Diese gibt an um wieviel Grad die Annotation rotiert wurde. -->
				<!-- Um den int Datentyp von Java zu repräsentieren wird der "integer" tag der Base Property Types verwendet. -->
                <property name="rotation">
                    <integer>20</integer>
                </property>
                <property name="rectangle">
                    <rectangle x="10256.0" y="48278.0" width="29681.578125" height="4885.875"/>
                </property>
            </properties>
        </annotation>
Erledigt-Stempel
		
		<!-- Beispiel für Erledigt-Stempel (StampAnnotation) -->
        <annotation type="Stamp" created-at="2018-09-04T12:30:46+02:00"
            last-modified-at="2018-09-04T12:30:47+02:00">
            <user-properties/>
            <properties>
                <property name="fontFace">
                    <string>sansserif</string>
                </property>
                <property name="fontSize">
                    <float>50.0</float>
                </property>
                <property name="text">
                    <string>Erledigt!</string>
                </property>
                <property name="gap">
                    <integer>1</integer>
                </property>
                <property name="allowMultipleTextlines">
                    <true/>
                </property>
                <property name="filled">
                    <true/>
                </property>
                <property name="linePainted">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>10.0</float>
                </property>
                <property name="textColor">
                    <color r="0" g="255" b="0"/>
                </property>
                <property name="strokeColor">
                    <color r="0" g="153" b="0"/>
                </property>
                <property name="fillColor">
                    <color r="255" g="255" b="255"/>
                </property>
                <property name="rotation">
                    <integer>20</integer>
                </property>
                <property name="rectangle">
                    <rectangle x="8923.0" y="22139.0" width="19206.28515625" height="6449.9375"/>
                </property>
            </properties>
        </annotation>
Eingangs-Stempel
		
		<!-- Beispiel für Eingegangen!-Stempel (StampAnnotation) -->
        <annotation type="Stamp" created-at="2018-09-04T12:30:48+02:00"
            last-modified-at="2018-09-04T12:30:55+02:00">
            <user-properties/>
            <properties>
                <property name="fontFace">
                    <string>sansserif</string>
                </property>
                <property name="fontSize">
                    <float>50.0</float>
                </property>
                <property name="text">
                    <string>Eingegangen!</string>
                </property>
                <property name="gap">
                    <integer>1</integer>
                </property>
                <property name="allowMultipleTextlines">
                    <true/>
                </property>
                <property name="filled">
                    <true/>
                </property>
                <property name="linePainted">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>10.0</float>
                </property>
                <property name="textColor">
                    <color r="0" g="255" b="0"/>
                </property>
                <property name="strokeColor">
                    <color r="0" g="153" b="0"/>
                </property>
                <property name="fillColor">
                    <color r="255" g="255" b="255"/>
                </property>
                <property name="rotation">
                    <integer>20</integer>
                </property>
                <property name="rectangle">
                    <rectangle x="1046.0" y="65305.0" width="31725.81640625" height="6449.9375"/>
                </property>
            </properties>
        </annotation>


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
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <annotation-profile name="ExampleProfile">
   <!-- Definition von Beispielen zu jeweils immer einer Annotationsklasse, die in der Jadice Annotation API vorkommen -->
   <annotation-type name="MyLine" archetype="MyLine" class="com.levigo.jadice.annotation.LineAnnotation">
     <renderer class="com.levigo.jadice.annotation.internal.renderer.LineAnnotationRenderer"/>
	 <wrangler class="com.levigo.jadice.swing.internal.annotation.wranglers.LineAnnotationWrangler"/>
	 <labels>
	   <label locale="en">My Line Annotation</label>
	   <label locale="de">Meine Linienannotation</label>
	 </labels>
	 <fixed name="lineWidth" propertyType="java.lang.Float">
	   <default>5.0</default>
	 </fixed>
	 <fixed name="strokeColor" propertyType="java.awt.Color">
	   <default>#7F11AA22</default>
	 </fixed>
	<unrestricted name="p1" propertyType="java.awt.geom.Point2D" />
	<unrestricted name="p2" propertyType="java.awt.geom.Point2D" />	 
   </annotation-type>
   
   <annotation-type name="MyArrow" archetype="MyArrow" extends="MyLine" class="com.levigo.jadice.annotation.ArrowAnnotation">
     <renderer class="com.levigo.jadice.annotation.internal.renderer.ArrowAnnotationRenderer"/>
	 <wrangler class="com.levigo.jadice.swing.internal.annotation.wranglers.ArrowAnnotationWrangler"/>
	 <labels>
	   <label locale="en">My Arrow Annotation</label>
	   <label locale="de">Meine Pfeilannotation</label>
	 </labels>	 
		<fixed name="headAngle" propertyType="java.lang.Integer">
			<default>20</default>
		</fixed>
		<fixed name="headLength" propertyType="java.lang.Integer">
			<default>25</default>
		</fixed>	 
   </annotation-type>
   
   <annotation-type name="MyPath" archetype="MyPath" class="com.levigo.jadice.annotation.PathAnnotation">
     <renderer class="com.levigo.jadice.annotation.internal.renderer.PathAnnotationRenderer"/>
	 <wrangler class="com.levigo.jadice.swing.internal.annotation.wranglers.FreehandAnnotationWrangler"/>  
	 <labels>
	   <label locale="en">My Path Annotation</label>
	   <label locale="de">Meine Pfadannotation</label>
	 </labels>	 
	 <fixed name="strokeColor" propertyType="java.awt.Color">
	   <default>#7F11AA22</default>
	 </fixed>
	<fixed name="allowResize" propertyType="java.lang.Boolean">
			<default>true</default>
	</fixed>
	<fixed name="lineWidth" propertyType="java.lang.Float">
       <default>5.0</default>
    </fixed>			
	<unrestricted name="path" propertyType="java.awt.geom.Path2D" />	
   </annotation-type>
   
   <annotation-type name="MyRectangle" archetype="MyRectangle" class="com.levigo.jadice.annotation.RectangleAnnotation">
     <renderer class="com.levigo.jadice.annotation.internal.renderer.RectangleAnnotationRenderer"/>
	 <wrangler class="com.levigo.jadice.swing.internal.annotation.wranglers.RectangleAnnotationWrangler"/>
	 <labels>
	   <label locale="en">My Rectangle Annotation</label>
	   <label locale="de">Meine Rechteckannotation</label>
	 </labels>	 
	 <fixed name="strokeColor" propertyType="java.awt.Color">
	   <default>#7F11AA22</default>
	 </fixed>
	 <fixed name="fillColor" propertyType="java.awt.Color">
	   <default>#7F11AA22</default>
	 </fixed>	 
	<fixed name="allowResize" propertyType="java.lang.Boolean">
			<default>true</default>
	</fixed>
	<fixed name="lineWidth" propertyType="java.lang.Float">
	  <default>4.0</default>
    </fixed>			
	<fixed name="linePainted" propertyType="java.lang.Boolean">
			<default>true</default>
	</fixed>	
	<unrestricted name="rectangle" propertyType="java.awt.geom.Rectangle2D" />	
   </annotation-type>
   
   <annotation-type name="MyEllipse" archetype="MyEllipse" extends="MyRectangle" class="com.levigo.jadice.annotation.EllipseAnnotation">   
     <renderer class="com.levigo.jadice.annotation.internal.renderer.EllipseAnnotationRenderer"/>
	 <wrangler class="com.levigo.jadice.swing.internal.annotation.wranglers.EllipseAnnotationWrangler"/>
	 <labels>
	   <label locale="en">My Ellipse Annotation</label>
	   <label locale="de">Meine Ellipsenannotation</label>
	 </labels>	 
   </annotation-type>
   
   <annotation-type name="MyText" archetype="MyText" extends="MyRectangle" class="com.levigo.jadice.annotation.TextAnnotation">
     <renderer class="com.levigo.jadice.annotation.internal.renderer.TextInfoAnnotationRenderer"/>
	 <wrangler class="com.levigo.jadice.swing.internal.annotation.wranglers.TextAnnotationWrangler"/>
	 <labels>
	   <label locale="en">My Text Annotation</label>
	   <label locale="de">Meine Textannoation</label>
	 </labels>	 
	 <fixed name="textColor" propertyType="java.awt.Color">
	   <default>#FF0000</default>
	 </fixed>
     <fixed name="fontSize" propertyType="java.lang.Float">
	    <default>15.0</default>
	 </fixed>
    <fixed name="horizontalAlignment" propertyType="com.levigo.jadice.annotation.HorizontalAlignment">
      <default>LEFT</default>
    </fixed>
     <fixed name="fontFace" propertyType="java.lang.String">
	    <default>SansSerif</default>
	 </fixed>
     <fixed name="bold" propertyType="java.lang.Boolean">
	    <default>false</default>
	 </fixed>
     <fixed name="italic" propertyType="java.lang.Boolean">
	    <default>false</default>
	 </fixed>
     <fixed name="strikethrough" propertyType="java.lang.Boolean">
	    <default>false</default>
	 </fixed>
     <fixed name="underscored" propertyType="java.lang.Boolean">
	    <default>false</default>
     </fixed>
	 <fixed name="text" propertyType="java.lang.String">
	    <default>ExampleText</default>
     </fixed>
   </annotation-type>
   <annotation-type name="MyHistory" archetype="MyHistory" extends="MyText" class="com.levigo.jadice.annotation.HistoryAnnotation">  
     <renderer class="com.levigo.jadice.annotation.internal.renderer.HistoryAnnotationRenderer"/>
	 <wrangler class="com.levigo.jadice.swing.internal.annotation.wranglers.TextAnnotationWrangler"/> 
	 <labels>
	   <label locale="en">My History Annotation</label>
	   <label locale="de">Meine Historyannotation</label>
	 </labels>	 
   </annotation-type>
   
   <annotation-type name="MyStamp" archetype="MyStamp" class="com.levigo.jadice.annotation.StampAnnotation">
     <renderer class="com.levigo.jadice.annotation.internal.renderer.StampAnnotationRenderer"/>
	 <wrangler class="com.levigo.jadice.swing.internal.annotation.wranglers.StampAnnotationWrangler"/> 
	 <labels>
	   <label locale="en">My Stamp Annotation</label>
	   <label locale="de">Meine Stempelannotation</label>
	 </labels>	 
     <fixed name="gap" propertyType="java.lang.Integer">
		<default>1</default>
	 </fixed>
	 <fixed name="allowMultipleTextlines" propertyType="java.lang.Boolean">
		<default>true</default>
	 </fixed>	 
	 <fixed name="rotation" propertyType="java.lang.Integer">
		<default>20</default>
	 </fixed>
	<fixed name="fontFace" propertyType="java.lang.String">
		<default>sansserif</default>
	</fixed>
	<fixed name="fontSize" propertyType="java.lang.Integer">
		<default>12</default>
	</fixed>
	<fixed name="fontFace" propertyType="java.lang.String">
		<default>Stamp</default>
	</fixed>
	<fixed name="filled" propertyType="java.lang.Boolean">
		<default>true</default>
	</fixed>	
	<fixed name="linePainted" propertyType="java.lang.Boolean">
		<default>true</default>
	</fixed>
    <fixed name="textColor" propertyType="java.awt.Color">
	    <default>#ff0000</default>
    </fixed>
    <fixed name="strokeColor" propertyType="java.awt.Color">
	    <default>#ff0000</default>
    </fixed>	
    <fixed name="fillColor" propertyType="java.awt.Color">
	    <default>#ffffff</default>
    </fixed>		
   </annotation-type>
	<type-set>
		<!-- .... Definitionen fuer Annotation toolbar hier -->
		<type ref="MyLine" />
		<type ref="MyArrow" />
		<type ref="MyPath" />
		<type ref="MyRectangle" />
		<type ref="MyEllipse" />
		<type ref="MyText" />
		<type ref="MyHistory" />
		<type ref="MyStamp"/>
	</type-set>
	</annotation-profile>
Zugehörige Annotationen
<?xml version="1.0" encoding="UTF-8"?>
<annotations xmlns="http://xml.levigo.com/ns/jadice/annotations/1.0">
    <!-- abgespeicherte Annotationen des Beispielprofils. Von jeder Annotation ist jeweils 1 Instanz abgespeichert worden -->
    <page index="0" profile="ExampleProfile">
	    <!-- Beispiel für die im Profil definierte "MyHistory" Annotation (HistoryAnnotation) -->
        <annotation type="MyHistory" created-at="2018-09-07T16:14:30+02:00"
            last-modified-at="2018-09-07T16:14:37+02:00">
            <user-properties/>
            <properties>
                <property name="strokeColor">
                    <color r="17" g="170" b="34" alpha="127"/>
                </property>
                <property name="fillColor">
                    <color r="17" g="170" b="34" alpha="127"/>
                </property>
                <property name="allowResize">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>4.0</float>
                </property>
                <property name="linePainted">
                    <true/>
                </property>
                <property name="rectangle">
                    <rectangle x="28575.0" y="20775.0" width="31575.0" height="9000.0"/>
                </property>
                <property name="textColor">
                    <color r="255" g="0" b="0"/>
                </property>
                <property name="fontSize">
                    <float>15.0</float>
                </property>
                <property name="fontFace">
                    <string>SansSerif</string>
                </property>
                <property name="bold">
                    <false/>
                </property>
                <property name="italic">
                    <false/>
                </property>
                <property name="strikethrough">
                    <false/>
                </property>
                <property name="underscored">
                    <false/>
                </property>
                <property name="text">
                    <string>ExampleText</string>
                </property>
            </properties>
        </annotation>
		<!-- Beispiel für die im Profil definierte "MyStamp" Annotation (StampAnnotation) -->
        <annotation type="MyStamp" created-at="2018-09-07T16:14:42+02:00"
            last-modified-at="2018-09-07T16:14:42+02:00">
            <user-properties/>
            <properties>
                <property name="gap">
                    <integer>1</integer>
                </property>
                <property name="allowMultipleTextlines">
                    <true/>
                </property>
                <property name="rotation">
                    <integer>20</integer>
                </property>
                <property name="fontFace">
                    <string>Stamp</string>
                </property>
                <property name="fontSize">
                    <float>12.0</float>
                </property>
                <property name="fontFace">
                    <string>Stamp</string>
                </property>
                <property name="filled">
                    <true/>
                </property>
                <property name="linePainted">
                    <true/>
                </property>
                <property name="textColor">
                    <color r="255" g="0" b="0"/>
                </property>
                <property name="strokeColor">
                    <color r="255" g="0" b="0"/>
                </property>
                <property name="fillColor">
                    <color r="255" g="255" b="255"/>
                </property>
            </properties>
        </annotation>
		<!-- Beispiel für die im Profil definierte "MyText" Annotation (TextAnnotation) -->
        <annotation type="MyText" created-at="2018-09-07T16:14:45+02:00"
            last-modified-at="2018-09-07T16:14:46+02:00">
            <user-properties/>
            <properties>
                <property name="strokeColor">
                    <color r="17" g="170" b="34" alpha="127"/>
                </property>
                <property name="fillColor">
                    <color r="17" g="170" b="34" alpha="127"/>
                </property>
                <property name="allowResize">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>4.0</float>
                </property>
                <property name="linePainted">
                    <true/>
                </property>
                <property name="rectangle">
                    <rectangle x="6825.0" y="24000.0" width="13125.0" height="3300.0"/>
                </property>
                <property name="textColor">
                    <color r="255" g="0" b="0"/>
                </property>
                <property name="fontSize">
                    <float>15.0</float>
                </property>
                <property name="fontFace">
                    <string>SansSerif</string>
                </property>
                <property name="bold">
                    <false/>
                </property>
                <property name="italic">
                    <false/>
                </property>
                <property name="strikethrough">
                    <false/>
                </property>
                <property name="underscored">
                    <false/>
                </property>
                <property name="text">
                    <string>ExampleText</string>
                </property>
            </properties>
        </annotation>
        <!-- Beispiel für die im Profil definierte "MyEllipse" Annotation (EllipseAnnotation) -->		
        <annotation type="MyEllipse" created-at="2018-09-07T16:14:48+02:00"
            last-modified-at="2018-09-07T16:14:49+02:00">
            <user-properties/>
            <properties>
                <property name="strokeColor">
                    <color r="17" g="170" b="34" alpha="127"/>
                </property>
                <property name="fillColor">
                    <color r="17" g="170" b="34" alpha="127"/>
                </property>
                <property name="allowResize">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>4.0</float>
                </property>
                <property name="linePainted">
                    <true/>
                </property>
                <property name="rectangle">
                    <rectangle x="38925.0" y="7875.0" width="15525.0" height="7275.0"/>
                </property>
            </properties>
        </annotation>
		<!-- Beispiel für die im Profil definierte "MyRectangle" Annotation (RectangleAnnotation) -->
        <annotation type="MyRectangle" created-at="2018-09-07T16:14:50+02:00"
            last-modified-at="2018-09-07T16:14:51+02:00">
            <user-properties/>
            <properties>
                <property name="strokeColor">
                    <color r="17" g="170" b="34" alpha="127"/>
                </property>
                <property name="fillColor">
                    <color r="17" g="170" b="34" alpha="127"/>
                </property>
                <property name="allowResize">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>4.0</float>
                </property>
                <property name="linePainted">
                    <true/>
                </property>
                <property name="rectangle">
                    <rectangle x="21150.0" y="38625.0" width="11400.0" height="11400.0"/>
                </property>
            </properties>
        </annotation>
		<!-- Beispiel für die im Profil definierte "MyPath" Annotation (PathAnnotation) -->
        <annotation type="MyPath" created-at="2018-09-07T16:14:53+02:00"
            last-modified-at="2018-09-07T16:14:54+02:00">
            <user-properties/>
            <properties>
                <property name="strokeColor">
                    <color r="17" g="170" b="34" alpha="127"/>
                </property>
                <property name="allowResize">
                    <true/>
                </property>
                <property name="lineWidth">
                    <float>5.0</float>
                </property>
                <property name="path">
                    <path>
                        <move-to x="37425.0" y="38100.0"/>
                        <line-to x="37500.0" y="38175.0"/>
                        <line-to x="38175.0" y="39300.0"/>
                        <line-to x="38475.0" y="39675.0"/>
                        <line-to x="39150.0" y="40500.0"/>
                        <line-to x="39825.0" y="41400.0"/>
                        <line-to x="40050.0" y="41700.0"/>
                        <line-to x="40425.0" y="42075.0"/>
                        <line-to x="40725.0" y="42300.0"/>
                        <line-to x="41100.0" y="42675.0"/>
                        <line-to x="41325.0" y="42975.0"/>
                        <line-to x="41700.0" y="43350.0"/>
                        <line-to x="42000.0" y="43575.0"/>
                        <line-to x="42225.0" y="43800.0"/>
                        <line-to x="42675.0" y="44250.0"/>
                        <line-to x="42975.0" y="44475.0"/>
                        <line-to x="43350.0" y="44700.0"/>
                        <line-to x="44025.0" y="45300.0"/>
                        <line-to x="44175.0" y="45375.0"/>
                        <line-to x="44325.0" y="45525.0"/>
                        <line-to x="44475.0" y="45675.0"/>
                        <line-to x="44700.0" y="45750.0"/>
                        <line-to x="44775.0" y="45900.0"/>
                        <line-to x="45000.0" y="46125.0"/>
                        <line-to x="45075.0" y="46275.0"/>
                        <line-to x="45300.0" y="46575.0"/>
                        <line-to x="45600.0" y="47100.0"/>
                        <line-to x="45825.0" y="47475.0"/>
                        <line-to x="45900.0" y="47700.0"/>
                        <line-to x="45900.0" y="47850.0"/>
                        <line-to x="46050.0" y="48000.0"/>
                        <line-to x="46125.0" y="48225.0"/>
                        <line-to x="46200.0" y="48300.0"/>
                        <line-to x="46350.0" y="48375.0"/>
                        <line-to x="46350.0" y="48450.0"/>
                        <line-to x="46500.0" y="48600.0"/>
                        <line-to x="46650.0" y="48750.0"/>
                        <line-to x="46800.0" y="48750.0"/>
                        <line-to x="47100.0" y="48900.0"/>
                        <line-to x="47400.0" y="48975.0"/>
                        <line-to x="47550.0" y="49050.0"/>
                        <line-to x="47775.0" y="49050.0"/>
                        <line-to x="48000.0" y="49050.0"/>
                        <line-to x="48075.0" y="49050.0"/>
                        <line-to x="48225.0" y="49050.0"/>
                        <line-to x="48675.0" y="49050.0"/>
                        <line-to x="48750.0" y="48975.0"/>
                        <line-to x="49500.0" y="48300.0"/>
                        <line-to x="50175.0" y="47925.0"/>
                        <line-to x="50325.0" y="47775.0"/>
                        <line-to x="50700.0" y="47625.0"/>
                        <line-to x="51000.0" y="47400.0"/>
                        <line-to x="51150.0" y="47250.0"/>
                        <line-to x="51450.0" y="46950.0"/>
                        <line-to x="51675.0" y="46725.0"/>
                        <line-to x="51750.0" y="46500.0"/>
                        <line-to x="52050.0" y="46050.0"/>
                        <line-to x="52125.0" y="45900.0"/>
                        <line-to x="52200.0" y="45675.0"/>
                        <line-to x="52200.0" y="45600.0"/>
                        <line-to x="52275.0" y="45225.0"/>
                        <line-to x="52350.0" y="45150.0"/>
                        <line-to x="52350.0" y="45000.0"/>
                        <line-to x="52350.0" y="44925.0"/>
                        <line-to x="52500.0" y="44625.0"/>
                        <line-to x="52500.0" y="44550.0"/>
                        <line-to x="52500.0" y="44400.0"/>
                        <line-to x="52500.0" y="44325.0"/>
                    </path>
                </property>
            </properties>
        </annotation>
		<!-- Beispiel für die im Profil definierte "MyArrow" Annotation (ArrowAnnotation) -->
        <annotation type="MyArrow" created-at="2018-09-07T16:14:56+02:00"
            last-modified-at="2018-09-07T16:14:57+02:00">
            <user-properties/>
            <properties>
                <property name="lineWidth">
                    <float>5.0</float>
                </property>
                <property name="strokeColor">
                    <color r="17" g="170" b="34" alpha="127"/>
                </property>
                <property name="p1">
                    <point x="6975.0" y="39750.0"/>
                </property>
                <property name="p2">
                    <point x="3675.0" y="51300.0"/>
                </property>
                <property name="headAngle">
                    <integer>20</integer>
                </property>
                <property name="headLength">
                    <integer>25</integer>
                </property>
            </properties>
        </annotation>
		<!-- Beispiel für die im Profil definierte "MyLine" Annotation (LineAnnotation) -->
        <annotation type="MyLine" created-at="2018-09-07T16:15:04+02:00"
            last-modified-at="2018-09-07T16:15:05+02:00">
            <user-properties/>
            <properties>
                <property name="lineWidth">
                    <float>5.0</float>
                </property>
                <property name="strokeColor">
                    <color r="17" g="170" b="34" alpha="127"/>
                </property>
                <property name="p1">
                    <point x="24900.0" y="7500.0"/>
                </property>
                <property name="p2">
                    <point x="34875.0" y="18150.0"/>
                </property>
            </properties>
        </annotation>
    </page>
</annotations>


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="horizontalAlignment"><enum>TextAnnotationGibt an, welche Ausrichtung die Schrift haben soll. In Java als com.levigo.jadice.annotation.HorizontalAlignment 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>TextAnnotation, StampImageAnnotationRotation der Annotation in Grad. In Java als int rotation definiert.
<property name="arrowWidth"><integer>CalloutAnnotationBreite des Pfeils des Callouts. In der Klasse als int arrowWidth definiert.
<property name="arrowHeight"><integer>CalloutAnnotationHöhe des Pfeils des Callouts. In der Klasse als int arrowHeight definiert.
<property name="lineWidth"><integer>CalloutAnnotationLiniendicke der Annotation. In der Klasse als int lineWidth definiert. 
<property name="callout"><path>CalloutAnnotationPfaddefinition des Callouts. In der Klasse als java.awt.geom.Path2D callout definiert.
<property name="rectangleTextbox"><rectangle>CalloutAnnotationDefinition für das Rechteck des Textfeldes. In der Klasse als java.awt.geom.Path2D rectangleTextbox definiert.
<property name="areas"><list> mit <path>-ElementenTextHighlightAnnotationBereiche der Textfelder der Annotation. In der Klasse als List<Path2D> areas definiert.
<property name="underscored"><true>,<false>TextHighlightAnnotationDefinition ob Text der Markierung unterstrichen ist. In der Klasse als boolean underscored definiert.
<property name="strikethrough"><true>,<false>TextHighlightAnnotationDefinition ob Text der Markierung durchgestrichen ist. In der Klasse als boolean strikethrough definiert.
<property name="highlighted"><true>,<false>TextHighlightAnnotationDefinition ob Text der Markierung hervorgehoben ist. In der Klasse als boolean highlighted definiert.

Hierarchie der Annotationsklassen

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


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
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
  targetNamespace="http://xml.levigo.com/ns/jadice/annotations/1.0"
  xmlns="http://xml.levigo.com/ns/jadice/annotations/1.0" 
  xsi:schemaLocation="http://xml.levigo.com/ns/jadice/annotations/1.0 http://xml.levigo.com/ns/jadice/annotations/1.0/schema.xsd"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <xs:import namespace="http://www.w3.org/1999/xhtml"
    schemaLocation="http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd"/>
  <!-- Zentrales übergeordnetes Tag für alle Annotationen -->
  <xs:element name="annotations">
    <xs:complexType>
      <xs:sequence maxOccurs="unbounded">
	    <!-- Die Annotationen werden seitenweise gespeichert. Dazu existiert das Tag "page", dem zwingend die Attribute "index" für den Seitenindex beginnend bei 0 -->
		<!-- und "profile" für den Namen des Annotationsprofils beigefügt werden müssem -->
        <xs:element name="page">
          <xs:complexType>
            <xs:sequence>
			  <!-- Die user-properties, die der User selber festlegen kann werden mit dem Tag "user-properties" maximal 1 Mal pro Seite gespeichert -->
              <xs:element name="user-properties" type="properties" maxOccurs="1" minOccurs="0"/>
			  <!-- Eine Seite kann beliebig viele Annotationen enhalten, die jeweils mit dem Tag "annotation" repräsentiert werden -->
              <xs:element name="annotation" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
				    <!-- Für jede Annotation ist es wiederum möglich, eigene user-properties zu speichern, die mit dem Tag "user-properties" maximal 1 Mal pro Annotation gespeichert werden -->
                    <xs:element name="user-properties" type="properties" maxOccurs="1" minOccurs="0"/>
					<!-- Jede Annotation besitzt zudem annotationspezifische Eigenschaften, die mit dem Tag "properties" angegeben werden. Genaueres hierzu kann den nachfolgenden Beispielen und Erläuterungen entnommen werden -->
                    <xs:element name="properties" type="properties" minOccurs="0" maxOccurs="1"/>
                  </xs:sequence>
                  <!-- Zu jeder Annotation muss zwingend der archetype angegeben werden mit dem Attribut "type", um Rückschlüsse auf die im Annotationsprofil definierte Annotation zuzulassen. -->
                  <xs:attribute name="type" use="required" type="xs:NCName"/>
				  <!-- optional ist es möglich IDs für die Annotation anzugeben, die mit dem Tag "id" gespeichert werden können -->
                  <xs:attribute name="id" use="optional" type="xs:normalizedString"/>
				  <!-- Optional kann der Zeitstempel für den Zeitpunkt wann die Annotation erstellt wurde, im xs:dateTime-Format mit dem Attribut "created-at" gespeichert werden -->
                  <xs:attribute name="created-at" use="optional" type="xs:dateTime"/>
				  <!-- Optional kann der Name des Users, der die Annotation erstellt hat, gespeichert werden mit dem Attribut "created-by" -->
                  <xs:attribute name="created-by" use="optional" type="xs:normalizedString"/>
				  <!-- Optional kann das letzte Modifikationsdatum für die Annotation im xs:dateTime-Format mit dem Attribut "last-modified-at" gespeichert werden -->
                  <xs:attribute name="last-modified-at" use="optional" type="xs:dateTime"/>
				  <!-- Optional kann der Name des Users, der die Annotation zuletzt modifiziert hat gespeichert werden mit dem Attribut "last-modified-by" -->
                  <xs:attribute name="last-modified-by" use="optional" type="xs:normalizedString"/>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
			<!-- der Seitenindex der page beginnend bei 0 -->
            <xs:attribute name="index" use="required" type="xs:unsignedInt"/>
			<!-- der Name des annotations-profils, so wie er im profil deklariert wird -->
            <xs:attribute name="profile" use="required" type="xs:normalizedString"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
	  <!-- Die Angabe des Annotationsprofils ist auch optional 1 Mal für das gesamte XML möglich -->
      <xs:attribute name="profile" use="optional" type="xs:normalizedString"/>
    </xs:complexType>
  </xs:element>
  <!-- Definition der annotations-spezifischen Properties anhand des zentralen Tags "properties" -->
  <xs:complexType name="properties">
    <xs:sequence>
	  <!-- Das "properties" Tag besteht aus einer Aneinanderreihung vieler verschiedener einzelner "property" Tags, die je nach Annotation verschieden sind -->
      <xs:element name="property" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
		    <!-- Der Inhalt einer jeden Eigenschaft bzw. "property" wird durch eine der passenden "Base property types" angegeben. Die Angabe hier ist nötig, -->
			<!-- um sicherzustellen, dass jede Property eine der "Base Property Types" erhält. Genaueres zu den "Base Property Types" wird im folgenden Teil des Schemas erklärt. -->
            <xs:any processContents="lax" minOccurs="1" maxOccurs="1"/>
          </xs:sequence>
		  <!-- Jedes "property" Tag enthält zwingend einen Namen, um anzugeben um welche Eigenschaft der Annotation es sich hierbei handelt -->
          <xs:attribute name="name" use="required" type="xs:normalizedString"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <!-- Base property types -->
  <!-- Die Base property types sind die Parameter, aus denen die annotationsspezifischen properties im Grunde genommen bestehen. --> 
  
  <!-- Das "point" Element repräsentiert in Java ein java.awt.geom.Point2D Objekt -->
  <xs:element name="point">
    <xs:complexType>
	  <!-- Das Point2D Objekt wird durch seine x und y Koordinate in Java eindeutig festgelegt. Dazu werden 2 Zahlen im XML-Dokument für x und y im xs:float-Format zwingend festgelegt -->
      <xs:attribute name="x" use="required" type="xs:float"/>
      <xs:attribute name="y" use="required" type="xs:float"/>
    </xs:complexType>
  </xs:element>
  <!-- Das String Objekt wird im XML als "string" Tag übersetzt. -->
  <xs:element name="string" type="xs:string"/>
  <!-- Das in Java existierende boolean Objekt wird im XML als wahlweise "true"... -->
  <xs:element name="true">
    <xs:complexType/>
  </xs:element>
  <!-- ...oder "false" mit leerem Inhalt abgespeichert -->
  <xs:element name="false">
    <xs:complexType/>
  </xs:element>
  <!-- Der Java spezifische Typ null wird mit leerem Tag "null" abgespeichert -->
  <xs:element name="null">
    <xs:complexType/>
  </xs:element>
  
  <!-- Der Datentyp "int" in Java wird im xs:integer-Format im XML abgelegt. -->
  <xs:element name="integer" type="xs:integer"/>
  <!-- Der Datentyp "float" in Java wird im xs:float-Format im XML abgelegt. -->
  <xs:element name="float" type="xs:float"/>
  <!-- Mit dem Tag "number" werden Zahlen, die in Java als double deklariert sind im xs:double-Format abgelegt. -->
  <xs:element name="number" type="xs:double"/>
  
  <!-- Mit dem "rectangle" Tag werden die in Java vorhandenen java.awt.geom.Rectangle2D Objekte gespeichert -->
  <xs:element name="rectangle">
    <xs:complexType>
	  <!-- Das "rectangle" wird eindeutig festgelegt durch die zwingend anzugebenden Parameter x,y,width und height im xs:float-Format -->
      <xs:attribute name="x" use="required" type="xs:float"/>
      <xs:attribute name="y" use="required" type="xs:float"/>
      <xs:attribute name="width" use="required" type="xs:float"/>
      <xs:attribute name="height" use="required" type="xs:float"/>
    </xs:complexType>
  </xs:element>
  <!-- Mit dem "path" Tag wird das in Java vorhandene java.awt.geom.Path2D Objekt abgespeichert. -->
  <xs:element name="path">
    <xs:complexType>
	  <!-- Zur Konstruktion eines komplexen Path2D Objekts hat man die Wahl zwischen den Operationen "move-to", "line-to", "quad-to", "curve-to", die -->
      <!-- jeweils als einzelnes Tag in XML repräsentiert werden. In den Annotationen werden für alle Parameter des Path2D Objektes der Datentyp "float" -->	
      <!-- benutzt, der in XML als xs:float repräsentiert werden kann -->	  
      <xs:choice minOccurs="0" maxOccurs="unbounded">
	    <!-- "move-to" steht für den Sprung an eine x,y-Koordinate. Üblicherweise um den Beginn eines Path2D Objektes einzuleiten. --> 
        <xs:element name="move-to">
          <xs:complexType>
            <xs:attribute name="x" use="required" type="xs:float"/>
            <xs:attribute name="y" use="required" type="xs:float"/>
          </xs:complexType>
        </xs:element>
		<!-- "line-to" steht für das Ziehen einer Linie vom aktuellen Punkt zu einem durch x,y-Koordinaten spezifierten Punkt. -->
        <xs:element name="line-to">
          <xs:complexType>
            <xs:attribute name="x" use="required" type="xs:float"/>
            <xs:attribute name="y" use="required" type="xs:float"/>
          </xs:complexType>
        </xs:element>
		<!-- "quad-to" steht für ein Kurvensegment des Pfades, der mittels 2 zusätzlicher Punkte, die die Kurve schneidet, konstruiert wird. -->
        <xs:element name="quad-to">
          <xs:complexType>
            <xs:attribute name="x" use="required" type="xs:float"/>
            <xs:attribute name="y" use="required" type="xs:float"/>
            <xs:attribute name="cx" use="required" type="xs:float"/>
            <xs:attribute name="cy" use="required" type="xs:float"/>
          </xs:complexType>
        </xs:element>
		<!-- "curve-to" steht für eine sogenannte Bézierkurve, die mittels 4 Hilfspunkte, die von der Kurve geschnitten werden konstruiert werden -->
        <xs:element name="curve-to">
          <xs:complexType>
            <xs:attribute name="x" use="required" type="xs:float"/>
            <xs:attribute name="y" use="required" type="xs:float"/>
            <xs:attribute name="c1x" use="required" type="xs:float"/>
            <xs:attribute name="c1y" use="required" type="xs:float"/>
            <xs:attribute name="c2x" use="required" type="xs:float"/>
            <xs:attribute name="c2y" use="required" type="xs:float"/>
          </xs:complexType>
        </xs:element>
		<!-- "close" steht für das Schließen des Pfades, also das Verbinden mit dem Startpunkt, so dass ein geschlossener Pfad entsteht -->
        <xs:element name="close"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>
  <!-- Das Tag "color" repräsentiert ein java.awt.Color Objekt, dass durch Angabe 3er Farbwerte im R,G,B Farbspektrum konstruiert wird und optional -->
  <!-- durch Angabe eines Alpha-Wertes erweitert werden kann -->
  <xs:element name="color">
    <xs:complexType>
	  <!-- Alle Parameter dürfen nur zwischen 0 und 255 liegen, daher die Angabe des Typs xs:unsignedByte -->
      <xs:attribute name="r" use="required" type="xs:unsignedByte"/>
      <xs:attribute name="g" use="required" type="xs:unsignedByte"/>
      <xs:attribute name="b" use="required" type="xs:unsignedByte"/>
      <xs:attribute name="alpha" use="optional" type="xs:unsignedByte"/>
    </xs:complexType>
  </xs:element>
  <!-- Das "data" Tag wird für die Speicherung beliebiger binärer Inhalte verwendet -->
  <xs:element name="data">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:base64Binary">
		  <!-- Um den Kontext, wie die binären Daten zu verwenden sind zu erfassen, muss zwingend der mime-type angegeben werden. -->
          <xs:attribute name="mime-type" use="required" type="xs:normalizedString"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <!-- Für die Speicherung von Rich-Text-Format wird das Tag "rtf" mit Inhalt in Form von xs:string definiert -->
  <xs:element name="rtf" type="xs:string"/>
  <!-- Für die Speicherung von html bzw. xhtml-Inhalten wird das Tag "xhtml" verwendet. -->
  <xs:element name="xhtml" type="xhtml:Block"/>
</xs: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)
listbeliebige Entities
java.util.List
enumxs:string
java.lang.Enum