|
From: <pm_...@us...> - 2011-05-26 08:04:22
|
Revision: 4370
http://mxquery.svn.sourceforge.net/mxquery/?rev=4370&view=rev
Author: pm_fischer
Date: 2011-05-26 08:04:15 +0000 (Thu, 26 May 2011)
Log Message:
-----------
- fixes on detection of sequential annotation
- cleanup on namespace scope processing
Modified Paths:
--------------
trunk/MXQuery/src/ch/ethz/mxquery/datamodel/xdm/XDMScope.java
trunk/MXQuery/src/ch/ethz/mxquery/iterators/NSScopeChange.java
trunk/MXQuery/src/ch/ethz/mxquery/iterators/update/StripTypeIterator.java
trunk/MXQuery/src/ch/ethz/mxquery/query/parser/Parser.java
trunk/MXQuery_Testing/XQTests/Queries/try_zorba_3.xq
trunk/MXQuery_Testing/src/ch/ethz/mxquery/test/WebService/WSMXQImportTest.java
Modified: trunk/MXQuery/src/ch/ethz/mxquery/datamodel/xdm/XDMScope.java
===================================================================
--- trunk/MXQuery/src/ch/ethz/mxquery/datamodel/xdm/XDMScope.java 2011-05-25 18:40:36 UTC (rev 4369)
+++ trunk/MXQuery/src/ch/ethz/mxquery/datamodel/xdm/XDMScope.java 2011-05-26 08:04:15 UTC (rev 4370)
@@ -144,7 +144,7 @@
uri = (Namespace) c.prefixNamespaceMap.get(prefix);
else
uri = (Namespace) prefixNamespaceMap.get(prefix);
- if (uri!= null)
+ if (uri!= null && !"".equals(uri.getURI()))
return uri.getURI();
else return null;
}
@@ -226,7 +226,7 @@
}
}
// Undeclare default NS if construction around uses it, but inner content does not
- if ((ns.getNamespace("") == null || ns.getNamespace("").getURI() == null) && curScope.getNamespace("")!=null) {
+ if ((ns.getNamespace("") == null || ns.getNamespace("").getURI() == null) && requiredNS.contains(new Namespace("", ""))) {
nsNew.addNamespace("", "");
newNamespaces++;
}
Modified: trunk/MXQuery/src/ch/ethz/mxquery/iterators/NSScopeChange.java
===================================================================
--- trunk/MXQuery/src/ch/ethz/mxquery/iterators/NSScopeChange.java 2011-05-25 18:40:36 UTC (rev 4369)
+++ trunk/MXQuery/src/ch/ethz/mxquery/iterators/NSScopeChange.java 2011-05-26 08:04:15 UTC (rev 4370)
@@ -131,9 +131,10 @@
}
if (ev == Type.END_TAG) {
if (next instanceof NamedToken
- && !scopeDepth.empty() && depth == scopeDepth.peek()) {
+ && !scopeDepth.empty() && depth == scopeDepth.peek()-1) {
curNsScope = curNsScope.getParent();
scopeDepth.pop();
+ oldParentNs = null;
}
}
Modified: trunk/MXQuery/src/ch/ethz/mxquery/iterators/update/StripTypeIterator.java
===================================================================
--- trunk/MXQuery/src/ch/ethz/mxquery/iterators/update/StripTypeIterator.java 2011-05-25 18:40:36 UTC (rev 4369)
+++ trunk/MXQuery/src/ch/ethz/mxquery/iterators/update/StripTypeIterator.java 2011-05-26 08:04:15 UTC (rev 4370)
@@ -55,7 +55,7 @@
seenAttrPos++;
}
else
- cur = current.next();
+ cur = getNext();
if (Type.isAttribute(cur.getEventType())) {
NamedToken nm = ((NamedToken)cur).copyStrip();
nm.setIDREFS(null);
@@ -64,7 +64,7 @@
if (cur.getEventType() == Type.START_TAG) {
NamedToken nm = ((NamedToken)cur).copyStrip();
boolean hasNamedIDAttribute = false;
- TokenInterface nextTok = current.next();
+ TokenInterface nextTok = getNext();
if (collectedAttributes.size() > 0)
collectedAttributes = new Vector();
collectedAttributes.addElement(nextTok);
@@ -80,7 +80,7 @@
requiredNS.add(new Namespace(nm.getPrefix(), nm.getNS()));
}
// if attribute, check if id
- nextTok = current.next();
+ nextTok = getNext();
collectedAttributes.addElement(nextTok);
}
nm.setIDREFS(null);
Modified: trunk/MXQuery/src/ch/ethz/mxquery/query/parser/Parser.java
===================================================================
--- trunk/MXQuery/src/ch/ethz/mxquery/query/parser/Parser.java 2011-05-25 18:40:36 UTC (rev 4369)
+++ trunk/MXQuery/src/ch/ethz/mxquery/query/parser/Parser.java 2011-05-26 08:04:15 UTC (rev 4370)
@@ -635,7 +635,7 @@
throw new StaticException(
ErrorCodes.E0017_STATIC_DOESNT_MATCH_FUNCTION_SIGNATURE,
"Function named " + funcToCheck.funcName.toString()
- + " not available", getCurrentLoc());
+ + " with arity "+funcToCheck.arity+" not available", getCurrentLoc());
}
}
// Check if the expression type is consistent
@@ -1957,7 +1957,7 @@
paramAnnotations.put(VariableHolder.ASSIGNABLE_ANNOTATION, new XDMIterator[]{});
getCurrentContext().registerVariable(
(QName) paramNames.elementAt(i), false,
- seqTypeIt, annotations);
+ seqTypeIt, paramAnnotations);
}
Iterator body;
@@ -2040,9 +2040,10 @@
annotations.put(FunctionSignature.UPDATING_ANNOTATION, new XDMIterator[]{});
} else if (co.isScripting() && parseKeyword("sequential")) {
checkExprTypeAnnotation(annotations);
+ annotations.put(FunctionSignature.SEQUENTIAL_ANNOTATION, new XDMIterator[]{});
} else if (parseKeyword("simple")) {
checkExprTypeAnnotation(annotations);
- annotations.put(FunctionSignature.SEQUENTIAL_ANNOTATION, new XDMIterator[]{});
+ annotations.put(FunctionSignature.SIMPLE_ANNOTATION, new XDMIterator[]{});
} else if (co.isXquery11() && parseKeyword("private")) {
checkVisibilityAnnotation(annotations);
annotations.put(FunctionSignature.PRIVATE_ANNOTATION, new XDMIterator[]{});
Modified: trunk/MXQuery_Testing/XQTests/Queries/try_zorba_3.xq
===================================================================
--- trunk/MXQuery_Testing/XQTests/Queries/try_zorba_3.xq 2011-05-25 18:40:36 UTC (rev 4369)
+++ trunk/MXQuery_Testing/XQTests/Queries/try_zorba_3.xq 2011-05-26 08:04:15 UTC (rev 4370)
@@ -2,5 +2,5 @@
try {
2 + "3"
} catch * ($ecode, $desc) {
- string-join(($ecode, $desc), " ")
+ string-join((xs:string($ecode), $desc), " ")
}
Modified: trunk/MXQuery_Testing/src/ch/ethz/mxquery/test/WebService/WSMXQImportTest.java
===================================================================
--- trunk/MXQuery_Testing/src/ch/ethz/mxquery/test/WebService/WSMXQImportTest.java 2011-05-25 18:40:36 UTC (rev 4369)
+++ trunk/MXQuery_Testing/src/ch/ethz/mxquery/test/WebService/WSMXQImportTest.java 2011-05-26 08:04:15 UTC (rev 4370)
@@ -36,7 +36,7 @@
String query = UriToString(queries + "Q13_MXQuery_Node_Sequence_Result_Function.xq");
PreparedStatement expr = prepareQuery(query, false, true, false, false, false);
doQuery(expr);
- assertEquals(UriToString(expected_results+"Q13_MXQuery_Node_Sequence_Result_Function.xml"),resultBuffer.toString().trim());
+ assertXMLEqual(UriToString(expected_results+"Q13_MXQuery_Node_Sequence_Result_Function.xml"),resultBuffer.toString().trim());
}
public void test_14() throws Exception{
String query = UriToString(queries + "Q14_MXQuery_Atomic_Sequence_Result_Function.xq");
@@ -72,7 +72,7 @@
String query = UriToString(queries + "Q19_MXQuery_Element_Mapping_Function.xq");
PreparedStatement expr = prepareQuery(query, false, true, false, false, false);
doQuery(expr);
- assertEquals(UriToString(expected_results+"Q19_MXQuery_Element_Mapping_Function.xml"),resultBuffer.toString().trim());
+ assertXMLEqual(UriToString(expected_results+"Q19_MXQuery_Element_Mapping_Function.xml"),resultBuffer.toString().trim());
}
// public void test_multi() throws Exception {
// String query = UriToString(queries + "Q20_Import_Multiple_WSDL.xq");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|