| ######################################################################## |
| # |
| # File Name: __init__.py |
| # |
| # |
| """ |
| WWW: http://4suite.org/4DOM e-mail: support@4suite.org |
| |
| Copyright (c) 2000 Fourthought Inc, USA. All Rights Reserved. |
| See http://4suite.org/COPYRIGHT for license and copyright information |
| """ |
| |
| |
| class Node: |
| """Class giving the nodeType and tree-position constants.""" |
| |
| # DOM implementations may use this as a base class for their own |
| # Node implementations. If they don't, the constants defined here |
| # should still be used as the canonical definitions as they match |
| # the values given in the W3C recommendation. Client code can |
| # safely refer to these values in all tests of Node.nodeType |
| # values. |
| |
| ELEMENT_NODE = 1 |
| ATTRIBUTE_NODE = 2 |
| TEXT_NODE = 3 |
| CDATA_SECTION_NODE = 4 |
| ENTITY_REFERENCE_NODE = 5 |
| ENTITY_NODE = 6 |
| PROCESSING_INSTRUCTION_NODE = 7 |
| COMMENT_NODE = 8 |
| DOCUMENT_NODE = 9 |
| DOCUMENT_TYPE_NODE = 10 |
| DOCUMENT_FRAGMENT_NODE = 11 |
| NOTATION_NODE = 12 |
| |
| # Based on DOM Level 3 (WD 9 April 2002) |
| |
| TREE_POSITION_PRECEDING = 0x01 |
| TREE_POSITION_FOLLOWING = 0x02 |
| TREE_POSITION_ANCESTOR = 0x04 |
| TREE_POSITION_DESCENDENT = 0x08 |
| TREE_POSITION_EQUIVALENT = 0x10 |
| TREE_POSITION_SAME_NODE = 0x20 |
| TREE_POSITION_DISCONNECTED = 0x00 |
| |
| class UserDataHandler: |
| """Class giving the operation constants for UserDataHandler.handle().""" |
| |
| # Based on DOM Level 3 (WD 9 April 2002) |
| |
| NODE_CLONED = 1 |
| NODE_IMPORTED = 2 |
| NODE_DELETED = 3 |
| NODE_RENAMED = 4 |
| |
| class DOMError: |
| """Class giving constants for error severity.""" |
| |
| # Based on DOM Level 3 (WD 9 April 2002) |
| |
| SEVERITY_WARNING = 0 |
| SEVERITY_ERROR = 1 |
| SEVERITY_FATAL_ERROR = 2 |
| |
| |
| # DOMException codes |
| INDEX_SIZE_ERR = 1 |
| DOMSTRING_SIZE_ERR = 2 |
| HIERARCHY_REQUEST_ERR = 3 |
| WRONG_DOCUMENT_ERR = 4 |
| INVALID_CHARACTER_ERR = 5 |
| NO_DATA_ALLOWED_ERR = 6 |
| NO_MODIFICATION_ALLOWED_ERR = 7 |
| NOT_FOUND_ERR = 8 |
| NOT_SUPPORTED_ERR = 9 |
| INUSE_ATTRIBUTE_ERR = 10 |
| # DOM Level 2 |
| INVALID_STATE_ERR = 11 |
| SYNTAX_ERR = 12 |
| INVALID_MODIFICATION_ERR = 13 |
| NAMESPACE_ERR = 14 |
| INVALID_ACCESS_ERR = 15 |
| # DOM Level 3 |
| VALIDATION_ERR = 16 |
| |
| # EventException codes |
| UNSPECIFIED_EVENT_TYPE_ERR = 0 |
| |
| # Fourthought specific codes |
| FT_EXCEPTION_BASE = 1000 |
| XML_PARSE_ERR = FT_EXCEPTION_BASE + 1 |
| |
| #RangeException codes |
| BAD_BOUNDARYPOINTS_ERR = 1 |
| INVALID_NODE_TYPE_ERR = 2 |
| |
| |
| class DOMException(Exception): |
| def __init__(self, code, msg=''): |
| self.code = code |
| self.msg = msg or DOMExceptionStrings[code] |
| |
| def __str__(self): |
| return self.msg |
| |
| class EventException(Exception): |
| def __init__(self, code, msg=''): |
| self.code = code |
| self.msg = msg or EventExceptionStrings[code] |
| return |
| |
| def __str__(self): |
| return self.msg |
| |
| class RangeException(Exception): |
| def __init__(self, code, msg): |
| self.code = code |
| self.msg = msg or RangeExceptionStrings[code] |
| Exception.__init__(self, self.msg) |
| |
| class FtException(Exception): |
| def __init__(self, code, *args): |
| self.code = code |
| self.msg = FtExceptionStrings[code] % args |
| return |
| |
| def __str__(self): |
| return self.msg |
| |
| class IndexSizeErr(DOMException): |
| def __init__(self, msg=''): |
| DOMException.__init__(self, INDEX_SIZE_ERR, msg) |
| |
| class DomstringSizeErr(DOMException): |
| def __init__(self, msg=''): |
| DOMException.__init__(self, DOMSTRING_SIZE_ERR, msg) |
| |
| # DOMStringSizeErr was accidentally introduced in rev 1.14 of this |
| # file, and was released as part of PyXML 0.6.4, 0.6.5, 0.6.6, 0.7, |
| # and 0.7.1. It has never been part of the Python DOM API, although |
| # it better matches the W3C recommendation. It should remain for |
| # compatibility, unfortunately. |
| # |
| DOMStringSizeErr = DomstringSizeErr |
| |
| class HierarchyRequestErr(DOMException): |
| def __init__(self, msg=''): |
| DOMException.__init__(self, HIERARCHY_REQUEST_ERR, msg) |
| |
| class WrongDocumentErr(DOMException): |
| def __init__(self, msg=''): |
| DOMException.__init__(self, WRONG_DOCUMENT_ERR, msg) |
| |
| class InvalidCharacterErr(DOMException): |
| def __init__(self, msg=''): |
| DOMException.__init__(self, INVALID_CHARACTER_ERR, msg) |
| |
| class NoDataAllowedErr(DOMException): |
| def __init__(self, msg=''): |
| DOMException.__init__(self, NO_DATA_ALLOWED_ERR, msg) |
| |
| class NoModificationAllowedErr(DOMException): |
| def __init__(self, msg=''): |
| DOMException.__init__(self, NO_MODIFICATION_ALLOWED_ERR, msg) |
| |
| class NotFoundErr(DOMException): |
| def __init__(self, msg=''): |
| DOMException.__init__(self, NOT_FOUND_ERR, msg) |
| |
| class NotSupportedErr(DOMException): |
| def __init__(self, msg=''): |
| DOMException.__init__(self, NOT_SUPPORTED_ERR, msg) |
| |
| class InuseAttributeErr(DOMException): |
| def __init__(self, msg=''): |
| DOMException.__init__(self, INUSE_ATTRIBUTE_ERR, msg) |
| |
| class InvalidStateErr(DOMException): |
| def __init__(self, msg=''): |
| DOMException.__init__(self, INVALID_STATE_ERR, msg) |
| |
| class SyntaxErr(DOMException): |
| def __init__(self, msg=''): |
| DOMException.__init__(self, SYNTAX_ERR, msg) |
| |
| class InvalidModificationErr(DOMException): |
| def __init__(self, msg=''): |
| DOMException.__init__(self, INVALID_MODIFICATION_ERR, msg) |
| |
| class NamespaceErr(DOMException): |
| def __init__(self, msg=''): |
| DOMException.__init__(self, NAMESPACE_ERR, msg) |
| |
| class InvalidAccessErr(DOMException): |
| def __init__(self, msg=''): |
| DOMException.__init__(self, INVALID_ACCESS_ERR, msg) |
| |
| class ValidationErr(DOMException): |
| def __init__(self, msg=''): |
| DOMException.__init__(self, VALIDATION_ERR, msg) |
| |
| class UnspecifiedEventTypeErr(EventException): |
| def __init__(self, msg=''): |
| EventException.__init__(self, UNSPECIFIED_EVENT_TYPE_ERR, msg) |
| |
| class XmlParseErr(FtException): |
| def __init__(self, msg=''): |
| FtException.__init__(self, XML_PARSE_ERR, msg) |
| |
| #Specific Range Exceptions |
| class BadBoundaryPointsErr(RangeException): |
| def __init__(self, msg=''): |
| RangeException.__init__(self, BAD_BOUNDARYPOINTS_ERR, msg) |
| |
| class InvalidNodeTypeErr(RangeException): |
| def __init__(self, msg=''): |
| RangeException.__init__(self, INVALID_NODE_TYPE_ERR, msg) |
| |
| XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace" |
| XMLNS_NAMESPACE = "http://www.w3.org/2000/xmlns/" |
| XHTML_NAMESPACE = "http://www.w3.org/1999/xhtml" |
| EMPTY_NAMESPACE = None |
| EMPTY_PREFIX = None |
| |
| import MessageSource |
| DOMExceptionStrings = MessageSource.__dict__['DOMExceptionStrings'] |
| EventExceptionStrings = MessageSource.__dict__['EventExceptionStrings'] |
| FtExceptionStrings = MessageSource.__dict__['FtExceptionStrings'] |
| RangeExceptionStrings = MessageSource.__dict__['RangeExceptionStrings'] |
| |
| from domreg import getDOMImplementation,registerDOMImplementation |