Merge lp:~zorba-coders/zorba/bug1167400-valType into lp:zorba
- bug1167400-valType
- Merge into trunk
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Sorin Marian Nasoi | ||||
Approved revision: | 11382 | ||||
Merged at revision: | 11460 | ||||
Proposed branch: | lp:~zorba-coders/zorba/bug1167400-valType | ||||
Merge into: | lp:zorba | ||||
Diff against target: |
634 lines (+130/-120) 16 files modified
src/diagnostics/diagnostic_en.xml (+12/-0) src/diagnostics/pregenerated/dict_en.cpp (+3/-0) src/diagnostics/pregenerated/dict_zed_keys.h (+3/-0) src/types/casting.cpp (+6/-4) src/types/schema/EventSchemaValidator.cpp (+1/-1) src/types/schema/SchemaValidatorFilter.cpp (+17/-10) src/types/schema/XercSchemaValidator.cpp (+1/-1) src/types/schema/revalidateUtils.cpp (+8/-4) src/types/schema/schema.cpp (+62/-31) src/types/schema/schema.h (+8/-4) src/types/schema/validate.cpp (+5/-3) test/fots/CMakeLists.txt (+0/-10) test/rbkt/Queries/w3c_known_failures.txt (+1/-0) test/rbkt/Queries/w3c_known_failures_XQueryX.txt (+1/-50) test/rbkt/Queries/zorba/schemas/val-enum-err.spec (+1/-1) test/rbkt/Queries/zorba/schemas/val-xsitype-err.spec (+1/-1) |
||||
To merge this branch: | bzr merge lp:~zorba-coders/zorba/bug1167400-valType | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Sorin Marian Nasoi | Approve | ||
Cezar Andrei | Approve | ||
Review via email: mp+160990@code.launchpad.net |
Commit message
Fixes for bug1167400 validate type failures (at least 9)
Description of the change
Fixes for Fixes for bug1167400 validate type failures (at least 9)
Zorba Build Bot (zorba-buildbot) wrote : | # |
Zorba Build Bot (zorba-buildbot) wrote : | # |
The attempt to merge lp:~zorba-coders/zorba/bug1167400-valType into lp:zorba failed. Below is the output from the failed tests.
CMake Error at /home/ceej/
Validation queue job bug1167400-valType-
finished. The final status was:
9 tests did not succeed - changes not commited.
Error in read script: /home/ceej/
Cezar Andrei (cezar-andrei) : | # |
Zorba Build Bot (zorba-buildbot) wrote : | # |
Validation queue starting for merge proposal.
Log at: http://
Zorba Build Bot (zorba-buildbot) wrote : | # |
The attempt to merge lp:~zorba-coders/zorba/bug1167400-valType into lp:zorba failed. Below is the output from the failed tests.
CMake Error at /home/ceej/
Validation queue job bug1167400-valType-
finished. The final status was:
9 tests did not succeed - changes not commited.
Error in read script: /home/ceej/
Zorba Build Bot (zorba-buildbot) wrote : | # |
Validation queue starting for merge proposal.
Log at: http://
Zorba Build Bot (zorba-buildbot) wrote : | # |
The attempt to merge lp:~zorba-coders/zorba/bug1167400-valType into lp:zorba failed. Below is the output from the failed tests.
CMake Error at /home/ceej/
Validation queue job bug1167400-valType-
finished. The final status was:
4 tests did not succeed - changes not commited.
Error in read script: /home/ceej/
Zorba Build Bot (zorba-buildbot) wrote : | # |
Attempt to merge into lp:zorba failed due to conflicts:
text conflict in test/fots/
Zorba Build Bot (zorba-buildbot) wrote : | # |
Validation queue starting for merge proposal.
Log at: http://
Zorba Build Bot (zorba-buildbot) wrote : | # |
The attempt to merge lp:~zorba-coders/zorba/bug1167400-valType into lp:zorba failed. Below is the output from the failed tests.
CMake Error at /home/ceej/
Validation queue job bug1167400-valType-
finished. The final status was:
1 tests did not succeed - changes not commited.
Error in read script: /home/ceej/
Sorin Marian Nasoi (sorin.marian.nasoi) wrote : | # |
Approve.
This merge depends on
https:/
Zorba Build Bot (zorba-buildbot) wrote : | # |
Validation queue starting for merge proposal.
Log at: http://
Zorba Build Bot (zorba-buildbot) wrote : | # |
Validation queue job bug1167400-valType-
All tests succeeded!
Preview Diff
1 | === modified file 'src/diagnostics/diagnostic_en.xml' |
2 | --- src/diagnostics/diagnostic_en.xml 2013-05-15 17:14:35 +0000 |
3 | +++ src/diagnostics/diagnostic_en.xml 2013-05-16 19:29:27 +0000 |
4 | @@ -970,6 +970,18 @@ |
5 | <entry key="SerializationElementNs_2"> |
6 | <value>"$2": invalid namespace for the "serialization-parameters" element; must be "http://www.w3.org/2010/xslt-xquery-serialization"</value> |
7 | </entry> |
8 | + |
9 | + <entry key="InvalidValue"> |
10 | + <value>"$2": invalid value for type${: 3}${: 4}</value> |
11 | + </entry> |
12 | + |
13 | + <entry key="PrefixNotBound"> |
14 | + <value>"$2": prefix not bound</value> |
15 | + </entry> |
16 | + |
17 | + <entry key="NoTypeInCtx_2"> |
18 | + <value>"$2": type no defined in current context</value> |
19 | + </entry> |
20 | </diagnostic> |
21 | |
22 | <diagnostic code="XQDY0041"> |
23 | |
24 | === modified file 'src/diagnostics/pregenerated/dict_en.cpp' |
25 | --- src/diagnostics/pregenerated/dict_en.cpp 2013-05-15 17:14:35 +0000 |
26 | +++ src/diagnostics/pregenerated/dict_en.cpp 2013-05-16 19:29:27 +0000 |
27 | @@ -977,6 +977,9 @@ |
28 | { "~XPTY0004_NoTypePromote_23", "$2 can not be promoted to type $3" }, |
29 | { "~XPTY0117_NodeCast", "Cannot cast node to xs:QName" }, |
30 | { "~XPTY0117_NotationParam_23", "$2 can not be promoted to parameter type xs:NOTATION of function $3()" }, |
31 | + { "~XQDY0027_InvalidValue", "\"$2\": invalid value for type${: 3}${: 4}" }, |
32 | + { "~XQDY0027_NoTypeInCtx_2", "\"$2\": type no defined in current context" }, |
33 | + { "~XQDY0027_PrefixNotBound", "\"$2\": prefix not bound" }, |
34 | { "~XQDY0027_SerializationElementName_2", "\"$2\": invalid serialization parameters; element name must be \"serialization-parameters\"" }, |
35 | { "~XQDY0027_SerializationElementNs_2", "\"$2\": invalid namespace for the \"serialization-parameters\" element; must be \"http://www.w3.org/2010/xslt-xquery-serialization\"" }, |
36 | { "~XQDY0074_NameSapceConstructor", "$2: cannot cast prefix to xs:NCName" }, |
37 | |
38 | === modified file 'src/diagnostics/pregenerated/dict_zed_keys.h' |
39 | --- src/diagnostics/pregenerated/dict_zed_keys.h 2013-05-13 15:02:42 +0000 |
40 | +++ src/diagnostics/pregenerated/dict_zed_keys.h 2013-05-16 19:29:27 +0000 |
41 | @@ -64,6 +64,9 @@ |
42 | #define ZED_XPDY0002_ContextUndeclared_2 "~XPDY0002_ContextUndeclared_2" |
43 | #define ZED_XQDY0027_SerializationElementName_2 "~XQDY0027_SerializationElementName_2" |
44 | #define ZED_XQDY0027_SerializationElementNs_2 "~XQDY0027_SerializationElementNs_2" |
45 | +#define ZED_XQDY0027_InvalidValue "~XQDY0027_InvalidValue" |
46 | +#define ZED_XQDY0027_PrefixNotBound "~XQDY0027_PrefixNotBound" |
47 | +#define ZED_XQDY0027_NoTypeInCtx_2 "~XQDY0027_NoTypeInCtx_2" |
48 | #define ZED_XQDY0074_NotCastToQName "~XQDY0074_NotCastToQName" |
49 | #define ZED_XQDY0074_NoEmptyLocalname "~XQDY0074_NoEmptyLocalname" |
50 | #define ZED_XQDY0074_NameSapceConstructor "~XQDY0074_NameSapceConstructor" |
51 | |
52 | === modified file 'src/types/casting.cpp' |
53 | --- src/types/casting.cpp 2013-05-15 23:22:01 +0000 |
54 | +++ src/types/casting.cpp 2013-05-16 19:29:27 +0000 |
55 | @@ -2406,8 +2406,9 @@ |
56 | RAISE_ERROR(err::XPTY0004, loc, |
57 | ERROR_PARAMS(*sourceType, ZED(NoCastTo_34o), *targetType)); |
58 | } |
59 | - // to do: must validate before returning |
60 | - return schema->parseUserListTypes(textValue, targetType, resultList, loc); |
61 | + |
62 | + return schema->parseUserListTypes(textValue, targetType, resultList, loc, |
63 | + true); |
64 | } |
65 | else |
66 | { |
67 | @@ -2482,7 +2483,8 @@ |
68 | targetType, |
69 | baseItem, |
70 | nsCtx, |
71 | - loc); |
72 | + loc, |
73 | + true); |
74 | if (success) |
75 | { |
76 | const UserDefinedXQType* udt = static_cast<const UserDefinedXQType*>(targetType); |
77 | @@ -2588,7 +2590,7 @@ |
78 | store::Item_t baseItem; |
79 | |
80 | bool valid = |
81 | - schema->parseUserAtomicTypes(stringValue, targetType, baseItem, nsCtx, loc); |
82 | + schema->parseUserAtomicTypes(stringValue, targetType, baseItem, nsCtx, loc, true); |
83 | |
84 | if (valid) |
85 | { |
86 | |
87 | === modified file 'src/types/schema/EventSchemaValidator.cpp' |
88 | --- src/types/schema/EventSchemaValidator.cpp 2013-02-26 04:12:43 +0000 |
89 | +++ src/types/schema/EventSchemaValidator.cpp 2013-05-16 19:29:27 +0000 |
90 | @@ -150,7 +150,7 @@ |
91 | |
92 | void EventSchemaValidator::ns(const zstring& prefix, const zstring& uri) |
93 | { |
94 | - //cout << " Ns : " << prefix << " = '" << uri << "'\n"; |
95 | + //cout << " Ns : '" << prefix << "'' = '" << uri << "'\n"; |
96 | |
97 | XMLChArray prefixVal(prefix.c_str()); |
98 | XMLChArray uriVal(uri.c_str()); |
99 | |
100 | === modified file 'src/types/schema/SchemaValidatorFilter.cpp' |
101 | --- src/types/schema/SchemaValidatorFilter.cpp 2013-04-04 21:40:06 +0000 |
102 | +++ src/types/schema/SchemaValidatorFilter.cpp 2013-05-16 19:29:27 +0000 |
103 | @@ -758,19 +758,26 @@ |
104 | } |
105 | } |
106 | |
107 | + int res; |
108 | + if ( theProcessorStipulatedTypeName ) |
109 | + { |
110 | + res = -1; |
111 | + } |
112 | + else |
113 | + { |
114 | #if _XERCES_VERSION >= 30000 |
115 | - XMLSize_t failingChildNo; |
116 | - bool boolRes = fValidator->checkContent(topElem->fThisElement, |
117 | - topElem->fChildren, |
118 | - topElem->fChildCount, |
119 | - &failingChildNo); |
120 | - int res = boolRes ? -1 /* means success */ : 0 /* means failure */; |
121 | - |
122 | + XMLSize_t failingChildNo; |
123 | + bool boolRes = fValidator->checkContent(topElem->fThisElement, |
124 | + topElem->fChildren, |
125 | + topElem->fChildCount, |
126 | + &failingChildNo); |
127 | + res = boolRes ? -1 /* means success */ : 0 /* means failure */; |
128 | #else |
129 | - int res = fValidator->checkContent(topElem->fThisElement, |
130 | - topElem->fChildren, |
131 | - topElem->fChildCount); |
132 | + res = fValidator->checkContent(topElem->fThisElement, |
133 | + topElem->fChildren, |
134 | + topElem->fChildCount); |
135 | #endif // _XERCES_VERSION >= 30000 |
136 | + } |
137 | |
138 | if(res >= 0) |
139 | { |
140 | |
141 | === modified file 'src/types/schema/XercSchemaValidator.cpp' |
142 | --- src/types/schema/XercSchemaValidator.cpp 2013-02-26 04:12:43 +0000 |
143 | +++ src/types/schema/XercSchemaValidator.cpp 2013-05-16 19:29:27 +0000 |
144 | @@ -56,7 +56,7 @@ |
145 | #include "StrX.h" |
146 | #include "XercSchemaValidator.h" |
147 | |
148 | -using namespace XERCES_CPP_NAMESPACE; |
149 | +//using namespace XERCES_CPP_NAMESPACE; |
150 | |
151 | //XERCES_CPP_NAMESPACE_BEGIN |
152 | //XERCES_CPP_NAMESPACE_END |
153 | |
154 | === modified file 'src/types/schema/revalidateUtils.cpp' |
155 | --- src/types/schema/revalidateUtils.cpp 2013-02-07 17:24:36 +0000 |
156 | +++ src/types/schema/revalidateUtils.cpp 2013-05-16 19:29:27 +0000 |
157 | @@ -515,7 +515,8 @@ |
158 | |
159 | if ( udXQType.isList() || udXQType.isUnion() ) |
160 | { |
161 | - typeManager->getSchema()->parseUserSimpleTypes(textValue, type, resultList, loc); |
162 | + typeManager->getSchema()->parseUserSimpleTypes(textValue, type, |
163 | + resultList, loc, false); |
164 | return; |
165 | } |
166 | else if ( udXQType.isComplex() ) |
167 | @@ -528,7 +529,7 @@ |
168 | typeManager->getSchema()->parseUserSimpleTypes(textValue, |
169 | type, |
170 | resultList, |
171 | - loc); |
172 | + loc, false); |
173 | return; |
174 | } |
175 | else |
176 | @@ -656,8 +657,11 @@ |
177 | Schema* schema = typeManager->getSchema(); |
178 | ZORBA_ASSERT( schema ); |
179 | |
180 | - const xqtref_t& targetType = schema->createXQTypeFromTypeName(typeManager, typeQName); |
181 | - schema->parseUserSimpleTypes(newValue, targetType, resultList, QueryLoc::null); |
182 | + const xqtref_t& targetType = |
183 | + schema->createXQTypeFromTypeName(typeManager, typeQName); |
184 | + |
185 | + schema->parseUserSimpleTypes(newValue, targetType, resultList, QueryLoc::null, |
186 | + false); |
187 | } |
188 | |
189 | #endif //ZORBA_NO_XMLSCHEMA |
190 | |
191 | === modified file 'src/types/schema/schema.cpp' |
192 | --- src/types/schema/schema.cpp 2013-05-08 01:05:04 +0000 |
193 | +++ src/types/schema/schema.cpp 2013-05-16 19:29:27 +0000 |
194 | @@ -584,9 +584,8 @@ |
195 | XSTypeDefinition* typeDef = decl->getTypeDefinition(); |
196 | |
197 | xqtref_t res = createXQTypeFromTypeDefinition(typeManager, typeDef); |
198 | - |
199 | - TRACE("res:" << res->get_qname()->getLocalName() << " @ " << |
200 | - res->get_qname()->getNamespace()); |
201 | + TRACE("res:" << res->getQName()->getLocalName() << " @ " << |
202 | + res->getQName()->getNamespace()); |
203 | |
204 | return res; |
205 | } |
206 | @@ -1598,7 +1597,8 @@ |
207 | zstring& textValue, |
208 | const xqtref_t& aTargetType, |
209 | std::vector<store::Item_t>& resultList, |
210 | - const QueryLoc& loc) |
211 | + const QueryLoc& loc, |
212 | + bool isCasting) |
213 | { |
214 | if (aTargetType->type_kind() != XQType::USER_DEFINED_KIND) |
215 | { |
216 | @@ -1638,7 +1638,8 @@ |
217 | case XQType::ATOMIC_UDT: |
218 | { |
219 | store::Item_t atomicResult; |
220 | - hasResult = parseUserAtomicTypes(textValue, aTargetType, atomicResult, NULL, loc); |
221 | + hasResult = parseUserAtomicTypes(textValue, aTargetType, atomicResult, NULL, |
222 | + loc, isCasting); |
223 | |
224 | if ( !hasResult ) |
225 | return false; |
226 | @@ -1654,11 +1655,11 @@ |
227 | break; |
228 | |
229 | case XQType::LIST_UDT: |
230 | - return parseUserListTypes(textValue, aTargetType, resultList, loc); |
231 | + return parseUserListTypes(textValue, aTargetType, resultList, loc, isCasting); |
232 | break; |
233 | |
234 | case XQType::UNION_UDT: |
235 | - return parseUserUnionTypes(textValue, aTargetType, resultList, loc); |
236 | + return parseUserUnionTypes(textValue, aTargetType, resultList, loc, isCasting); |
237 | break; |
238 | |
239 | case XQType::COMPLEX_UDT: |
240 | @@ -1680,7 +1681,8 @@ |
241 | const xqtref_t& targetType, |
242 | store::Item_t& result, |
243 | const namespace_context* nsCtx, |
244 | - const QueryLoc& loc) |
245 | + const QueryLoc& loc, |
246 | + bool isCasting) |
247 | { |
248 | TRACE("parsing '" << textValue << "' to " << targetType->toString()); |
249 | |
250 | @@ -1741,8 +1743,12 @@ |
251 | |
252 | if (!xsiTypeDV) |
253 | { |
254 | - RAISE_ERROR(err::FORG0001, loc, |
255 | - ERROR_PARAMS(ZED(FORG0001_NoTypeInCtx_2), targetType->toSchemaString())); |
256 | + if ( isCasting ) |
257 | + RAISE_ERROR(err::FORG0001, loc, |
258 | + ERROR_PARAMS(ZED(FORG0001_NoTypeInCtx_2), targetType->toSchemaString())); |
259 | + else |
260 | + RAISE_ERROR(err::XQDY0027, loc, |
261 | + ERROR_PARAMS(ZED(XQDY0027_NoTypeInCtx_2), targetType->toSchemaString())); |
262 | } |
263 | |
264 | // workaround for validating xs:NOTATION with Xerces |
265 | @@ -1751,19 +1757,24 @@ |
266 | { |
267 | // textValue must be in the form of URI:LOCAL |
268 | size_t colonIndex = textValue.find_first_of(":"); |
269 | - zstring prefix = textValue.substr(0, colonIndex).str(); |
270 | + zstring prefix = (colonIndex == (size_t)-1 ? zstring("") : textValue.substr(0, colonIndex).str()); |
271 | zstring local = textValue.substr(colonIndex+1, textValue.size()).str(); |
272 | zstring uri; |
273 | |
274 | if (nsCtx != NULL && nsCtx->findBinding(prefix, uri)) |
275 | { |
276 | - XMLChArray xchTextValue(uri.append(":").append(local).str()); |
277 | + //std::cout << "parseUAT: uri:'" << uri << "' local:'" << local << "'\n"; std::cout.flush(); |
278 | + XMLChArray xchTextValue(uri.append(":").append(local).str()); |
279 | xsiTypeDV->validate(xchTextValue.get()); |
280 | } |
281 | else |
282 | { |
283 | - RAISE_ERROR(err::FORG0001, loc, |
284 | - ERROR_PARAMS(ZED(FORG0001_PrefixNotBound_2), prefix)); |
285 | + if (isCasting ) |
286 | + RAISE_ERROR(err::FORG0001, loc, |
287 | + ERROR_PARAMS(ZED(FORG0001_PrefixNotBound_2), prefix)); |
288 | + else |
289 | + RAISE_ERROR(err::XQDY0027, loc, |
290 | + ERROR_PARAMS(ZED(XQDY0027_PrefixNotBound), prefix)); |
291 | } |
292 | } |
293 | else |
294 | @@ -1774,8 +1785,12 @@ |
295 | } |
296 | else |
297 | { |
298 | - RAISE_ERROR(err::FORG0001, loc, |
299 | - ERROR_PARAMS(ZED(FORG0001_NoTypeInCtx_2), targetType->toSchemaString())); |
300 | + if ( isCasting ) |
301 | + RAISE_ERROR(err::FORG0001, loc, |
302 | + ERROR_PARAMS(ZED(FORG0001_NoTypeInCtx_2), targetType->toSchemaString())); |
303 | + else |
304 | + RAISE_ERROR(err::XQDY0027, loc, |
305 | + ERROR_PARAMS(ZED(XQDY0027_NoTypeInCtx_2), targetType->toSchemaString())); |
306 | } |
307 | } |
308 | catch (XMLException& idve) |
309 | @@ -1783,11 +1798,14 @@ |
310 | zstring msg; |
311 | transcode(idve.getMessage(), msg); |
312 | |
313 | - RAISE_ERROR(err::FORG0001, loc, |
314 | - ERROR_PARAMS(ZED(FORG0001_NoCastTo_234o), |
315 | - textValue, |
316 | - targetType->toSchemaString(), |
317 | - msg)); |
318 | + if ( isCasting ) |
319 | + RAISE_ERROR(err::FORG0001, loc, |
320 | + ERROR_PARAMS(ZED(FORG0001_NoCastTo_234o), textValue, |
321 | + targetType->toSchemaString(), msg)); |
322 | + else |
323 | + RAISE_ERROR(err::XQDY0027, loc, |
324 | + ERROR_PARAMS(ZED(XQDY0027_InvalidValue), textValue, |
325 | + targetType->toSchemaString(), msg)); |
326 | } |
327 | catch(const OutOfMemoryException&) |
328 | { |
329 | @@ -1818,8 +1836,8 @@ |
330 | { |
331 | store::Item_t tTypeQName = udXQType->getQName(); |
332 | |
333 | - //TRACE("factory '" << baseItem->getStringValue() << "' type " |
334 | - // << tTypeQName->getStringValue() << " base:" << baseType->toString()); |
335 | + TRACE("factory '" << baseItem->getStringValue() << "' type " |
336 | + << tTypeQName->getStringValue() << " base:" << baseType->toString()); |
337 | |
338 | return GENV_ITEMFACTORY-> |
339 | createUserTypedAtomicItem(result, baseItem, tTypeQName); |
340 | @@ -1866,7 +1884,8 @@ |
341 | const zstring& textValue, |
342 | const xqtref_t& targetType, |
343 | std::vector<store::Item_t>& resultList, |
344 | - const QueryLoc& loc) |
345 | + const QueryLoc& loc, |
346 | + bool isCasting) |
347 | { |
348 | assert(targetType->type_kind() == XQType::USER_DEFINED_KIND); |
349 | |
350 | @@ -1883,8 +1902,12 @@ |
351 | |
352 | if (atomicTextValues.empty()) |
353 | { |
354 | - RAISE_ERROR(err::FORG0001, loc, |
355 | - ERROR_PARAMS(ZED(FORG0001_NoCastTo_234o), textValue, udt->toSchemaString())); |
356 | + if ( isCasting ) |
357 | + RAISE_ERROR(err::FORG0001, loc, |
358 | + ERROR_PARAMS(ZED(FORG0001_NoCastTo_234o), textValue, udt->toSchemaString())); |
359 | + else |
360 | + RAISE_ERROR(err::XQDY0027, loc, |
361 | + ERROR_PARAMS(ZED(XQDY0027_InvalidValue), textValue, udt->toSchemaString())); |
362 | } |
363 | |
364 | for (csize i = 0; i < atomicTextValues.size() ; ++i) |
365 | @@ -1894,7 +1917,8 @@ |
366 | bool res = parseUserSimpleTypes(atomicTextValues[i], |
367 | listItemType, |
368 | resultList, |
369 | - loc); |
370 | + loc, |
371 | + isCasting); |
372 | hasResult = hasResult && res; |
373 | } |
374 | |
375 | @@ -1909,7 +1933,8 @@ |
376 | zstring& textValue, |
377 | const xqtref_t& targetType, |
378 | std::vector<store::Item_t>& resultList, |
379 | - const QueryLoc& loc) |
380 | + const QueryLoc& loc, |
381 | + bool isCasting) |
382 | { |
383 | assert(targetType->type_kind() == XQType::USER_DEFINED_KIND); |
384 | |
385 | @@ -1925,7 +1950,8 @@ |
386 | { |
387 | if (isCastableUserSimpleTypes(textValue, unionItemTypes[i])) |
388 | { |
389 | - return parseUserSimpleTypes(textValue, unionItemTypes[i], resultList, loc); |
390 | + return parseUserSimpleTypes(textValue, unionItemTypes[i], resultList, |
391 | + loc, isCasting); |
392 | } |
393 | } |
394 | catch(ZorbaException const&) |
395 | @@ -1933,8 +1959,13 @@ |
396 | } |
397 | } |
398 | |
399 | - RAISE_ERROR(err::FORG0001, loc, |
400 | - ERROR_PARAMS(ZED(FORG0001_NoCastTo_234o), textValue, udt->toSchemaString())); |
401 | + if ( isCasting ) |
402 | + RAISE_ERROR(err::FORG0001, loc, |
403 | + ERROR_PARAMS(ZED(FORG0001_NoCastTo_234o), textValue, udt->toSchemaString())); |
404 | + else |
405 | + RAISE_ERROR(err::XQDY0027, loc, |
406 | + ERROR_PARAMS(ZED(XQDY0027_InvalidValue), textValue, udt->toSchemaString())); |
407 | + |
408 | } |
409 | |
410 | |
411 | |
412 | === modified file 'src/types/schema/schema.h' |
413 | --- src/types/schema/schema.h 2013-04-23 20:38:23 +0000 |
414 | +++ src/types/schema/schema.h 2013-05-16 19:29:27 +0000 |
415 | @@ -150,7 +150,8 @@ |
416 | zstring& textValue, |
417 | const xqtref_t& aTargetType, |
418 | std::vector<store::Item_t>& resultList, |
419 | - const QueryLoc& loc); |
420 | + const QueryLoc& loc, |
421 | + bool isCasting); |
422 | |
423 | // user defined atomic types |
424 | bool parseUserAtomicTypes( |
425 | @@ -158,21 +159,24 @@ |
426 | const xqtref_t& aTargetType, |
427 | store::Item_t& result, |
428 | const namespace_context* aNCtx, // the namespace context is needed for parsing the xs:NOTATION items |
429 | - const QueryLoc& loc); |
430 | + const QueryLoc& loc, |
431 | + bool isCasting); |
432 | |
433 | // user defined list types |
434 | bool parseUserListTypes( |
435 | const zstring& textValue, |
436 | const xqtref_t& aTargetType, |
437 | std::vector<store::Item_t>& resultList, |
438 | - const QueryLoc& loc); |
439 | + const QueryLoc& loc, |
440 | + bool isCasting); |
441 | |
442 | // user defined union types |
443 | bool parseUserUnionTypes( |
444 | zstring& textValue, |
445 | const xqtref_t& aTargetType, |
446 | std::vector<store::Item_t>& resultList, |
447 | - const QueryLoc& loc); |
448 | + const QueryLoc& loc, |
449 | + bool isCasting); |
450 | |
451 | // user defined simple types, i.e. Atomic, List or Union Types |
452 | bool isCastableUserSimpleTypes( |
453 | |
454 | === modified file 'src/types/schema/validate.cpp' |
455 | --- src/types/schema/validate.cpp 2013-05-08 01:05:04 +0000 |
456 | +++ src/types/schema/validate.cpp 2013-05-16 19:29:27 +0000 |
457 | @@ -806,12 +806,14 @@ |
458 | |
459 | if ( udt.isList() || udt.isUnion() ) |
460 | { |
461 | - typeManager->getSchema()->parseUserSimpleTypes(textValue, type, resultList, loc); |
462 | + typeManager->getSchema()->parseUserSimpleTypes(textValue, type, |
463 | + resultList, loc, false); |
464 | } |
465 | else if (udt.isAtomicAny()) |
466 | { |
467 | bool res = typeManager->getSchema()-> |
468 | - parseUserAtomicTypes(textValue, type.getp(), result, &nsCtx, loc); |
469 | + parseUserAtomicTypes(textValue, type.getp(), result, &nsCtx, loc, |
470 | + false); |
471 | |
472 | ZORBA_ASSERT(res); |
473 | resultList.push_back(result); |
474 | @@ -835,7 +837,7 @@ |
475 | } |
476 | |
477 | bool res = typeManager->getSchema()-> |
478 | - parseUserSimpleTypes(textValue, baseType, resultList, loc); |
479 | + parseUserSimpleTypes(textValue, baseType, resultList, loc, false); |
480 | |
481 | // if this assert fails it means the validator and zorba casting code |
482 | // don't follow the same rules |
483 | |
484 | === modified file 'test/fots/CMakeLists.txt' |
485 | --- test/fots/CMakeLists.txt 2013-05-14 18:42:26 +0000 |
486 | +++ test/fots/CMakeLists.txt 2013-05-16 19:29:27 +0000 |
487 | @@ -156,7 +156,6 @@ |
488 | EXPECTED_FOTS_FAILURE (app-CatalogCheck Catalog011 1172273) |
489 | EXPECTED_FOTS_FAILURE (fn-available-environment-variables fn-available-environment-variables-011 0) |
490 | EXPECTED_FOTS_FAILURE (fn-deep-equal K2-SeqDeepEqualFunc-36 0) |
491 | -EXPECTED_FOTS_FAILURE (fn-deep-equal K2-SeqDeepEqualFunc-37 0) |
492 | EXPECTED_FOTS_FAILURE (fn-environment-variable environment-variable-005 0) |
493 | EXPECTED_FOTS_FAILURE (fn-environment-variable environment-variable-006 0) |
494 | EXPECTED_FOTS_FAILURE (fn-environment-variable environment-variable-007 0) |
495 | @@ -249,7 +248,6 @@ |
496 | EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-23 0) |
497 | EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-24 0) |
498 | EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-32 0) |
499 | -EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-33 0) |
500 | EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-35 0) |
501 | EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-ListType-3 0) |
502 | EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-ListType-23 0) |
503 | @@ -266,8 +264,6 @@ |
504 | EXPECTED_FOTS_FAILURE (prod-EQName eqname-010 0) |
505 | EXPECTED_FOTS_FAILURE (prod-EQName eqname-011 0) |
506 | EXPECTED_FOTS_FAILURE (prod-EQName eqname-017 0) |
507 | -EXPECTED_FOTS_FAILURE (prod-FunctionCall FunctionCall-003 0) |
508 | -EXPECTED_FOTS_FAILURE (prod-FunctionCall FunctionCall-005 0) |
509 | EXPECTED_FOTS_FAILURE (prod-FunctionCall FunctionCall-007 0) |
510 | EXPECTED_FOTS_FAILURE (prod-FunctionCall FunctionCall-008 0) |
511 | EXPECTED_FOTS_FAILURE (prod-FunctionCall FunctionCall-031 0) |
512 | @@ -331,13 +327,7 @@ |
513 | EXPECTED_FOTS_FAILURE (prod-SchemaImport cbcl-validated-schema-element-3 0) |
514 | EXPECTED_FOTS_FAILURE (prod-SchemaImport cbcl-validated-schema-element-4 0) |
515 | EXPECTED_FOTS_FAILURE (prod-TypeswitchExpr typeswitch-113 0) |
516 | -EXPECTED_FOTS_FAILURE (prod-ValidateExpr validateexpr-38 0) |
517 | EXPECTED_FOTS_FAILURE (prod-ValidateExpr validateexpr-41 0) |
518 | -EXPECTED_FOTS_FAILURE (prod-ValidateExpr validate-as-101 0) |
519 | -EXPECTED_FOTS_FAILURE (prod-ValidateExpr validate-as-102 0) |
520 | -EXPECTED_FOTS_FAILURE (prod-ValidateExpr validate-as-104 0) |
521 | -EXPECTED_FOTS_FAILURE (prod-ValidateExpr validate-as-105 0) |
522 | -EXPECTED_FOTS_FAILURE (prod-ValidateExpr validate-as-106 0) |
523 | EXPECTED_FOTS_FAILURE (prod-VersionDecl VersionDecl-v1-processor-and-v3-query 0) |
524 | EXPECTED_FOTS_FAILURE (prod-VersionDecl version_declaration-023-v3 0) |
525 | EXPECTED_FOTS_FAILURE (xs-anyURI cbcl-anyURI-002 0) |
526 | |
527 | === modified file 'test/rbkt/Queries/w3c_known_failures.txt' |
528 | --- test/rbkt/Queries/w3c_known_failures.txt 2013-05-08 08:01:05 +0000 |
529 | +++ test/rbkt/Queries/w3c_known_failures.txt 2013-05-16 19:29:27 +0000 |
530 | @@ -32,6 +32,7 @@ |
531 | test/rbkt/w3c_testsuite/XQuery/exprSeqTypes/PrologExpr/VariableProlog/ExternalVariablesWith/K2-ExternalVariablesWith-22 |
532 | test/rbkt/w3c_testsuite/XQuery/exprSeqTypes/SeqExprCast/K2-SeqExprCast-231 |
533 | test/rbkt/w3c_testsuite/XQuery/exprSeqTypes/SeqExprCast/K2-SeqExprCast-232 |
534 | +test/rbkt/w3c_testsuite/XQuery/SchemaImport/UserDefinedSI/user-defined-2 |
535 | test/rbkt/w3c_testsuite/XQuery/StaticTyping/STFLWORExpr/ST-PITest-02 |
536 | test/rbkt/w3c_testsuite/XQuery/StaticTyping/STFLWORExpr/ST-WhereExpr001 |
537 | test/rbkt/w3c_testsuite/XQuery/StaticTyping/STFLWORExpr/ST-PITest-01 |
538 | |
539 | === modified file 'test/rbkt/Queries/w3c_known_failures_XQueryX.txt' |
540 | --- test/rbkt/Queries/w3c_known_failures_XQueryX.txt 2013-03-27 15:40:45 +0000 |
541 | +++ test/rbkt/Queries/w3c_known_failures_XQueryX.txt 2013-05-16 19:29:27 +0000 |
542 | @@ -12,30 +12,14 @@ |
543 | test/rbkt/w3c_testsuite/XQueryX/Expressions/Construct/DirectConElem/DirectConElemContent/Constr-cont-nsmode-8 |
544 | test/rbkt/w3c_testsuite/XQueryX/Expressions/Construct/DirectConElem/DirectConElemContent/Constr-cont-nsmode-10 |
545 | test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-044 |
546 | -test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-009 |
547 | -test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-008 |
548 | -test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-021 |
549 | test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-046 |
550 | test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-039 |
551 | test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-037 |
552 | -test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-007 |
553 | -test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-913 |
554 | -test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-015 |
555 | test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-904 |
556 | -test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-024 |
557 | -test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-017 |
558 | -test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-914 |
559 | test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-915 |
560 | test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-916 |
561 | test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-049 |
562 | -test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-018 |
563 | test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-047 |
564 | -test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-028 |
565 | -test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-036 |
566 | -test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-038 |
567 | -test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-029 |
568 | -test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-031 |
569 | -test/rbkt/w3c_testsuite/XQueryX/Expressions/HigherOrder/hof-030 |
570 | test/rbkt/w3c_testsuite/XQueryX/exprSeqTypes/PrologExpr/VariableProlog/ExternalVariablesWith/K2-ExternalVariablesWith-22 |
571 | test/rbkt/w3c_testsuite/XQueryX/exprSeqTypes/SeqExprCast/K2-SeqExprCast-231 |
572 | test/rbkt/w3c_testsuite/XQueryX/exprSeqTypes/SeqExprCast/K2-SeqExprCast-232 |
573 | @@ -47,46 +31,13 @@ |
574 | test/rbkt/w3c_testsuite/XQueryX/Functions/AllStringFunc/MatchStringFunc/MatchesFunc/caselessmatch09 |
575 | test/rbkt/w3c_testsuite/XQueryX/Functions/AllStringFunc/MatchStringFunc/MatchesFunc/caselessmatch10 |
576 | test/rbkt/w3c_testsuite/XQueryX/Functions/AllStringFunc/MatchStringFunc/MatchesFunc/caselessmatch11 |
577 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/FoldLeft/fold-left-004 |
578 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/FoldLeft/fold-left-009 |
579 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/FoldLeft/fold-left-008 |
580 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/FoldLeft/fold-left-001 |
581 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/FoldLeft/fold-left-002 |
582 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/FoldLeft/fold-left-003 |
583 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/FoldLeft/fold-left-005 |
584 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/FoldRight/fold-right-004 |
585 | test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/FoldRight/fold-right-003 |
586 | test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/FoldRight/fold-right-002 |
587 | test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/FoldRight/fold-right-001 |
588 | test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/FoldRight/fold-right-005 |
589 | test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/FoldRight/fold-right-006 |
590 | test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/FoldRight/fold-right-007 |
591 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/MapPairs/map-pairs-008 |
592 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/MapPairs/map-pairs-006 |
593 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/MapPairs/map-pairs-001 |
594 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/MapPairs/map-pairs-003 |
595 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/MapPairs/map-pairs-901 |
596 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/MapPairs/map-pairs-002 |
597 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/MapPairs/map-pairs-007 |
598 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/MapPairs/map-pairs-902 |
599 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/MapPairs/map-pairs-005 |
600 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/Map/map-902 |
601 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/Map/map-001 |
602 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/Map/map-002 |
603 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/Map/map-003 |
604 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/Map/map-005 |
605 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/Map/map-006 |
606 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/Map/map-004 |
607 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/Map/map-007 |
608 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/Map/map-901 |
609 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/Map/map-903 |
610 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/Filter/filter-902 |
611 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/Filter/filter-003 |
612 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/Filter/filter-903 |
613 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/Filter/filter-004 |
614 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/Filter/filter-901 |
615 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/Filter/filter-002 |
616 | -test/rbkt/w3c_testsuite/XQueryX/Functions/HigherOrder/Filter/filter-005 |
617 | test/rbkt/w3c_testsuite/XQueryX/FunctX/functx-fn-tokenize/functx-fn-tokenize-7 |
618 | test/rbkt/w3c_testsuite/XQueryX/FunctX/functx-fn-tokenize/functx-fn-tokenize-all |
619 | test/rbkt/w3c_testsuite/XQueryX/Basics/EQNames/eqname-013 |
620 | +test/rbkt/w3c_testsuite/XQueryX/SchemaImport/UserDefinedSI/user-defined-2 |
621 | |
622 | === modified file 'test/rbkt/Queries/zorba/schemas/val-enum-err.spec' |
623 | --- test/rbkt/Queries/zorba/schemas/val-enum-err.spec 2013-02-07 17:24:36 +0000 |
624 | +++ test/rbkt/Queries/zorba/schemas/val-enum-err.spec 2013-05-16 19:29:27 +0000 |
625 | @@ -1,1 +1,1 @@ |
626 | -Error: http://www.w3.org/2005/xqt-errors:FORG0001 |
627 | +Error: http://www.w3.org/2005/xqt-errors:XQDY0027 |
628 | |
629 | === modified file 'test/rbkt/Queries/zorba/schemas/val-xsitype-err.spec' |
630 | --- test/rbkt/Queries/zorba/schemas/val-xsitype-err.spec 2013-02-07 17:24:36 +0000 |
631 | +++ test/rbkt/Queries/zorba/schemas/val-xsitype-err.spec 2013-05-16 19:29:27 +0000 |
632 | @@ -1,1 +1,1 @@ |
633 | -Error: http://www.w3.org/2005/xqt-errors:FORG0001 |
634 | +Error: http://www.w3.org/2005/xqt-errors:XQDY0027 |
Validation queue starting for merge proposal. zorbatest. lambda. nu:8080/ remotequeue/ bug1167400- valType- 2013-04- 25T19-27- 54.705Z/ log.html
Log at: http://