[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdenonbeta/kdom
From: Frans Englich <frans.englich () telia ! com>
Date: 2005-05-12 18:30:10
Message-ID: 1115922610.512480.29387.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 412817 by englich:
Implement XPath specific tests in DOM 3 Core code.
M +3 -0 trunk/kdenonbeta/kdom/TODO
M +1 -1 trunk/kdenonbeta/kdom/impl/DOMImplementationImpl.cc
M +14 -4 trunk/kdenonbeta/kdom/impl/DocumentImpl.cc
M +1 -1 trunk/kdenonbeta/kdom/impl/Makefile.am
M +4 -0 trunk/kdenonbeta/kdom/impl/NamedNodeMapImpl.cc
M +4 -0 trunk/kdenonbeta/kdom/impl/NodeImpl.cc
--- trunk/kdenonbeta/kdom/TODO #412816:412817
@@ -86,6 +86,9 @@
is their own products, but for KDOM et al. should be created the product "kdom" with the
components "general", "xinclude", "catalog", and "kxmllint", possibly more.
+- What DOMImplementation::hasFeature() returns must be checked to only return what really is
+ standard comformant.
+
Portability
-----------
--- trunk/kdenonbeta/kdom/impl/DOMImplementationImpl.cc #412816:412817
@@ -81,7 +81,7 @@
upFeature == "MOUSEEVENTS" || upFeature == "MUTATIONEVENTS" ||
upFeature == "LS-ASYNC" || upFeature == "LS") &&
(version == "1.0" || version == "2.0" || version == "3.0" ||
- version.isEmpty()))
+ version.isEmpty()) || (feature == "XPATH" && version == "3.0"))
return true;
return false;
--- trunk/kdenonbeta/kdom/impl/DocumentImpl.cc #412816:412817
@@ -26,7 +26,7 @@
#include "Ecma.h"
#include "Attr.h"
-#include "kdom/Helper.h"
+#include "Helper.h"
#include "TextImpl.h"
#include "AttrImpl.h"
#include "Namespace.h"
@@ -39,13 +39,14 @@
#include "DocumentImpl.h"
#include "DOMStringImpl.h"
#include "XMLElementImpl.h"
+#include "XPathNamespace.h"
#include "StyleSheetImpl.h"
#include "TagNodeListImpl.h"
#include "KDOMCacheHelper.h"
#include "NamedNodeMapImpl.h"
#include "CDATASectionImpl.h"
#include "NodeIteratorImpl.h"
-#include "kdom/css/impl/CSSStyleSelector.h"
+#include "CSSStyleSelector.h"
#include "DOMConfiguration.h"
#include "DocumentTypeImpl.h"
#include "CSSStyleSheetImpl.h"
@@ -385,7 +386,7 @@
if(!importedNode)
throw new DOMExceptionImpl(NOT_FOUND_ERR);
- bool oldMode = implementation()->parsingMode();
+ const bool oldMode = implementation()->parsingMode();
implementation()->setParsingMode(true);
if(importedNode->nodeType() == ATTRIBUTE_NODE)
@@ -442,7 +443,10 @@
result = createCDATASection(importedCD->nodeValue());
deep = false;
}
- else
+ else
+ /* This includes XPathNamespace::XPATH_NAMESPACE_NODE, see:
+ * http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226/xpath.html#XPathNamespace
+ */
throw new DOMExceptionImpl(NOT_SUPPORTED_ERR);
if(deep)
@@ -717,6 +721,12 @@
if(nType == ENTITY_NODE || nType == NOTATION_NODE)
return 0;
+ /* According to DOM XPath 26 February 2004; see:
+ * http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226/xpath.html#XPathNamespace
+ */
+ if(nType == XPathNamespace::XPATH_NAMESPACE_NODE)
+ throw new DOMExceptionImpl(NOT_SUPPORTED_ERR);
+
if(source->parentNode())
source->parentNode()->removeChild(source);
else if(nType == ATTRIBUTE_NODE)
--- trunk/kdenonbeta/kdom/impl/Makefile.am #412816:412817
@@ -5,7 +5,7 @@
-I$(top_srcdir)/kdom/views -I$(top_srcdir)/kdom/ecma \
-I$(top_srcdir)/kdom/data -I$(top_srcdir)/kdom/css/impl \
-I$(top_srcdir)/kdom/ls -I$(top_srcdir)/kdom/ls/impl \
- -I$(top_srcdir)/kdom/traversal/impl \
+ -I$(top_srcdir)/kdom/traversal/impl -I$(top_srcdir)/kdom/xpath \
-I$(top_srcdir)/kdom/events/impl -I$(top_srcdir)/kdom/cache \
$(all_includes)
--- trunk/kdenonbeta/kdom/impl/NamedNodeMapImpl.cc #412816:412817
@@ -21,6 +21,7 @@
*/
#include "DocumentImpl.h"
+#include "XPathNamespace.h"
#include "NamedNodeMapImpl.h"
#include "DOMImplementationImpl.h"
@@ -106,6 +107,9 @@
if(!arg)
throw new DOMExceptionImpl(NOT_FOUND_ERR);
+ if(arg->nodeType() == XPathNamespace::XPATH_NAMESPACE_NODE)
+ throw new DOMExceptionImpl(HIERARCHY_REQUEST_ERR);
+
if(!isReadOnly())
{
addNode(arg);
--- trunk/kdenonbeta/kdom/impl/NodeImpl.cc #412816:412817
@@ -20,6 +20,7 @@
Boston, MA 02111-1307, USA.
*/
+#include "XPathNamespace.h"
#include "DOMExceptionImpl.h"
#include "DOMImplementationImpl.h"
#include "DocumentImpl.h"
@@ -683,6 +684,9 @@
if(!childAllowed(current, newChild))
throw new DOMExceptionImpl(HIERARCHY_REQUEST_ERR);
}
+
+ if(newChild->nodeType() == XPathNamespace::XPATH_NAMESPACE_NODE)
+ throw new DOMExceptionImpl(HIERARCHY_REQUEST_ERR);
}
void NodeBaseImpl::checkDocumentAddChild(NodeImpl *current, NodeImpl *newChild)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic