mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			139 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""W3C Document Object Model implementation for Python.
 | 
						|
 | 
						|
The Python mapping of the Document Object Model is documented in the
 | 
						|
Python Library Reference in the section on the xml.dom package.
 | 
						|
 | 
						|
This package contains the following modules:
 | 
						|
 | 
						|
minidom -- A simple implementation of the Level 1 DOM with namespace
 | 
						|
           support added (based on the Level 2 specification) and other
 | 
						|
           minor Level 2 functionality.
 | 
						|
 | 
						|
pulldom -- DOM builder supporting on-demand tree-building for selected
 | 
						|
           subtrees of the document.
 | 
						|
 | 
						|
"""
 | 
						|
 | 
						|
 | 
						|
class Node:
 | 
						|
    """Class giving the NodeType 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
 | 
						|
 | 
						|
 | 
						|
#ExceptionCode
 | 
						|
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
 | 
						|
INVALID_STATE_ERR              = 11
 | 
						|
SYNTAX_ERR                     = 12
 | 
						|
INVALID_MODIFICATION_ERR       = 13
 | 
						|
NAMESPACE_ERR                  = 14
 | 
						|
INVALID_ACCESS_ERR             = 15
 | 
						|
VALIDATION_ERR                 = 16
 | 
						|
 | 
						|
 | 
						|
class DOMException(Exception):
 | 
						|
    """Abstract base class for DOM exceptions.
 | 
						|
    Exceptions with specific codes are specializations of this class."""
 | 
						|
 | 
						|
    def __init__(self, *args, **kw):
 | 
						|
        if self.__class__ is DOMException:
 | 
						|
            raise RuntimeError(
 | 
						|
                "DOMException should not be instantiated directly")
 | 
						|
        Exception.__init__(self, *args, **kw)
 | 
						|
 | 
						|
    def _get_code(self):
 | 
						|
        return self.code
 | 
						|
 | 
						|
 | 
						|
class IndexSizeErr(DOMException):
 | 
						|
    code = INDEX_SIZE_ERR
 | 
						|
 | 
						|
class DomstringSizeErr(DOMException):
 | 
						|
    code = DOMSTRING_SIZE_ERR
 | 
						|
 | 
						|
class HierarchyRequestErr(DOMException):
 | 
						|
    code = HIERARCHY_REQUEST_ERR
 | 
						|
 | 
						|
class WrongDocumentErr(DOMException):
 | 
						|
    code = WRONG_DOCUMENT_ERR
 | 
						|
 | 
						|
class InvalidCharacterErr(DOMException):
 | 
						|
    code = INVALID_CHARACTER_ERR
 | 
						|
 | 
						|
class NoDataAllowedErr(DOMException):
 | 
						|
    code = NO_DATA_ALLOWED_ERR
 | 
						|
 | 
						|
class NoModificationAllowedErr(DOMException):
 | 
						|
    code = NO_MODIFICATION_ALLOWED_ERR
 | 
						|
 | 
						|
class NotFoundErr(DOMException):
 | 
						|
    code = NOT_FOUND_ERR
 | 
						|
 | 
						|
class NotSupportedErr(DOMException):
 | 
						|
    code = NOT_SUPPORTED_ERR
 | 
						|
 | 
						|
class InuseAttributeErr(DOMException):
 | 
						|
    code = INUSE_ATTRIBUTE_ERR
 | 
						|
 | 
						|
class InvalidStateErr(DOMException):
 | 
						|
    code = INVALID_STATE_ERR
 | 
						|
 | 
						|
class SyntaxErr(DOMException):
 | 
						|
    code = SYNTAX_ERR
 | 
						|
 | 
						|
class InvalidModificationErr(DOMException):
 | 
						|
    code = INVALID_MODIFICATION_ERR
 | 
						|
 | 
						|
class NamespaceErr(DOMException):
 | 
						|
    code = NAMESPACE_ERR
 | 
						|
 | 
						|
class InvalidAccessErr(DOMException):
 | 
						|
    code = INVALID_ACCESS_ERR
 | 
						|
 | 
						|
class ValidationErr(DOMException):
 | 
						|
    code = VALIDATION_ERR
 | 
						|
 | 
						|
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
 | 
						|
 | 
						|
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
 | 
						|
 | 
						|
from domreg import getDOMImplementation,registerDOMImplementation
 |