@@ -66,6 +66,10 @@ public class CompasSclDataBaseXRepository implements CompasSclDataRepository {
66
66
private static final String DECLARE_ID_VARIABLE = "declare variable $id := '%s';\n " ;
67
67
private static final String DECLARE_PATH_VARIABLE = "declare variable $path := '%s';\n " ;
68
68
69
+ private static final String SCL_HEADER_ID_XPATH = "/scl:SCL/scl:Header/@id" ;
70
+ private static final String SCL_HEADER_VERSION_XPATH = "/scl:SCL/scl:Header/@version" ;
71
+ private static final String COMPAS_NAME_EXTENSION_XPATH = "/scl:SCL/scl:Private[@type='" + COMPAS_SCL_EXTENSION_TYPE + "']/compas:" + COMPAS_SCL_NAME_EXTENSION ;
72
+
69
73
private final BaseXClientFactory baseXClientFactory ;
70
74
private final SclDataModelMarshaller sclDataMarshaller ;
71
75
@@ -93,11 +97,11 @@ public List<Item> list(SclType type) {
93
97
DECLARE_LATEST_VERSION_FUNC +
94
98
format (DECLARE_DB_VARIABLE , type ) +
95
99
"for $resource in db:open($db)\n " +
96
- " let $id := $resource/scl:SCL/scl:Header/@id \n " +
100
+ " let $id := $resource" + SCL_HEADER_ID_XPATH + " \n " +
97
101
" group by $id\n " +
98
102
" let $latestScl := local:latest-version($db, $id)\n " +
99
- " let $version := $latestScl//scl:SCL/scl:Header/@version \n " +
100
- " let $name := $latestScl//scl:SCL/scl:Private[@type=' " + COMPAS_SCL_EXTENSION_TYPE + "']/compas:" + COMPAS_SCL_NAME_EXTENSION + "\n " +
103
+ " let $version := $latestScl" + SCL_HEADER_VERSION_XPATH + " \n " +
104
+ " let $name := $latestScl" + COMPAS_NAME_EXTENSION_XPATH + "\n " +
101
105
" order by fn:lower-case($name)\n " +
102
106
" return '<Item xmlns=\" " + SCL_DATA_SERVICE_V1_NS_URI + "\" ><Id>' || $id || '</Id><Name>' || $name || '</Name><Version>' || $version || '</Version></Item>'" ,
103
107
sclDataMarshaller ::unmarshalItem );
@@ -110,9 +114,9 @@ public List<Item> listVersionsByUUID(SclType type, UUID id) {
110
114
format (DECLARE_DB_VARIABLE , type ) +
111
115
format (DECLARE_ID_VARIABLE , id ) +
112
116
"for $resource in db:open($db, $id)\n " +
113
- " let $id := $resource/scl:SCL/scl:Header/@id \n " +
114
- " let $name := $resource/scl:SCL/scl:Private[@type=' " + COMPAS_SCL_EXTENSION_TYPE + "']/compas:" + COMPAS_SCL_NAME_EXTENSION + "\n " +
115
- " let $version := $resource/scl:SCL/scl:Header/@version \n " +
117
+ " let $id := $resource" + SCL_HEADER_ID_XPATH + " \n " +
118
+ " let $version := $resource" + SCL_HEADER_VERSION_XPATH + "\n " +
119
+ " let $name := $resource" + COMPAS_NAME_EXTENSION_XPATH + " \n " +
116
120
" let $parts := tokenize($version, '\\ .')\n " +
117
121
" let $majorVersion := xs:int($parts[1])\n " +
118
122
" let $minorVersion := xs:int($parts[2])\n " +
@@ -170,9 +174,9 @@ public SclMetaInfo findMetaInfoByUUID(SclType type, UUID id) {
170
174
"let $resource := local:latest-version($db, $id)" +
171
175
"return if ($resource)\n " +
172
176
"then (\n " +
173
- " let $id := $resource/scl:SCL/scl:Header/@id \n " +
174
- " let $name := $resource/scl:SCL/scl:Private[@type=' " + COMPAS_SCL_EXTENSION_TYPE + "']/compas:" + COMPAS_SCL_NAME_EXTENSION + "\n " +
175
- " let $version := $resource/scl:SCL/scl:Header/@version \n " +
177
+ " let $id := $resource" + SCL_HEADER_ID_XPATH + " \n " +
178
+ " let $version := $resource" + SCL_HEADER_VERSION_XPATH + "\n " +
179
+ " let $name := $resource" + COMPAS_NAME_EXTENSION_XPATH + " \n " +
176
180
" return '<SclMetaInfo xmlns=\" " + SCL_DATA_SERVICE_V1_NS_URI + "\" ><Id>' || $id || '</Id><Name>' || $name || '</Name><Version>' || $version || '</Version></SclMetaInfo>'\n " +
177
181
")\n " ,
178
182
sclDataMarshaller ::unmarshalSclMetaInfo );
0 commit comments