-# test for xml.dom.minidom
+# test for xmlcore.dom.minidom
import os
import sys
from StringIO import StringIO
from test.test_support import verbose
-import xml.dom
-import xml.dom.minidom
-import xml.parsers.expat
+import xmlcore.dom
+import xmlcore.dom.minidom
+import xmlcore.parsers.expat
-from xml.dom.minidom import parse, Node, Document, parseString
-from xml.dom.minidom import getDOMImplementation
+from xmlcore.dom.minidom import parse, Node, Document, parseString
+from xmlcore.dom.minidom import getDOMImplementation
if __name__ == "__main__":
text = dom.createTextNode('text')
try: dom.appendChild(text)
- except xml.dom.HierarchyRequestErr: pass
+ except xmlcore.dom.HierarchyRequestErr: pass
else:
print "dom.appendChild didn't raise HierarchyRequestErr"
dom.appendChild(elem)
try: dom.insertBefore(text, elem)
- except xml.dom.HierarchyRequestErr: pass
+ except xmlcore.dom.HierarchyRequestErr: pass
else:
print "dom.appendChild didn't raise HierarchyRequestErr"
try: dom.replaceChild(text, elem)
- except xml.dom.HierarchyRequestErr: pass
+ except xmlcore.dom.HierarchyRequestErr: pass
else:
print "dom.appendChild didn't raise HierarchyRequestErr"
nodemap = elem.attributes
try: nodemap.setNamedItem(text)
- except xml.dom.HierarchyRequestErr: pass
+ except xmlcore.dom.HierarchyRequestErr: pass
else:
print "NamedNodeMap.setNamedItem didn't raise HierarchyRequestErr"
try: nodemap.setNamedItemNS(text)
- except xml.dom.HierarchyRequestErr: pass
+ except xmlcore.dom.HierarchyRequestErr: pass
else:
print "NamedNodeMap.setNamedItemNS didn't raise HierarchyRequestErr"
and pi.firstChild is None
and pi.lastChild is None
and pi.localName is None
- and pi.namespaceURI == xml.dom.EMPTY_NAMESPACE)
+ and pi.namespaceURI == xmlcore.dom.EMPTY_NAMESPACE)
def testProcessingInstructionRepr(): pass
elem = doc.createElement("extra")
try:
doc.appendChild(elem)
- except xml.dom.HierarchyRequestErr:
+ except xmlcore.dom.HierarchyRequestErr:
pass
else:
print "Failed to catch expected exception when" \
confirm(a1.isSameNode(a2))
try:
attrs.removeNamedItem("a")
- except xml.dom.NotFoundErr:
+ except xmlcore.dom.NotFoundErr:
pass
def testRemoveNamedItemNS():
confirm(a1.isSameNode(a2))
try:
attrs.removeNamedItemNS("http://xml.python.org/", "b")
- except xml.dom.NotFoundErr:
+ except xmlcore.dom.NotFoundErr:
pass
def testAttrListValues(): pass
doc2 = parseString("<doc/>")
try:
doc1.importNode(doc2, deep)
- except xml.dom.NotSupportedErr:
+ except xmlcore.dom.NotSupportedErr:
pass
else:
raise Exception(testName +
doctype = getDOMImplementation().createDocumentType("doc", None, None)
doctype.entities._seq = []
doctype.notations._seq = []
- notation = xml.dom.minidom.Notation("my-notation", None,
- "http://xml.python.org/notations/my")
+ notation = xmlcore.dom.minidom.Notation(
+ "my-notation", None,
+ "http://xml.python.org/notations/my")
doctype.notations._seq.append(notation)
- entity = xml.dom.minidom.Entity("my-entity", None,
- "http://xml.python.org/entities/my",
- "my-notation")
+ entity = xmlcore.dom.minidom.Entity(
+ "my-entity", None,
+ "http://xml.python.org/entities/my",
+ "my-notation")
entity.version = "1.0"
entity.encoding = "utf-8"
entity.actualEncoding = "us-ascii"
target = create_doc_without_doctype()
try:
imported = target.importNode(src.doctype, 0)
- except xml.dom.NotSupportedErr:
+ except xmlcore.dom.NotSupportedErr:
pass
else:
raise Exception(
target = create_doc_without_doctype()
try:
imported = target.importNode(src.doctype, 1)
- except xml.dom.NotSupportedErr:
+ except xmlcore.dom.NotSupportedErr:
pass
else:
raise Exception(
doc.unlink()
def testSAX2DOM():
- from xml.dom import pulldom
+ from xmlcore.dom import pulldom
sax2dom = pulldom.SAX2DOM()
sax2dom.startDocument()
attr = elem.attributes['a']
# Simple renaming
- attr = doc.renameNode(attr, xml.dom.EMPTY_NAMESPACE, "b")
+ attr = doc.renameNode(attr, xmlcore.dom.EMPTY_NAMESPACE, "b")
confirm(attr.name == "b"
and attr.nodeName == "b"
and attr.localName is None
- and attr.namespaceURI == xml.dom.EMPTY_NAMESPACE
+ and attr.namespaceURI == xmlcore.dom.EMPTY_NAMESPACE
and attr.prefix is None
and attr.value == "v"
and elem.getAttributeNode("a") is None
and attrmap[("http://xml.python.org/ns2", "d")].isSameNode(attr))
# Rename back to a simple non-NS node
- attr = doc.renameNode(attr, xml.dom.EMPTY_NAMESPACE, "e")
+ attr = doc.renameNode(attr, xmlcore.dom.EMPTY_NAMESPACE, "e")
confirm(attr.name == "e"
and attr.nodeName == "e"
and attr.localName is None
- and attr.namespaceURI == xml.dom.EMPTY_NAMESPACE
+ and attr.namespaceURI == xmlcore.dom.EMPTY_NAMESPACE
and attr.prefix is None
and attr.value == "v"
and elem.getAttributeNode("a") is None
try:
doc.renameNode(attr, "http://xml.python.org/ns", "xmlns")
- except xml.dom.NamespaceErr:
+ except xmlcore.dom.NamespaceErr:
pass
else:
print "expected NamespaceErr"
elem = doc.documentElement
# Simple renaming
- elem = doc.renameNode(elem, xml.dom.EMPTY_NAMESPACE, "a")
+ elem = doc.renameNode(elem, xmlcore.dom.EMPTY_NAMESPACE, "a")
confirm(elem.tagName == "a"
and elem.nodeName == "a"
and elem.localName is None
- and elem.namespaceURI == xml.dom.EMPTY_NAMESPACE
+ and elem.namespaceURI == xmlcore.dom.EMPTY_NAMESPACE
and elem.prefix is None
and elem.ownerDocument.isSameNode(doc))
and elem.ownerDocument.isSameNode(doc))
# Rename back to a simple non-NS node
- elem = doc.renameNode(elem, xml.dom.EMPTY_NAMESPACE, "d")
+ elem = doc.renameNode(elem, xmlcore.dom.EMPTY_NAMESPACE, "d")
confirm(elem.tagName == "d"
and elem.nodeName == "d"
and elem.localName is None
- and elem.namespaceURI == xml.dom.EMPTY_NAMESPACE
+ and elem.namespaceURI == xmlcore.dom.EMPTY_NAMESPACE
and elem.prefix is None
and elem.ownerDocument.isSameNode(doc))
# Make sure illegal NS usage is detected:
try:
doc.renameNode(node, "http://xml.python.org/ns", "xmlns:foo")
- except xml.dom.NamespaceErr:
+ except xmlcore.dom.NamespaceErr:
pass
else:
print "expected NamespaceErr"
doc2 = parseString("<doc/>")
try:
- doc2.renameNode(node, xml.dom.EMPTY_NAMESPACE, "foo")
- except xml.dom.WrongDocumentErr:
+ doc2.renameNode(node, xmlcore.dom.EMPTY_NAMESPACE, "foo")
+ except xmlcore.dom.WrongDocumentErr:
pass
else:
print "expected WrongDocumentErr"
def testRenameOther():
# We have to create a comment node explicitly since not all DOM
# builders used with minidom add comments to the DOM.
- doc = xml.dom.minidom.getDOMImplementation().createDocument(
- xml.dom.EMPTY_NAMESPACE, "e", None)
+ doc = xmlcore.dom.minidom.getDOMImplementation().createDocument(
+ xmlcore.dom.EMPTY_NAMESPACE, "e", None)
node = doc.createComment("comment")
try:
- doc.renameNode(node, xml.dom.EMPTY_NAMESPACE, "foo")
- except xml.dom.NotSupportedErr:
+ doc.renameNode(node, xmlcore.dom.EMPTY_NAMESPACE, "foo")
+ except xmlcore.dom.NotSupportedErr:
pass
else:
print "expected NotSupportedErr when renaming comment node"
# since each supports a different level of DTD information.
t = elem.schemaType
confirm(t.name is None
- and t.namespace == xml.dom.EMPTY_NAMESPACE)
+ and t.namespace == xmlcore.dom.EMPTY_NAMESPACE)
names = "id notid text enum ref refs ent ents nm nms".split()
for name in names:
a = elem.getAttributeNode(name)
t = a.schemaType
confirm(hasattr(t, "name")
- and t.namespace == xml.dom.EMPTY_NAMESPACE)
+ and t.namespace == xmlcore.dom.EMPTY_NAMESPACE)
def testSetIdAttribute():
doc = parseString("<doc a1='v' a2='w'/>")
and a2.isId
and not a3.isId)
# renaming an attribute should not affect its ID-ness:
- doc.renameNode(a2, xml.dom.EMPTY_NAMESPACE, "an")
+ doc.renameNode(a2, xmlcore.dom.EMPTY_NAMESPACE, "an")
confirm(e.isSameNode(doc.getElementById("w"))
and a2.isId)
confirm(not a3.isId)
confirm(doc.getElementById("v") is None)
# renaming an attribute should not affect its ID-ness:
- doc.renameNode(a2, xml.dom.EMPTY_NAMESPACE, "an")
+ doc.renameNode(a2, xmlcore.dom.EMPTY_NAMESPACE, "an")
confirm(e.isSameNode(doc.getElementById("w"))
and a2.isId)
confirm(not a3.isId)
confirm(doc.getElementById("v") is None)
# renaming an attribute should not affect its ID-ness:
- doc.renameNode(a2, xml.dom.EMPTY_NAMESPACE, "an")
+ doc.renameNode(a2, xmlcore.dom.EMPTY_NAMESPACE, "an")
confirm(e.isSameNode(doc.getElementById("w"))
and a2.isId)
# regression test for SAX 2.0 -*- coding: iso-8859-1 -*-
# $Id$
-from xml.sax import make_parser, ContentHandler, \
- SAXException, SAXReaderNotAvailable, SAXParseException
+from xmlcore.sax import make_parser, ContentHandler, \
+ SAXException, SAXReaderNotAvailable, SAXParseException
try:
make_parser()
except SAXReaderNotAvailable:
# don't try to test this module if we cannot create a parser
raise ImportError("no XML parsers available")
-from xml.sax.saxutils import XMLGenerator, escape, unescape, quoteattr, \
- XMLFilterBase
-from xml.sax.expatreader import create_parser
-from xml.sax.xmlreader import InputSource, AttributesImpl, AttributesNSImpl
+from xmlcore.sax.saxutils import XMLGenerator, escape, unescape, quoteattr, \
+ XMLFilterBase
+from xmlcore.sax.expatreader import create_parser
+from xmlcore.sax.xmlreader import InputSource, AttributesImpl, AttributesNSImpl
from cStringIO import StringIO
from test.test_support import verify, verbose, TestFailed, findfile
import os
# Creating parsers several times in a row should succeed.
# Testing this because there have been failures of this kind
# before.
- from xml.sax import make_parser
+ from xmlcore.sax import make_parser
p = make_parser()
- from xml.sax import make_parser
+ from xmlcore.sax import make_parser
p = make_parser()
- from xml.sax import make_parser
+ from xmlcore.sax import make_parser
p = make_parser()
- from xml.sax import make_parser
+ from xmlcore.sax import make_parser
p = make_parser()
- from xml.sax import make_parser
+ from xmlcore.sax import make_parser
p = make_parser()
- from xml.sax import make_parser
+ from xmlcore.sax import make_parser
p = make_parser()
except:
return 0
try:
# Creating a parser should succeed - it should fall back
# to the expatreader
- p = make_parser(['xml.parsers.no_such_parser'])
+ p = make_parser(['xmlcore.parsers.no_such_parser'])
except:
return 0
else:
-# xml.etree test. This file contains enough tests to make sure that\r
+# xmlcore.etree test. This file contains enough tests to make sure that\r
# all included components work as they should. For a more extensive\r
# test suite, see the selftest script in the ElementTree distribution.\r
\r
"""\r
Import sanity.\r
\r
- >>> from xml.etree import ElementTree\r
- >>> from xml.etree import ElementInclude\r
- >>> from xml.etree import ElementPath\r
+ >>> from xmlcore.etree import ElementTree\r
+ >>> from xmlcore.etree import ElementInclude\r
+ >>> from xmlcore.etree import ElementPath\r
"""\r
\r
def check_method(method):\r
"""\r
Test element tree interface.\r
\r
- >>> from xml.etree import ElementTree as ET\r
+ >>> from xmlcore.etree import ElementTree as ET\r
\r
>>> element = ET.Element("tag", key="value")\r
>>> tree = ET.ElementTree(element)\r
"""\r
Test find methods (including xpath syntax).\r
\r
- >>> from xml.etree import ElementTree as ET\r
+ >>> from xmlcore.etree import ElementTree as ET\r
\r
>>> elem = ET.XML(SAMPLE_XML)\r
>>> elem.find("tag").tag\r
def parseliteral():\r
r"""\r
\r
- >>> from xml.etree import ElementTree as ET\r
+ >>> from xmlcore.etree import ElementTree as ET\r
\r
>>> element = ET.XML("<html><body>text</body></html>")\r
>>> ET.ElementTree(element).write(sys.stdout)\r
except KeyError:\r
raise IOError("resource not found")\r
if parse == "xml":\r
- from xml.etree.ElementTree import XML\r
+ from xmlcore.etree.ElementTree import XML\r
return XML(data)\r
return data\r
\r
r"""\r
Basic inclusion example (XInclude C.1)\r
\r
- >>> from xml.etree import ElementTree as ET\r
- >>> from xml.etree import ElementInclude\r
+ >>> from xmlcore.etree import ElementTree as ET\r
+ >>> from xmlcore.etree import ElementInclude\r
\r
>>> document = xinclude_loader("C1.xml")\r
>>> ElementInclude.include(document, xinclude_loader)\r
"""
+import sys
+import xmlcore
__all__ = ["dom", "parsers", "sax", "etree"]
_MINIMUM_XMLPLUS_VERSION = (0, 8, 4)
-
try:
import _xmlplus
except ImportError:
- pass
+ sys.modules[__name__] = xmlcore
else:
try:
v = _xmlplus.version_info
pass
else:
if v >= _MINIMUM_XMLPLUS_VERSION:
- import sys
- _xmlplus.__path__.extend(__path__)
+ _xmlplus.__path__.extend(xmlcore.__path__)
sys.modules[__name__] = _xmlplus
else:
del v
directly. Instead, the functions getDOMImplementation and
registerDOMImplementation should be imported from xml.dom."""
-from xml.dom.minicompat import * # isinstance, StringTypes
+from xmlcore.dom.minicompat import * # isinstance, StringTypes
# This is a list of well-known implementations. Well-known names
# should be published by posting to xml-sig@python.org, and are
# calling any methods on the node object if it exists. (A rather
# nice speedup is achieved this way as well!)
-from xml.dom import xmlbuilder, minidom, Node
-from xml.dom import EMPTY_NAMESPACE, EMPTY_PREFIX, XMLNS_NAMESPACE
-from xml.parsers import expat
-from xml.dom.minidom import _append_child, _set_attribute_node
-from xml.dom.NodeFilter import NodeFilter
+from xmlcore.dom import xmlbuilder, minidom, Node
+from xmlcore.dom import EMPTY_NAMESPACE, EMPTY_PREFIX, XMLNS_NAMESPACE
+from xmlcore.parsers import expat
+from xmlcore.dom.minidom import _append_child, _set_attribute_node
+from xmlcore.dom.NodeFilter import NodeFilter
-from xml.dom.minicompat import *
+from xmlcore.dom.minicompat import *
TEXT_NODE = Node.TEXT_NODE
CDATA_SECTION_NODE = Node.CDATA_SECTION_NODE
__all__ = ["NodeList", "EmptyNodeList", "NewStyle",
"StringTypes", "defproperty", "GetattrMagic"]
-import xml.dom
+import xmlcore.dom
try:
unicode
return len(self)
def _set_length(self, value):
- raise xml.dom.NoModificationAllowedErr(
+ raise xmlcore.dom.NoModificationAllowedErr(
"attempt to modify read-only attribute 'length'")
length = property(_get_length, _set_length,
return 0
def _set_length(self, value):
- raise xml.dom.NoModificationAllowedErr(
+ raise xmlcore.dom.NoModificationAllowedErr(
"attempt to modify read-only attribute 'length'")
length = property(_get_length, _set_length,
def defproperty(klass, name, doc):
get = getattr(klass, ("_get_" + name)).im_func
def set(self, value, name=name):
- raise xml.dom.NoModificationAllowedErr(
+ raise xmlcore.dom.NoModificationAllowedErr(
"attempt to modify read-only attribute " + repr(name))
assert not hasattr(klass, "_set_" + name), \
"expected not to find _set_" + name
* SAX 2 namespaces
"""
-import xml.dom
+import xmlcore.dom
-from xml.dom import EMPTY_NAMESPACE, EMPTY_PREFIX, XMLNS_NAMESPACE, domreg
-from xml.dom.minicompat import *
-from xml.dom.xmlbuilder import DOMImplementationLS, DocumentLS
+from xmlcore.dom import EMPTY_NAMESPACE, EMPTY_PREFIX, XMLNS_NAMESPACE, domreg
+from xmlcore.dom.minicompat import *
+from xmlcore.dom.xmlbuilder import DOMImplementationLS, DocumentLS
_TupleType = type(())
# DOCUMENT_NODE or DOCUMENT_FRAGMENT_NODE. (The node being checked is
# the node being added or removed, not the node being modified.)
#
-_nodeTypes_with_children = (xml.dom.Node.ELEMENT_NODE,
- xml.dom.Node.ENTITY_REFERENCE_NODE)
+_nodeTypes_with_children = (xmlcore.dom.Node.ELEMENT_NODE,
+ xmlcore.dom.Node.ENTITY_REFERENCE_NODE)
-class Node(xml.dom.Node, GetattrMagic):
+class Node(xmlcore.dom.Node, GetattrMagic):
namespaceURI = None # this is non-null only for elements and attributes
parentNode = None
ownerDocument = None
### The DOM does not clearly specify what to return in this case
return newChild
if newChild.nodeType not in self._child_node_types:
- raise xml.dom.HierarchyRequestErr(
+ raise xmlcore.dom.HierarchyRequestErr(
"%s cannot be child of %s" % (repr(newChild), repr(self)))
if newChild.parentNode is not None:
newChild.parentNode.removeChild(newChild)
try:
index = self.childNodes.index(refChild)
except ValueError:
- raise xml.dom.NotFoundErr()
+ raise xmlcore.dom.NotFoundErr()
if newChild.nodeType in _nodeTypes_with_children:
_clear_id_cache(self)
self.childNodes.insert(index, newChild)
### The DOM does not clearly specify what to return in this case
return node
if node.nodeType not in self._child_node_types:
- raise xml.dom.HierarchyRequestErr(
+ raise xmlcore.dom.HierarchyRequestErr(
"%s cannot be child of %s" % (repr(node), repr(self)))
elif node.nodeType in _nodeTypes_with_children:
_clear_id_cache(self)
self.removeChild(oldChild)
return self.insertBefore(newChild, refChild)
if newChild.nodeType not in self._child_node_types:
- raise xml.dom.HierarchyRequestErr(
+ raise xmlcore.dom.HierarchyRequestErr(
"%s cannot be child of %s" % (repr(newChild), repr(self)))
if newChild is oldChild:
return
try:
index = self.childNodes.index(oldChild)
except ValueError:
- raise xml.dom.NotFoundErr()
+ raise xmlcore.dom.NotFoundErr()
self.childNodes[index] = newChild
newChild.parentNode = self
oldChild.parentNode = None
try:
self.childNodes.remove(oldChild)
except ValueError:
- raise xml.dom.NotFoundErr()
+ raise xmlcore.dom.NotFoundErr()
if oldChild.nextSibling is not None:
oldChild.nextSibling.previousSibling = oldChild.previousSibling
if oldChild.previousSibling is not None:
nsuri = self.namespaceURI
if prefix == "xmlns":
if nsuri and nsuri != XMLNS_NAMESPACE:
- raise xml.dom.NamespaceErr(
+ raise xmlcore.dom.NamespaceErr(
"illegal use of 'xmlns' prefix for the wrong namespace")
d = self.__dict__
d['prefix'] = prefix
n.__dict__['ownerElement'] = None
return n
else:
- raise xml.dom.NotFoundErr()
+ raise xmlcore.dom.NotFoundErr()
def removeNamedItemNS(self, namespaceURI, localName):
n = self.getNamedItemNS(namespaceURI, localName)
n.__dict__['ownerElement'] = None
return n
else:
- raise xml.dom.NotFoundErr()
+ raise xmlcore.dom.NotFoundErr()
def setNamedItem(self, node):
if not isinstance(node, Attr):
- raise xml.dom.HierarchyRequestErr(
+ raise xmlcore.dom.HierarchyRequestErr(
"%s cannot be child of %s" % (repr(node), repr(self)))
old = self._attrs.get(node.name)
if old:
def setAttributeNode(self, attr):
if attr.ownerElement not in (None, self):
- raise xml.dom.InuseAttributeErr("attribute node already owned")
+ raise xmlcore.dom.InuseAttributeErr("attribute node already owned")
old1 = self._attrs.get(attr.name, None)
if old1 is not None:
self.removeAttributeNode(old1)
try:
attr = self._attrs[name]
except KeyError:
- raise xml.dom.NotFoundErr()
+ raise xmlcore.dom.NotFoundErr()
self.removeAttributeNode(attr)
def removeAttributeNS(self, namespaceURI, localName):
try:
attr = self._attrsNS[(namespaceURI, localName)]
except KeyError:
- raise xml.dom.NotFoundErr()
+ raise xmlcore.dom.NotFoundErr()
self.removeAttributeNode(attr)
def removeAttributeNode(self, node):
if node is None:
- raise xml.dom.NotFoundErr()
+ raise xmlcore.dom.NotFoundErr()
try:
self._attrs[node.name]
except KeyError:
- raise xml.dom.NotFoundErr()
+ raise xmlcore.dom.NotFoundErr()
_clear_id_cache(self)
node.unlink()
# Restore this since the node is still useful and otherwise
def setIdAttributeNode(self, idAttr):
if idAttr is None or not self.isSameNode(idAttr.ownerElement):
- raise xml.dom.NotFoundErr()
+ raise xmlcore.dom.NotFoundErr()
if _get_containing_entref(self) is not None:
- raise xml.dom.NoModificationAllowedErr()
+ raise xmlcore.dom.NoModificationAllowedErr()
if not idAttr._is_id:
idAttr.__dict__['_is_id'] = True
self._magic_id_nodes += 1
return None
def appendChild(self, node):
- raise xml.dom.HierarchyRequestErr(
+ raise xmlcore.dom.HierarchyRequestErr(
self.nodeName + " nodes cannot have children")
def hasChildNodes(self):
return False
def insertBefore(self, newChild, refChild):
- raise xml.dom.HierarchyRequestErr(
+ raise xmlcore.dom.HierarchyRequestErr(
self.nodeName + " nodes do not have children")
def removeChild(self, oldChild):
- raise xml.dom.NotFoundErr(
+ raise xmlcore.dom.NotFoundErr(
self.nodeName + " nodes do not have children")
def replaceChild(self, newChild, oldChild):
- raise xml.dom.HierarchyRequestErr(
+ raise xmlcore.dom.HierarchyRequestErr(
self.nodeName + " nodes do not have children")
def substringData(self, offset, count):
if offset < 0:
- raise xml.dom.IndexSizeErr("offset cannot be negative")
+ raise xmlcore.dom.IndexSizeErr("offset cannot be negative")
if offset >= len(self.data):
- raise xml.dom.IndexSizeErr("offset cannot be beyond end of data")
+ raise xmlcore.dom.IndexSizeErr("offset cannot be beyond end of data")
if count < 0:
- raise xml.dom.IndexSizeErr("count cannot be negative")
+ raise xmlcore.dom.IndexSizeErr("count cannot be negative")
return self.data[offset:offset+count]
def appendData(self, arg):
def insertData(self, offset, arg):
if offset < 0:
- raise xml.dom.IndexSizeErr("offset cannot be negative")
+ raise xmlcore.dom.IndexSizeErr("offset cannot be negative")
if offset >= len(self.data):
- raise xml.dom.IndexSizeErr("offset cannot be beyond end of data")
+ raise xmlcore.dom.IndexSizeErr("offset cannot be beyond end of data")
if arg:
self.data = "%s%s%s" % (
self.data[:offset], arg, self.data[offset:])
def deleteData(self, offset, count):
if offset < 0:
- raise xml.dom.IndexSizeErr("offset cannot be negative")
+ raise xmlcore.dom.IndexSizeErr("offset cannot be negative")
if offset >= len(self.data):
- raise xml.dom.IndexSizeErr("offset cannot be beyond end of data")
+ raise xmlcore.dom.IndexSizeErr("offset cannot be beyond end of data")
if count < 0:
- raise xml.dom.IndexSizeErr("count cannot be negative")
+ raise xmlcore.dom.IndexSizeErr("count cannot be negative")
if count:
self.data = self.data[:offset] + self.data[offset+count:]
def replaceData(self, offset, count, arg):
if offset < 0:
- raise xml.dom.IndexSizeErr("offset cannot be negative")
+ raise xmlcore.dom.IndexSizeErr("offset cannot be negative")
if offset >= len(self.data):
- raise xml.dom.IndexSizeErr("offset cannot be beyond end of data")
+ raise xmlcore.dom.IndexSizeErr("offset cannot be beyond end of data")
if count < 0:
- raise xml.dom.IndexSizeErr("count cannot be negative")
+ raise xmlcore.dom.IndexSizeErr("count cannot be negative")
if count:
self.data = "%s%s%s" % (
self.data[:offset], arg, self.data[offset+count:])
def splitText(self, offset):
if offset < 0 or offset > len(self.data):
- raise xml.dom.IndexSizeErr("illegal offset value")
+ raise xmlcore.dom.IndexSizeErr("illegal offset value")
newText = self.__class__()
newText.data = self.data[offset:]
newText.ownerDocument = self.ownerDocument
return None
def removeNamedItem(self, name):
- raise xml.dom.NoModificationAllowedErr(
+ raise xmlcore.dom.NoModificationAllowedErr(
"NamedNodeMap instance is read-only")
def removeNamedItemNS(self, namespaceURI, localName):
- raise xml.dom.NoModificationAllowedErr(
+ raise xmlcore.dom.NoModificationAllowedErr(
"NamedNodeMap instance is read-only")
def setNamedItem(self, node):
- raise xml.dom.NoModificationAllowedErr(
+ raise xmlcore.dom.NoModificationAllowedErr(
"NamedNodeMap instance is read-only")
def setNamedItemNS(self, node):
- raise xml.dom.NoModificationAllowedErr(
+ raise xmlcore.dom.NoModificationAllowedErr(
"NamedNodeMap instance is read-only")
def __getstate__(self):
clone = DocumentType(None)
clone.name = self.name
clone.nodeName = self.name
- operation = xml.dom.UserDataHandler.NODE_CLONED
+ operation = xmlcore.dom.UserDataHandler.NODE_CLONED
if deep:
clone.entities._seq = []
clone.notations._seq = []
return self.version
def appendChild(self, newChild):
- raise xml.dom.HierarchyRequestErr(
+ raise xmlcore.dom.HierarchyRequestErr(
"cannot append children to an entity node")
def insertBefore(self, newChild, refChild):
- raise xml.dom.HierarchyRequestErr(
+ raise xmlcore.dom.HierarchyRequestErr(
"cannot insert children below an entity node")
def removeChild(self, oldChild):
- raise xml.dom.HierarchyRequestErr(
+ raise xmlcore.dom.HierarchyRequestErr(
"cannot remove children from an entity node")
def replaceChild(self, newChild, oldChild):
- raise xml.dom.HierarchyRequestErr(
+ raise xmlcore.dom.HierarchyRequestErr(
"cannot replace children of an entity node")
class Notation(Identified, Childless, Node):
def createDocument(self, namespaceURI, qualifiedName, doctype):
if doctype and doctype.parentNode is not None:
- raise xml.dom.WrongDocumentErr(
+ raise xmlcore.dom.WrongDocumentErr(
"doctype object owned by another DOM tree")
doc = self._create_document()
# Null the document is returned without a document element
# Otherwise if doctype or namespaceURI are not None
# Then we go back to the above problem
- raise xml.dom.InvalidCharacterErr("Element with no name")
+ raise xmlcore.dom.InvalidCharacterErr("Element with no name")
if add_root_element:
prefix, localname = _nssplit(qualifiedName)
if prefix == "xml" \
and namespaceURI != "http://www.w3.org/XML/1998/namespace":
- raise xml.dom.NamespaceErr("illegal use of 'xml' prefix")
+ raise xmlcore.dom.NamespaceErr("illegal use of 'xml' prefix")
if prefix and not namespaceURI:
- raise xml.dom.NamespaceErr(
+ raise xmlcore.dom.NamespaceErr(
"illegal use of prefix without namespaces")
element = doc.createElementNS(namespaceURI, qualifiedName)
if doctype:
def appendChild(self, node):
if node.nodeType not in self._child_node_types:
- raise xml.dom.HierarchyRequestErr(
+ raise xmlcore.dom.HierarchyRequestErr(
"%s cannot be child of %s" % (repr(node), repr(self)))
if node.parentNode is not None:
# This needs to be done before the next test since this
if node.nodeType == Node.ELEMENT_NODE \
and self._get_documentElement():
- raise xml.dom.HierarchyRequestErr(
+ raise xmlcore.dom.HierarchyRequestErr(
"two document elements disallowed")
return Node.appendChild(self, node)
try:
self.childNodes.remove(oldChild)
except ValueError:
- raise xml.dom.NotFoundErr()
+ raise xmlcore.dom.NotFoundErr()
oldChild.nextSibling = oldChild.previousSibling = None
oldChild.parentNode = None
if self.documentElement is oldChild:
assert clone.doctype is None
clone.doctype = childclone
childclone.parentNode = clone
- self._call_user_data_handler(xml.dom.UserDataHandler.NODE_CLONED,
+ self._call_user_data_handler(xmlcore.dom.UserDataHandler.NODE_CLONED,
self, clone)
return clone
def importNode(self, node, deep):
if node.nodeType == Node.DOCUMENT_NODE:
- raise xml.dom.NotSupportedErr("cannot import document nodes")
+ raise xmlcore.dom.NotSupportedErr("cannot import document nodes")
elif node.nodeType == Node.DOCUMENT_TYPE_NODE:
- raise xml.dom.NotSupportedErr("cannot import document type nodes")
+ raise xmlcore.dom.NotSupportedErr("cannot import document type nodes")
return _clone_node(node, deep, self)
def writexml(self, writer, indent="", addindent="", newl="",
def renameNode(self, n, namespaceURI, name):
if n.ownerDocument is not self:
- raise xml.dom.WrongDocumentErr(
+ raise xmlcore.dom.WrongDocumentErr(
"cannot rename nodes from other documents;\n"
"expected %s,\nfound %s" % (self, n.ownerDocument))
if n.nodeType not in (Node.ELEMENT_NODE, Node.ATTRIBUTE_NODE):
- raise xml.dom.NotSupportedErr(
+ raise xmlcore.dom.NotSupportedErr(
"renameNode() only applies to element and attribute nodes")
if namespaceURI != EMPTY_NAMESPACE:
if ':' in name:
prefix, localName = name.split(':', 1)
if ( prefix == "xmlns"
- and namespaceURI != xml.dom.XMLNS_NAMESPACE):
- raise xml.dom.NamespaceErr(
+ and namespaceURI != xmlcore.dom.XMLNS_NAMESPACE):
+ raise xmlcore.dom.NamespaceErr(
"illegal use of 'xmlns' prefix")
else:
if ( name == "xmlns"
- and namespaceURI != xml.dom.XMLNS_NAMESPACE
+ and namespaceURI != xmlcore.dom.XMLNS_NAMESPACE
and n.nodeType == Node.ATTRIBUTE_NODE):
- raise xml.dom.NamespaceErr(
+ raise xmlcore.dom.NamespaceErr(
"illegal use of the 'xmlns' attribute")
prefix = None
localName = name
Called by Node.cloneNode and Document.importNode
"""
if node.ownerDocument.isSameNode(newOwnerDocument):
- operation = xml.dom.UserDataHandler.NODE_CLONED
+ operation = xmlcore.dom.UserDataHandler.NODE_CLONED
else:
- operation = xml.dom.UserDataHandler.NODE_IMPORTED
+ operation = xmlcore.dom.UserDataHandler.NODE_IMPORTED
if node.nodeType == Node.ELEMENT_NODE:
clone = newOwnerDocument.createElementNS(node.namespaceURI,
node.nodeName)
clone.value = node.value
elif node.nodeType == Node.DOCUMENT_TYPE_NODE:
assert node.ownerDocument is not newOwnerDocument
- operation = xml.dom.UserDataHandler.NODE_IMPORTED
+ operation = xmlcore.dom.UserDataHandler.NODE_IMPORTED
clone = newOwnerDocument.implementation.createDocumentType(
node.name, node.publicId, node.systemId)
clone.ownerDocument = newOwnerDocument
# Note the cloning of Document and DocumentType nodes is
# implemenetation specific. minidom handles those cases
# directly in the cloneNode() methods.
- raise xml.dom.NotSupportedErr("Cannot clone node %s" % repr(node))
+ raise xmlcore.dom.NotSupportedErr("Cannot clone node %s" % repr(node))
# Check for _call_user_data_handler() since this could conceivably
# used with other DOM implementations (one of the FourThought
def parse(file, parser=None, bufsize=None):
"""Parse a file into a DOM by filename or file object."""
if parser is None and not bufsize:
- from xml.dom import expatbuilder
+ from xmlcore.dom import expatbuilder
return expatbuilder.parse(file)
else:
- from xml.dom import pulldom
+ from xmlcore.dom import pulldom
return _do_pulldom_parse(pulldom.parse, (file,),
{'parser': parser, 'bufsize': bufsize})
def parseString(string, parser=None):
"""Parse a file into a DOM from a string."""
if parser is None:
- from xml.dom import expatbuilder
+ from xmlcore.dom import expatbuilder
return expatbuilder.parseString(string)
else:
- from xml.dom import pulldom
+ from xmlcore.dom import pulldom
return _do_pulldom_parse(pulldom.parseString, (string,),
{'parser': parser})
-import xml.sax
-import xml.sax.handler
+import xmlcore.sax
+import xmlcore.sax.handler
import types
try:
IGNORABLE_WHITESPACE = "IGNORABLE_WHITESPACE"
CHARACTERS = "CHARACTERS"
-class PullDOM(xml.sax.ContentHandler):
+class PullDOM(xmlcore.sax.ContentHandler):
_locator = None
document = None
def __init__(self, documentFactory=None):
- from xml.dom import XML_NAMESPACE
+ from xmlcore.dom import XML_NAMESPACE
self.documentFactory = documentFactory
self.firstEvent = [None, None]
self.lastEvent = self.firstEvent
def startDocument(self):
if self.documentFactory is None:
- import xml.dom.minidom
- self.documentFactory = xml.dom.minidom.Document.implementation
+ import xmlcore.dom.minidom
+ self.documentFactory = xmlcore.dom.minidom.Document.implementation
def buildDocument(self, uri, tagname):
# Can't do that in startDocument, since we need the tagname
def reset(self):
self.pulldom = PullDOM()
# This content handler relies on namespace support
- self.parser.setFeature(xml.sax.handler.feature_namespaces, 1)
+ self.parser.setFeature(xmlcore.sax.handler.feature_namespaces, 1)
self.parser.setContentHandler(self.pulldom)
def __getitem__(self, pos):
else:
stream = stream_or_string
if not parser:
- parser = xml.sax.make_parser()
+ parser = xmlcore.sax.make_parser()
return DOMEventStream(stream, parser, bufsize)
def parseString(string, parser=None):
bufsize = len(string)
buf = StringIO(string)
if not parser:
- parser = xml.sax.make_parser()
+ parser = xmlcore.sax.make_parser()
return DOMEventStream(buf, parser, bufsize)
"""Implementation of the DOM Level 3 'LS-Load' feature."""
import copy
-import xml.dom
+import xmlcore.dom
-from xml.dom.minicompat import *
+from xmlcore.dom.minicompat import *
-from xml.dom.NodeFilter import NodeFilter
+from xmlcore.dom.NodeFilter import NodeFilter
__all__ = ["DOMBuilder", "DOMEntityResolver", "DOMInputSource"]
try:
settings = self._settings[(_name_xform(name), state)]
except KeyError:
- raise xml.dom.NotSupportedErr(
+ raise xmlcore.dom.NotSupportedErr(
"unsupported feature: %r" % (name,))
else:
for name, value in settings:
setattr(self._options, name, value)
else:
- raise xml.dom.NotFoundErr("unknown feature: " + repr(name))
+ raise xmlcore.dom.NotFoundErr("unknown feature: " + repr(name))
def supportsFeature(self, name):
return hasattr(self._options, _name_xform(name))
or options.create_entity_ref_nodes
or options.entities
or options.cdata_sections))
- raise xml.dom.NotFoundErr("feature %s not known" % repr(name))
+ raise xmlcore.dom.NotFoundErr("feature %s not known" % repr(name))
def parseURI(self, uri):
if self.entityResolver:
raise NotImplementedError("Haven't written this yet...")
def _parse_bytestream(self, stream, options):
- import xml.dom.expatbuilder
- builder = xml.dom.expatbuilder.makeBuilder(options)
+ import xmlcore.dom.expatbuilder
+ builder = xmlcore.dom.expatbuilder.makeBuilder(options)
return builder.parseFile(stream)
return False
def _set_async(self, async):
if async:
- raise xml.dom.NotSupportedErr(
+ raise xmlcore.dom.NotSupportedErr(
"asynchronous document loading is not supported")
def abort(self):
if snode is None:
snode = self
elif snode.ownerDocument is not self:
- raise xml.dom.WrongDocumentErr()
+ raise xmlcore.dom.WrongDocumentErr()
return snode.toxml()
def createDOMBuilder(self, mode, schemaType):
if schemaType is not None:
- raise xml.dom.NotSupportedErr(
+ raise xmlcore.dom.NotSupportedErr(
"schemaType not yet supported")
if mode == self.MODE_SYNCHRONOUS:
return DOMBuilder()
if mode == self.MODE_ASYNCHRONOUS:
- raise xml.dom.NotSupportedErr(
+ raise xmlcore.dom.NotSupportedErr(
"asynchronous builders are not supported")
raise ValueError("unknown value for mode")
\r
def __init__(self, html=0, target=None):\r
try:\r
- from xml.parsers import expat\r
+ from xmlcore.parsers import expat\r
except ImportError:\r
raise ImportError(\r
"No module named expat; use SimpleXMLTreeBuilder instead"\r
try:\r
self._target.data(self.entity[text[1:-1]])\r
except KeyError:\r
- from xml.parsers import expat\r
+ from xmlcore.parsers import expat\r
raise expat.error(\r
"undefined entity %s: line %d, column %d" %\r
(text, self._parser.ErrorLineNumber,\r
# this is the parser list used by the make_parser function if no
# alternatives are given as parameters to the function
-default_parser_list = ["xml.sax.expatreader"]
+default_parser_list = ["xmlcore.sax.expatreader"]
# tell modulefinder that importing sax potentially imports expatreader
_false = 0
if _false:
- import xml.sax.expatreader
+ import xmlcore.sax.expatreader
import os, sys
if os.environ.has_key("PY_SAX_PARSER"):
version = "0.20"
-from xml.sax._exceptions import *
-from xml.sax.handler import feature_validation, feature_namespaces
-from xml.sax.handler import feature_namespace_prefixes
-from xml.sax.handler import feature_external_ges, feature_external_pes
-from xml.sax.handler import feature_string_interning
-from xml.sax.handler import property_xml_string, property_interning_dict
-
-# xml.parsers.expat does not raise ImportError in Jython
+from xmlcore.sax._exceptions import *
+from xmlcore.sax.handler import feature_validation, feature_namespaces
+from xmlcore.sax.handler import feature_namespace_prefixes
+from xmlcore.sax.handler import feature_external_ges, feature_external_pes
+from xmlcore.sax.handler import feature_string_interning
+from xmlcore.sax.handler import property_xml_string, property_interning_dict
+
+# xmlcore.parsers.expat does not raise ImportError in Jython
import sys
if sys.platform[:4] == "java":
raise SAXReaderNotAvailable("expat not available in Java", None)
del sys
try:
- from xml.parsers import expat
+ from xmlcore.parsers import expat
except ImportError:
raise SAXReaderNotAvailable("expat not supported", None)
else:
if not hasattr(expat, "ParserCreate"):
raise SAXReaderNotAvailable("expat not supported", None)
-from xml.sax import xmlreader, saxutils, handler
+from xmlcore.sax import xmlreader, saxutils, handler
AttributesImpl = xmlreader.AttributesImpl
AttributesNSImpl = xmlreader.AttributesNSImpl
# ---
if __name__ == "__main__":
- import xml.sax
+ import xmlcore.sax
p = create_parser()
- p.setContentHandler(xml.sax.XMLGenerator())
- p.setErrorHandler(xml.sax.ErrorHandler())
+ p.setContentHandler(xmlcore.sax.XMLGenerator())
+ p.setErrorHandler(xmlcore.sax.ErrorHandler())
p.parse("../../../hamlet.xml")