zorba-coders team mailing list archive
-
zorba-coders team
-
Mailing list archive
-
Message #23984
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
Markos Zaharioudakis has proposed merging lp:~zorba-coders/zorba/markos-scratch into lp:zorba.
Commit message:
API change - Fixed bug #938574 (changed the names and semantics of the NsScoping enum)
Requested reviews:
Markos Zaharioudakis (markos-za)
For more details, see:
https://code.launchpad.net/~zorba-coders/zorba/markos-scratch/+merge/172205
API change - Fixed bug #938574 (changed the names and semantics of the NsScoping enum)
--
https://code.launchpad.net/~zorba-coders/zorba/markos-scratch/+merge/172205
Your team Zorba Coders is subscribed to branch lp:zorba.
=== modified file 'ChangeLog'
--- ChangeLog 2013-06-28 03:52:18 +0000
+++ ChangeLog 2013-06-29 18:40:35 +0000
@@ -44,6 +44,7 @@
* Fixed bug #1188100 (regex issues with 'q' flag in fn:tokenize)
* Fixed invalid memory access error occuring during sequence type matching
for user-defined types.
+ * API change - Fixed bug #938574 (changed the names and semantics of the NsScoping enum)
* Fixed bug #1190710 (fn-format-date failures)
* Fixed bug #1190407 (wrong rewrite of if-then-else return clause in case
of general flwor)
=== modified file 'doc/cxx/examples/simple.cpp'
--- doc/cxx/examples/simple.cpp 2013-02-07 17:24:36 +0000
+++ doc/cxx/examples/simple.cpp 2013-06-29 18:40:35 +0000
@@ -274,7 +274,7 @@
NsBindings lBindings;
lChild.getNamespaceBindings(lBindings,
- store::StoreConsts::ONLY_LOCAL_NAMESPACES);
+ store::StoreConsts::ONLY_LOCAL_BINDINGS);
for (NsBindings::const_iterator ite = lBindings.begin();
ite != lBindings.end(); ++ite) {
std::cout << " namespace binding " << ite->first
=== modified file 'include/zorba/item.h'
--- include/zorba/item.h 2013-06-15 02:57:08 +0000
+++ include/zorba/item.h 2013-06-29 18:40:35 +0000
@@ -316,18 +316,21 @@
* The file \link simple.cpp \endlink contains some basic examples that demonstrate
* the use of this function.
*
- * @param aBindings An STL list to receive the namespace bindings of this node (each
- * represented as a std::pair<zorba::String,zorba::String> where the
- * first string is the namespace prefix and the second is the namespace URI).
- * @param aNsScoping An instance of NsScoping to declare which bindings to return:
- * those local to the element; those local to all parent elements; or all bindings
- * (the default).
+ * @param aBindings An std::vector to receive the namespace bindings of this
+ * node (each represented as a std::pair<zorba::String,zorba::String>
+ * where the first string is the namespace prefix and the second is the
+ * namespace URI).
+ * @param scope A value to specify which bindings to return: all bindings (the
+ * default); only those that are specified by the namespace declaration
+ * attributes of the node (if any); or those that are implied by the
+ * qnames of the node and its attributes plus those that are specified
+ * by the namespace declaration attributes of the node (if any)
* @throw ZorbaException if an error occured, e.g. the Item is not of type element.
*/
void
- getNamespaceBindings(NsBindings& aBindings,
- store::StoreConsts::NsScoping aNsScoping = store::StoreConsts::ALL_NAMESPACES)
- const;
+ getNamespaceBindings(
+ NsBindings& aBindings,
+ store::StoreConsts::NsScoping scope = store::StoreConsts::ALL_BINDINGS) const;
/** \brief Get parent of this (node) Item.
*
@@ -487,7 +490,7 @@
store::Item * m_item;
private:
//for plan serialization
- friend void zorba::serialization::operator&(zorba::serialization::Archiver &ar, Item &obj);
+ friend void zorba::serialization::operator&(zorba::serialization::Archiver& ar, Item& obj);
};
} // namespace zorba
=== modified file 'include/zorba/store_consts.h'
--- include/zorba/store_consts.h 2013-03-12 17:03:31 +0000
+++ include/zorba/store_consts.h 2013-06-29 18:40:35 +0000
@@ -98,11 +98,29 @@
{
public:
+ /**
+ * NsScoping defines the three values that can be given as arguments to
+ * the Item::getNamespaceBindings() method. The semantics of the three
+ * values are as follows:
+ *
+ * ALL_BINDINGS:
+ * All the namespace bindings of an element node, as defined by the W3C
+ * XQuery and XPath Data Model specification.
+ *
+ * ONLY_LOCAL_BINDINGS:
+ * The bindings that are implied by the qnames of an element node and its
+ * attributes, plus those that are specified by the namespace declaration
+ * attributes of the element node.
+ *
+ * ONLY_LOCALLY_DECLARED_BINDINGS:
+ * The bindings that are specified by the namespace declaration attributes
+ * of an element node.
+ */
enum NsScoping
{
- ALL_NAMESPACES,
- ONLY_LOCAL_NAMESPACES,
- ONLY_PARENT_NAMESPACES
+ ALL_BINDINGS,
+ ONLY_LOCAL_BINDINGS,
+ ONLY_LOCALLY_DECLARED_BINDINGS
};
enum NodeKind
=== modified file 'src/api/serialization/serializer.cpp'
--- src/api/serialization/serializer.cpp 2013-06-18 10:23:52 +0000
+++ src/api/serialization/serializer.cpp 2013-06-29 18:40:35 +0000
@@ -1872,7 +1872,7 @@
if (theSAX2ContentHandler)
{
item->getNamespaceBindings(local_nsBindings,
- store::StoreConsts::ONLY_LOCAL_NAMESPACES);
+ store::StoreConsts::ONLY_LOCAL_BINDINGS);
SAX2AttributesImpl attrs(const_cast<store::Item*>(item));
ns_size = local_nsBindings.size();
=== modified file 'src/store/api/item.h'
--- src/store/api/item.h 2013-06-11 23:38:49 +0000
+++ src/store/api/item.h 2013-06-29 18:40:35 +0000
@@ -668,7 +668,7 @@
virtual void
getNamespaceBindings(
NsBindings& bindings,
- StoreConsts::NsScoping ns_scoping = StoreConsts::ALL_NAMESPACES) const;
+ StoreConsts::NsScoping ns_scoping = StoreConsts::ALL_BINDINGS) const;
/** Accessor for element node
* @return boolean?
=== modified file 'src/store/naive/node_items.cpp'
--- src/store/naive/node_items.cpp 2013-06-22 10:59:44 +0000
+++ src/store/naive/node_items.cpp 2013-06-29 18:40:35 +0000
@@ -3129,49 +3129,53 @@
********************************************************************************/
void ElementNode::getNamespaceBindings(
store::NsBindings& bindings,
- store::StoreConsts::NsScoping ns_scoping) const
+ store::StoreConsts::NsScoping nsScoping) const
{
assert(bindings.empty());
assert(theNsContext != NULL);
- if (ns_scoping == store::StoreConsts::ONLY_LOCAL_NAMESPACES)
+ if (nsScoping == store::StoreConsts::ONLY_LOCAL_BINDINGS ||
+ nsScoping == store::StoreConsts::ONLY_LOCALLY_DECLARED_BINDINGS)
{
- const zstring& prefix = theName->getPrefix();
- zstring ns;
-
- bool found = getNsContext()->findBinding(prefix, ns);
-
- // binding may be absent only if the prefix was empty and there was no
- // default namespace declaration in scope.
- ZORBA_ASSERT(prefix.empty() || prefix == "xml" || found);
-
- if (found)
- bindings.push_back(std::pair<zstring, zstring>(prefix, ns));
-
- const_iterator ite = attrsBegin();
- const_iterator end = attrsEnd();
-
- for (; ite != end; ++ite)
+ if (nsScoping == store::StoreConsts::ONLY_LOCAL_BINDINGS)
{
- const zstring& prefix = (*ite)->getNodeName()->getPrefix();
+ const zstring& prefix = theName->getPrefix();
+ zstring ns;
bool found = getNsContext()->findBinding(prefix, ns);
+ // binding may be absent only if the prefix was empty and there was no
+ // default namespace declaration in scope.
ZORBA_ASSERT(prefix.empty() || prefix == "xml" || found);
if (found)
+ bindings.push_back(std::pair<zstring, zstring>(prefix, ns));
+
+ const_iterator ite = attrsBegin();
+ const_iterator end = attrsEnd();
+
+ for (; ite != end; ++ite)
{
- store::NsBindings::const_iterator ite2 = bindings.begin();
- store::NsBindings::const_iterator end2 = bindings.end();
-
- for (; ite2 != end2; ++ite2)
+ const zstring& prefix = (*ite)->getNodeName()->getPrefix();
+
+ bool found = getNsContext()->findBinding(prefix, ns);
+
+ ZORBA_ASSERT(prefix.empty() || prefix == "xml" || found);
+
+ if (found)
{
- if (ite2->second == ns && ite2->first == prefix)
- break;
+ store::NsBindings::const_iterator ite2 = bindings.begin();
+ store::NsBindings::const_iterator end2 = bindings.end();
+
+ for (; ite2 != end2; ++ite2)
+ {
+ if (ite2->second == ns && ite2->first == prefix)
+ break;
+ }
+
+ if (ite2 == end2)
+ bindings.push_back(std::pair<zstring, zstring>(prefix, ns));
}
-
- if (ite2 == end2)
- bindings.push_back(std::pair<zstring, zstring>(prefix, ns));
}
}
@@ -3202,10 +3206,7 @@
return;
}
- if (ns_scoping != store::StoreConsts::ONLY_PARENT_NAMESPACES)
- {
- bindings = theNsContext->getBindings();
- }
+ bindings = theNsContext->getBindings();
const NsBindingsContext* parentContext = theNsContext->getParent();
=== modified file 'src/store/naive/node_items.h'
--- src/store/naive/node_items.h 2013-06-11 23:38:49 +0000
+++ src/store/naive/node_items.h 2013-06-29 18:40:35 +0000
@@ -1079,8 +1079,8 @@
store::Iterator_t getChildren() const;
void getNamespaceBindings(
- store::NsBindings& bindings,
- store::StoreConsts::NsScoping scope = store::StoreConsts::ALL_NAMESPACES) const;
+ store::NsBindings& bindings,
+ store::StoreConsts::NsScoping scope = store::StoreConsts::ALL_BINDINGS) const;
bool isInSubstitutionGroup() const { return (theFlags & IsInSubstGroup) != 0; }
=== modified file 'src/types/schema/revalidateUtils.cpp'
--- src/types/schema/revalidateUtils.cpp 2013-05-21 21:44:25 +0000
+++ src/types/schema/revalidateUtils.cpp 2013-06-29 18:40:35 +0000
@@ -476,9 +476,9 @@
const store::Item *item)
{
store::NsBindings bindings;
- item->getNamespaceBindings(bindings, store::StoreConsts::ONLY_LOCAL_NAMESPACES);
+ item->getNamespaceBindings(bindings, store::StoreConsts::ONLY_LOCAL_BINDINGS);
- for (unsigned long i = 0; i < bindings.size(); i++)
+ for (csize i = 0; i < bindings.size(); i++)
{
schemaValidator.ns(bindings[i].first, bindings[i].second);
}
=== modified file 'src/types/schema/validate.cpp'
--- src/types/schema/validate.cpp 2013-05-21 21:44:25 +0000
+++ src/types/schema/validate.cpp 2013-06-29 18:40:35 +0000
@@ -766,7 +766,7 @@
{
store::NsBindings bindings;
item->getNamespaceBindings(bindings,
- store::StoreConsts::ONLY_LOCAL_NAMESPACES);
+ store::StoreConsts::ONLY_LOCAL_BINDINGS);
for (unsigned long i = 0; i < bindings.size(); i++)
{
=== modified file 'src/zorbaserialization/serialize_zorba_types.cpp'
--- src/zorbaserialization/serialize_zorba_types.cpp 2013-06-21 01:06:29 +0000
+++ src/zorbaserialization/serialize_zorba_types.cpp 2013-06-29 18:40:35 +0000
@@ -1213,7 +1213,8 @@
store::NsBindings ns_bindings;
if (ar.is_serializing_out())
- obj->getNamespaceBindings(ns_bindings, store::StoreConsts::ONLY_LOCAL_NAMESPACES);
+ obj->getNamespaceBindings(ns_bindings,
+ store::StoreConsts::ONLY_LOCALLY_DECLARED_BINDINGS);
ar & ns_bindings;
SERIALIZE_FIELD2(zstring, baseUri, getBaseURI);
Follow ups
-
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: noreply, 2013-07-01
-
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Zorba Build Bot, 2013-07-01
-
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Zorba Build Bot, 2013-07-01
-
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Markos Zaharioudakis, 2013-07-01
-
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Zorba Build Bot, 2013-07-01
-
Re: [Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Zorba Build Bot, 2013-07-01
-
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Markos Zaharioudakis, 2013-07-01
-
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Zorba Build Bot, 2013-07-01
-
Re: [Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Zorba Build Bot, 2013-07-01
-
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Zorba Build Bot, 2013-07-01
-
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Markos Zaharioudakis, 2013-07-01
-
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Zorba Build Bot, 2013-06-30
-
Re: [Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Zorba Build Bot, 2013-06-30
-
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Zorba Build Bot, 2013-06-30
-
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Markos Zaharioudakis, 2013-06-30
-
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Zorba Build Bot, 2013-06-30
-
Re: [Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Zorba Build Bot, 2013-06-30
-
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Zorba Build Bot, 2013-06-30
-
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Markos Zaharioudakis, 2013-06-30
-
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Zorba Build Bot, 2013-06-29
-
Re: [Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Zorba Build Bot, 2013-06-29
-
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Zorba Build Bot, 2013-06-29
-
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Markos Zaharioudakis, 2013-06-29
-
Re: [Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Markos Zaharioudakis, 2013-06-29
-
Re: [Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
From: Markos Zaharioudakis, 2013-06-29