diff --git a/.project b/.project
index 6afa65d285..305d945492 100644
--- a/.project
+++ b/.project
@@ -16,12 +16,12 @@
- 1659282302444
+ 1716490142096
30
org.eclipse.core.resources.regexFilterMatcher
- node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
diff --git a/generator/.project b/generator/.project
index f10d2b92b9..6fa9d16d97 100644
--- a/generator/.project
+++ b/generator/.project
@@ -16,12 +16,12 @@
- 1659282302476
+ 1716490142194
30
org.eclipse.core.resources.regexFilterMatcher
- node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
diff --git a/generator/schema2template-maven-plugin/.project b/generator/schema2template-maven-plugin/.project
index 88e7e045b2..fb089953d0 100644
--- a/generator/schema2template-maven-plugin/.project
+++ b/generator/schema2template-maven-plugin/.project
@@ -22,12 +22,12 @@
- 1659282302468
+ 1716490142176
30
org.eclipse.core.resources.regexFilterMatcher
- node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
diff --git a/generator/schema2template-maven-plugin/.settings/org.eclipse.jdt.apt.core.prefs b/generator/schema2template-maven-plugin/.settings/org.eclipse.jdt.apt.core.prefs
index 687ad91a74..dfa4f3adb2 100644
--- a/generator/schema2template-maven-plugin/.settings/org.eclipse.jdt.apt.core.prefs
+++ b/generator/schema2template-maven-plugin/.settings/org.eclipse.jdt.apt.core.prefs
@@ -1,4 +1,4 @@
eclipse.preferences.version=1
org.eclipse.jdt.apt.aptEnabled=true
-org.eclipse.jdt.apt.genSrcDir=target\\generated-sources\\annotations
-org.eclipse.jdt.apt.genTestSrcDir=target\\generated-test-sources\\test-annotations
+org.eclipse.jdt.apt.genSrcDir=target/generated-sources/annotations
+org.eclipse.jdt.apt.genTestSrcDir=target/generated-test-sources/test-annotations
diff --git a/generator/schema2template/.project b/generator/schema2template/.project
index 8aac1bc1d3..25e855346c 100644
--- a/generator/schema2template/.project
+++ b/generator/schema2template/.project
@@ -22,12 +22,12 @@
- 1659282302459
+ 1716490142157
30
org.eclipse.core.resources.regexFilterMatcher
- node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
diff --git a/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.1/test.xml b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.1/test.xml
new file mode 100644
index 0000000000..13159c7ca1
--- /dev/null
+++ b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.1/test.xml
@@ -0,0 +1,146 @@
+
+
+
+
+
+
+
+
+
+
+
+ ELEMENT
+ #6495ed
+ | text:page-count | text:paragraph-count | text:word-count |
+ text:character-count | text:table-count | text:image-count | text:object-count
+
+
+ SEQUENCE
+ SEQUENCE
+ SEQUENCE
+
+
+ REF
+ #ffd700
+ style-num-letter-sync-attlist
+
+
+ REF
+ #ffd700
+ common-field-num-format-attlist
+
+
+ CHOICE
+ CHOICE
+ CHOICE
+
+
+ CHOICE
+ CHOICE
+ CHOICE
+
+
+ ATTRIBUTE
+ #ee0000
+ style:num-letter-sync
+
+
+ REF
+ #ffd700
+ common-num-format-attlist
+
+
+ EPSILON
+ EPSILON
+ EPSILON
+
+
+ CHOICE
+ CHOICE
+ CHOICE
+
+
+ EPSILON
+ EPSILON
+ EPSILON
+
+
+ ATTRIBUTE
+ #ee0000
+ style:num-format
+
+
+ EPSILON
+ EPSILON
+ EPSILON
+
+
+ SEQUENCE
+ SEQUENCE
+ SEQUENCE
+
+
+ STRING
+ STRING
+ STRING
+
+
+ ATTRIBUTE
+ #ee0000
+ style:num-format
+
+
+ has
+ #00ee00
+ 1
+
+
+ has
+ #00ee00
+ 2
+
+
+ has
+
+
+ has
+ #00ee00
+ 1
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+ #00ee00
+ 2
+
+
+ has
+
+
+
diff --git a/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/_text_page-count_text_paragraph-count_text_word-count_text_character-count_text_table-count_text_image-count_text_object-count.graphml b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/_text_page-count_text_paragraph-count_text_word-count_text_character-count_text_table-count_text_image-count_text_object-count.graphml
index e60db81ff3..0f34bc1666 100644
--- a/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/_text_page-count_text_paragraph-count_text_word-count_text_character-count_text_table-count_text_image-count_text_object-count.graphml
+++ b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/_text_page-count_text_paragraph-count_text_word-count_text_character-count_text_table-count_text_image-count_text_object-count.graphml
@@ -1 +1,145 @@
-ELEMENT#6495ed | text:page-count | text:paragraph-count | text:word-count | text:character-count | text:table-count | text:image-count | text:object-countSEQUENCESEQUENCESEQUENCEREF#ffd700style-num-letter-sync-attlistREF#ffd700common-field-num-format-attlistCHOICECHOICECHOICECHOICECHOICECHOICEATTRIBUTE#ee0000style:num-letter-syncREF#ffd700common-num-format-attlistEPSILONEPSILONEPSILONCHOICECHOICECHOICEEPSILONEPSILONEPSILONATTRIBUTE#ee0000style:num-formatEPSILONEPSILONEPSILONSEQUENCESEQUENCESEQUENCESTRINGSTRINGSTRINGATTRIBUTE#ee0000style:num-formathas#00ee001has#00ee002hashas#00ee001hashashashashashashashashashas#00ee002has
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+ ELEMENT
+ #6495ed
+ | text:page-count | text:paragraph-count | text:word-count | text:character-count | text:table-count | text:image-count | text:object-count
+
+
+ SEQUENCE
+ SEQUENCE
+ SEQUENCE
+
+
+ REF
+ #ffd700
+ style-num-letter-sync-attlist
+
+
+ REF
+ #ffd700
+ common-field-num-format-attlist
+
+
+ CHOICE
+ CHOICE
+ CHOICE
+
+
+ CHOICE
+ CHOICE
+ CHOICE
+
+
+ ATTRIBUTE
+ #ee0000
+ style:num-letter-sync
+
+
+ REF
+ #ffd700
+ common-num-format-attlist
+
+
+ EPSILON
+ EPSILON
+ EPSILON
+
+
+ CHOICE
+ CHOICE
+ CHOICE
+
+
+ EPSILON
+ EPSILON
+ EPSILON
+
+
+ ATTRIBUTE
+ #ee0000
+ style:num-format
+
+
+ EPSILON
+ EPSILON
+ EPSILON
+
+
+ SEQUENCE
+ SEQUENCE
+ SEQUENCE
+
+
+ STRING
+ STRING
+ STRING
+
+
+ ATTRIBUTE
+ #ee0000
+ style:num-format
+
+
+ has
+ #00ee00
+ 1
+
+
+ has
+ #00ee00
+ 2
+
+
+ has
+
+
+ has
+ #00ee00
+ 1
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+ #00ee00
+ 2
+
+
+ has
+
+
+
\ No newline at end of file
diff --git a/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/_text_page-count_text_paragraph-count_text_word-count_text_character-count_text_table-count_text_image-count_text_object-count.graphml~ b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/_text_page-count_text_paragraph-count_text_word-count_text_character-count_text_table-count_text_image-count_text_object-count.graphml~
new file mode 100644
index 0000000000..e60db81ff3
--- /dev/null
+++ b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/_text_page-count_text_paragraph-count_text_word-count_text_character-count_text_table-count_text_image-count_text_object-count.graphml~
@@ -0,0 +1 @@
+ELEMENT#6495ed | text:page-count | text:paragraph-count | text:word-count | text:character-count | text:table-count | text:image-count | text:object-countSEQUENCESEQUENCESEQUENCEREF#ffd700style-num-letter-sync-attlistREF#ffd700common-field-num-format-attlistCHOICECHOICECHOICECHOICECHOICECHOICEATTRIBUTE#ee0000style:num-letter-syncREF#ffd700common-num-format-attlistEPSILONEPSILONEPSILONCHOICECHOICECHOICEEPSILONEPSILONEPSILONATTRIBUTE#ee0000style:num-formatEPSILONEPSILONEPSILONSEQUENCESEQUENCESEQUENCESTRINGSTRINGSTRINGATTRIBUTE#ee0000style:num-formathas#00ee001has#00ee002hashas#00ee001hashashashashashashashashashas#00ee002has
\ No newline at end of file
diff --git a/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2 b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2
new file mode 100644
index 0000000000..4a2e6b7bcf
--- /dev/null
+++ b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2
@@ -0,0 +1,17 @@
+digraph G {
+ 0 -> 3 [_graphml_id=6];
+ 3 -> 7 [_graphml_id=8];
+ 3 -> 59 [_graphml_id=60];
+ 35 -> 39 [_graphml_id=42];
+ 7 -> 11 [_graphml_id=14];
+ 39 -> 43 [_graphml_id=46];
+ 39 -> 47 [_graphml_id=50];
+ 11 -> 15 [_graphml_id=18];
+ 11 -> 55 [_graphml_id=58];
+ 15 -> 19 [_graphml_id=22];
+ 19 -> 51 [_graphml_id=54];
+ 19 -> 23 [_graphml_id=26];
+ 19 -> 27 [_graphml_id=30];
+ 27 -> 35 [_graphml_id=36];
+ 27 -> 31 [_graphml_id=32];
+}
diff --git a/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2-fixed.dot b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2-fixed.dot
new file mode 100644
index 0000000000..39c7e23722
--- /dev/null
+++ b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2-fixed.dot
@@ -0,0 +1,17 @@
+digraph G {
+ "| text:page-count | text:paragraph-count | text:word-count | text:character-count | text:table-count | text:image-count | text:object-count" -> 3 [_graphml_id=6];
+ 3 -> 7 [_graphml_id=8];
+ 3 -> 59 [_graphml_id=60];
+ 35 -> 39 [_graphml_id=42];
+ 7 -> 11 [_graphml_id=14];
+ 39 -> 43 [_graphml_id=46];
+ 39 -> 47 [_graphml_id=50];
+ 11 -> 15 [_graphml_id=18];
+ 11 -> 55 [_graphml_id=58];
+ 15 -> 19 [_graphml_id=22];
+ 19 -> 51 [_graphml_id=54];
+ 19 -> 23 [_graphml_id=26];
+ 19 -> 27 [_graphml_id=30];
+ 27 -> 35 [_graphml_id=36];
+ 27 -> 31 [_graphml_id=32];
+}
diff --git a/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2-fixed.dot.svg b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2-fixed.dot.svg
new file mode 100644
index 0000000000..908aa8054d
--- /dev/null
+++ b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2-fixed.dot.svg
@@ -0,0 +1,199 @@
+
+
+
+
+
diff --git a/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2-fixed.graphml b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2-fixed.graphml
new file mode 100644
index 0000000000..61bcf5ee96
--- /dev/null
+++ b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2-fixed.graphml
@@ -0,0 +1,146 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ | text:page-count | text:paragraph-count | text:word-count | text:character-count | text:table-count | text:image-count | text:object-count
+
+
+ SEQUENCE
+ SEQUENCE
+ SEQUENCE
+
+
+ REF
+ #ffd700
+ style-num-letter-sync-attlist
+
+
+ REF
+ #ffd700
+ common-field-num-format-attlist
+
+
+ CHOICE
+ CHOICE
+ CHOICE
+
+
+ CHOICE
+ CHOICE
+ CHOICE
+
+
+ ATTRIBUTE
+ #ee0000
+ style:num-letter-sync
+
+
+ REF
+ #ffd700
+ common-num-format-attlist
+
+
+ EPSILON
+ EPSILON
+ EPSILON
+
+
+ CHOICE
+ CHOICE
+ CHOICE
+
+
+ EPSILON
+ EPSILON
+ EPSILON
+
+
+ ATTRIBUTE
+ #ee0000
+ style:num-format
+
+
+ EPSILON
+ EPSILON
+ EPSILON
+
+
+ SEQUENCE
+ SEQUENCE
+ SEQUENCE
+
+
+ STRING
+ STRING
+ STRING
+
+
+ ATTRIBUTE
+ #ee0000
+ style:num-format
+
+
+ has
+ #00ee00
+ 1
+
+
+ has
+ #00ee00
+ 2
+
+
+ has
+
+
+ has
+ #00ee00
+ 1
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+ #00ee00
+ 2
+
+
+ has
+
+
+
\ No newline at end of file
diff --git a/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2.dot b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2.dot
new file mode 100644
index 0000000000..4a2e6b7bcf
--- /dev/null
+++ b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2.dot
@@ -0,0 +1,17 @@
+digraph G {
+ 0 -> 3 [_graphml_id=6];
+ 3 -> 7 [_graphml_id=8];
+ 3 -> 59 [_graphml_id=60];
+ 35 -> 39 [_graphml_id=42];
+ 7 -> 11 [_graphml_id=14];
+ 39 -> 43 [_graphml_id=46];
+ 39 -> 47 [_graphml_id=50];
+ 11 -> 15 [_graphml_id=18];
+ 11 -> 55 [_graphml_id=58];
+ 15 -> 19 [_graphml_id=22];
+ 19 -> 51 [_graphml_id=54];
+ 19 -> 23 [_graphml_id=26];
+ 19 -> 27 [_graphml_id=30];
+ 27 -> 35 [_graphml_id=36];
+ 27 -> 31 [_graphml_id=32];
+}
diff --git a/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2.dot.svg b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2.dot.svg
new file mode 100644
index 0000000000..565e101b86
--- /dev/null
+++ b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2.dot.svg
@@ -0,0 +1,199 @@
+
+
+
+
+
diff --git a/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2.graphml b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2.graphml
new file mode 100644
index 0000000000..513b16ac12
--- /dev/null
+++ b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2.graphml
@@ -0,0 +1,146 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ | text:page-count | text:paragraph-count | text:word-count | text:character-count | text:table-count | text:image-count | text:object-count
+
+
+ SEQUENCE
+ SEQUENCE
+ SEQUENCE
+
+
+ REF
+ #ffd700
+ style-num-letter-sync-attlist
+
+
+ REF
+ #ffd700
+ common-field-num-format-attlist
+
+
+ CHOICE
+ CHOICE
+ CHOICE
+
+
+ CHOICE
+ CHOICE
+ CHOICE
+
+
+ ATTRIBUTE
+ #ee0000
+ style:num-letter-sync
+
+
+ REF
+ #ffd700
+ common-num-format-attlist
+
+
+ EPSILON
+ EPSILON
+ EPSILON
+
+
+ CHOICE
+ CHOICE
+ CHOICE
+
+
+ EPSILON
+ EPSILON
+ EPSILON
+
+
+ ATTRIBUTE
+ #ee0000
+ style:num-format
+
+
+ EPSILON
+ EPSILON
+ EPSILON
+
+
+ SEQUENCE
+ SEQUENCE
+ SEQUENCE
+
+
+ STRING
+ STRING
+ STRING
+
+
+ ATTRIBUTE
+ #ee0000
+ style:num-format
+
+
+ has
+ #00ee00
+ 1
+
+
+ has
+ #00ee00
+ 2
+
+
+ has
+
+
+ has
+ #00ee00
+ 1
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+ #00ee00
+ 2
+
+
+ has
+
+
+
\ No newline at end of file
diff --git a/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2.graphml~ b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2.graphml~
new file mode 100644
index 0000000000..0f34bc1666
--- /dev/null
+++ b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2.graphml~
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+
+
+ ELEMENT
+ #6495ed
+ | text:page-count | text:paragraph-count | text:word-count | text:character-count | text:table-count | text:image-count | text:object-count
+
+
+ SEQUENCE
+ SEQUENCE
+ SEQUENCE
+
+
+ REF
+ #ffd700
+ style-num-letter-sync-attlist
+
+
+ REF
+ #ffd700
+ common-field-num-format-attlist
+
+
+ CHOICE
+ CHOICE
+ CHOICE
+
+
+ CHOICE
+ CHOICE
+ CHOICE
+
+
+ ATTRIBUTE
+ #ee0000
+ style:num-letter-sync
+
+
+ REF
+ #ffd700
+ common-num-format-attlist
+
+
+ EPSILON
+ EPSILON
+ EPSILON
+
+
+ CHOICE
+ CHOICE
+ CHOICE
+
+
+ EPSILON
+ EPSILON
+ EPSILON
+
+
+ ATTRIBUTE
+ #ee0000
+ style:num-format
+
+
+ EPSILON
+ EPSILON
+ EPSILON
+
+
+ SEQUENCE
+ SEQUENCE
+ SEQUENCE
+
+
+ STRING
+ STRING
+ STRING
+
+
+ ATTRIBUTE
+ #ee0000
+ style:num-format
+
+
+ has
+ #00ee00
+ 1
+
+
+ has
+ #00ee00
+ 2
+
+
+ has
+
+
+ has
+ #00ee00
+ 1
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+
+
+ has
+ #00ee00
+ 2
+
+
+ has
+
+
+
\ No newline at end of file
diff --git a/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2b.dot b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2b.dot
new file mode 100644
index 0000000000..4a2e6b7bcf
--- /dev/null
+++ b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2b.dot
@@ -0,0 +1,17 @@
+digraph G {
+ 0 -> 3 [_graphml_id=6];
+ 3 -> 7 [_graphml_id=8];
+ 3 -> 59 [_graphml_id=60];
+ 35 -> 39 [_graphml_id=42];
+ 7 -> 11 [_graphml_id=14];
+ 39 -> 43 [_graphml_id=46];
+ 39 -> 47 [_graphml_id=50];
+ 11 -> 15 [_graphml_id=18];
+ 11 -> 55 [_graphml_id=58];
+ 15 -> 19 [_graphml_id=22];
+ 19 -> 51 [_graphml_id=54];
+ 19 -> 23 [_graphml_id=26];
+ 19 -> 27 [_graphml_id=30];
+ 27 -> 35 [_graphml_id=36];
+ 27 -> 31 [_graphml_id=32];
+}
diff --git a/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2b.dot.svg b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2b.dot.svg
new file mode 100644
index 0000000000..565e101b86
--- /dev/null
+++ b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/test2b.dot.svg
@@ -0,0 +1,199 @@
+
+
+
+
+
diff --git a/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/yedit.graphml b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/yedit.graphml
new file mode 100644
index 0000000000..14a8e1a55b
--- /dev/null
+++ b/generator/schema2template/src/test/resources/test-reference/odf/graphml/odf-schema-1.3/yedit.graphml
@@ -0,0 +1,1192 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+ 2
+
+
+
+
+
+
+
+
+
+
+
+ 3
+
+
+
+
+
+
+
+
+
+
+
+ 4
+
+
+
+
+
+
+
+
+
+
+
+ 5
+
+
+
+
+
+
+
+
+
+
+
+ 6
+
+
+
+
+
+
+
+
+
+
+
+ 7
+
+
+
+
+
+
+
+
+
+
+
+ 8
+
+
+
+
+
+
+
+
+
+
+
+ 9
+
+
+
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+ 11
+
+
+
+
+
+
+
+
+
+
+
+ 12
+
+
+
+
+
+
+
+
+
+
+
+ 13
+
+
+
+
+
+
+
+
+
+
+
+ 14
+
+
+
+
+
+
+
+
+
+
+
+ 15
+
+
+
+
+
+
+
+
+
+
+
+ 16
+
+
+
+
+
+
+
+
+
+
+
+ 17
+
+
+
+
+
+
+
+
+
+
+
+ 18
+
+
+
+
+
+
+
+
+
+
+
+ 19
+
+
+
+
+
+
+
+
+
+
+
+ 20
+
+
+
+
+
+
+
+
+
+
+
+ 21
+
+
+
+
+
+
+
+
+
+
+
+ 22
+
+
+
+
+
+
+
+
+
+
+
+ 23
+
+
+
+
+
+
+
+
+
+
+
+ 24
+
+
+
+
+
+
+
+
+
+
+
+ 25
+
+
+
+
+
+
+
+
+
+
+
+ 26
+
+
+
+
+
+
+
+
+
+
+
+ 27
+
+
+
+
+
+
+
+
+
+
+
+ 28
+
+
+
+
+
+
+
+
+
+
+
+ 29
+
+
+
+
+
+
+
+
+
+
+
+ 30
+
+
+
+
+
+
+
+
+
+
+
+ 31
+
+
+
+
+
+
+
+
+
+
+
+ 32
+
+
+
+
+
+
+
+
+
+
+
+ 33
+
+
+
+
+
+
+
+
+
+
+
+ 34
+
+
+
+
+
+
+
+
+
+
+
+ 35
+
+
+
+
+
+
+
+
+
+
+
+ 36
+
+
+
+
+
+
+
+
+
+
+
+ 37
+
+
+
+
+
+
+
+
+
+
+
+ 38
+
+
+
+
+
+
+
+
+
+
+
+ 39
+
+
+
+
+
+
+
+
+
+
+
+ 40
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/odfdom/.project b/odfdom/.project
index 48563ca555..4f2f3b58d4 100644
--- a/odfdom/.project
+++ b/odfdom/.project
@@ -22,12 +22,12 @@
- 1659282302431
+ 1716490142080
30
org.eclipse.core.resources.regexFilterMatcher
- node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/incubator/search/SelectionManager.java b/odfdom/src/main/java/org/odftoolkit/odfdom/incubator/search/SelectionManager.java
index a9f40fc654..0d32ca1939 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/incubator/search/SelectionManager.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/incubator/search/SelectionManager.java
@@ -137,10 +137,8 @@ public void unregisterItem(Selection item) {
selections.remove(item);
}
}
-
- /**
- * Removes all selections from the SelectionManager.
- */
+
+ /** Removes all selections from the SelectionManager. */
public void unregisterAll() {
repository.clear();
}
diff --git a/odfdom/src/test/java/org/odftoolkit/odfdom/doc/LoadSaveTest.java b/odfdom/src/test/java/org/odftoolkit/odfdom/doc/LoadSaveTest.java
index a5def79538..5f0e153f2c 100644
--- a/odfdom/src/test/java/org/odftoolkit/odfdom/doc/LoadSaveTest.java
+++ b/odfdom/src/test/java/org/odftoolkit/odfdom/doc/LoadSaveTest.java
@@ -41,7 +41,9 @@
public class LoadSaveTest {
private static final String SOURCE = "not-only-odf.odt";
+ private static final String SOURCE2 = "svgTitleTest.odt";
private static final String TARGET = "loadsavetest.odt";
+ private static final String TARGET2 = "loadsavetest2.odt";
private static final String FOREIGN_ATTRIBUTE_NAME = "foreignAttribute";
private static final String FOREIGN_ATTRIBUTE_VALUE = "foreignAttributeValue";
private static final String FOREIGN_ELEMENT_TEXT = "foreignText";
@@ -101,4 +103,46 @@ public void testLoadSave() {
Assert.fail(e.getMessage());
}
}
+
+ @Test
+ public void testLoadSave2() {
+ try {
+ System.out.println("\n\nStarting SVG Title Test (testLoadSave2)");
+ OdfDocument odfDocument =
+ OdfDocument.loadDocument(ResourceUtilities.getAbsoluteInputPath(SOURCE2));
+ Assert.assertTrue(odfDocument.getPackage().contains("content.xml"));
+ String baseURI1 = odfDocument.getBaseURI();
+ System.out.println("SOURCE URI: " + baseURI1);
+
+ OdfFileDom odfContent = odfDocument.getContentDom();
+ OfficeDocumentContentElement content =
+ (OfficeDocumentContentElement) odfContent.getDocumentElement();
+ NodeList svgTitleList =
+ odfContent.getElementsByTagNameNS(OdfDocumentNamespace.SVG.getUri(), "title");
+ Assert.assertTrue(
+ "There should be a single within the document",
+ svgTitleList.getLength() == 1);
+ NodeList svgDescList =
+ odfContent.getElementsByTagNameNS(OdfDocumentNamespace.SVG.getUri(), "desc");
+ Assert.assertTrue(
+ "There should be no within the document", svgDescList.getLength() == 0);
+
+ odfDocument.save(ResourceUtilities.getTestOutputFile(TARGET2));
+ odfDocument = OdfDocument.loadDocument(ResourceUtilities.getAbsoluteOutputPath(TARGET2));
+ System.out.println("TARGET: " + ResourceUtilities.getAbsoluteOutputPath(TARGET2));
+
+ odfContent = odfDocument.getContentDom();
+ svgTitleList = odfContent.getElementsByTagNameNS(OdfDocumentNamespace.SVG.getUri(), "title");
+ Assert.assertTrue(
+ "There should be a single within the document",
+ svgTitleList.getLength() == 1);
+ svgDescList = odfContent.getElementsByTagNameNS(OdfDocumentNamespace.SVG.getUri(), "desc");
+ Assert.assertTrue(
+ "There should be no within the document", svgDescList.getLength() == 0);
+ } catch (Exception e) {
+ Logger.getLogger(LoadSaveTest.class.getName())
+ .log(Level.SEVERE, e.getMessage() + ExceptionUtils.getStackTrace(e), e);
+ Assert.fail(e.getMessage());
+ }
+ }
}
diff --git a/odfdom/src/test/java/org/odftoolkit/odfdom/utils/ResourceUtilities.java b/odfdom/src/test/java/org/odftoolkit/odfdom/utils/ResourceUtilities.java
index ce05ec36d4..3c63490005 100644
--- a/odfdom/src/test/java/org/odftoolkit/odfdom/utils/ResourceUtilities.java
+++ b/odfdom/src/test/java/org/odftoolkit/odfdom/utils/ResourceUtilities.java
@@ -52,7 +52,8 @@ public final class ResourceUtilities {
static final String ODT_SUFFIX = ".odt";
static final List NO_OPERATIONS = new ArrayList(0);
static final String NO_METHOD_NAME = "";
- // the smallest possible test document of this ODF type. Edited manually and proofed valid by
+ // the smallest possible test document of this ODF type. Edited manually and
+ // proofed valid by
// Apache ODF Validator.
static final String EMPTY_AS_CAN_BE = "empty_as_can_be";
private static final String PATH_FROM_TEST_CLASSES_TO_REFENCE = "test-reference" + File.separator;
@@ -321,7 +322,9 @@ public static File getTempTestDirectory() {
}
/*
- * @param file the file to be saved, when creating a test file, you might use newTestOutputFile(String relativeFilePath).
+ * @param file the file to be saved, when creating a test file, you might use
+ * newTestOutputFile(String relativeFilePath).
+ *
* @param inputData the data to be written into the file
*/
public static void saveStringToFile(File file, String data) {
diff --git a/odfdom/src/test/resources/test-input/svgTitleTest.odt b/odfdom/src/test/resources/test-input/svgTitleTest.odt
new file mode 100644
index 0000000000..3cec8562cd
Binary files /dev/null and b/odfdom/src/test/resources/test-input/svgTitleTest.odt differ
diff --git a/taglets/.project b/taglets/.project
index eec8a43cae..40b53bb353 100644
--- a/taglets/.project
+++ b/taglets/.project
@@ -22,12 +22,12 @@
- 1659282302483
+ 1716490142218
30
org.eclipse.core.resources.regexFilterMatcher
- node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
diff --git a/validator/.project b/validator/.project
index 325a5959bf..5648b4fee5 100644
--- a/validator/.project
+++ b/validator/.project
@@ -29,12 +29,12 @@
- 1659282302451
+ 1716490142135
30
org.eclipse.core.resources.regexFilterMatcher
- node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
diff --git a/xslt-runner/.project b/xslt-runner/.project
index e3521ac9c7..90865476e9 100644
--- a/xslt-runner/.project
+++ b/xslt-runner/.project
@@ -22,12 +22,12 @@
- 1659282302490
+ 1716490142235
30
org.eclipse.core.resources.regexFilterMatcher
- node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__