home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Freeware 31 / FreelogHS31.iso / Texte / scribus / scribus-1.3.3.9-win32-install.exe / lib / xml / dom / __init__.py next >
Text File  |  2003-02-27  |  4KB  |  140 lines

  1. """W3C Document Object Model implementation for Python.
  2.  
  3. The Python mapping of the Document Object Model is documented in the
  4. Python Library Reference in the section on the xml.dom package.
  5.  
  6. This package contains the following modules:
  7.  
  8. minidom -- A simple implementation of the Level 1 DOM with namespace
  9.            support added (based on the Level 2 specification) and other
  10.            minor Level 2 functionality.
  11.  
  12. pulldom -- DOM builder supporting on-demand tree-building for selected
  13.            subtrees of the document.
  14.  
  15. """
  16.  
  17.  
  18. class Node:
  19.     """Class giving the NodeType constants."""
  20.  
  21.     # DOM implementations may use this as a base class for their own
  22.     # Node implementations.  If they don't, the constants defined here
  23.     # should still be used as the canonical definitions as they match
  24.     # the values given in the W3C recommendation.  Client code can
  25.     # safely refer to these values in all tests of Node.nodeType
  26.     # values.
  27.  
  28.     ELEMENT_NODE                = 1
  29.     ATTRIBUTE_NODE              = 2
  30.     TEXT_NODE                   = 3
  31.     CDATA_SECTION_NODE          = 4
  32.     ENTITY_REFERENCE_NODE       = 5
  33.     ENTITY_NODE                 = 6
  34.     PROCESSING_INSTRUCTION_NODE = 7
  35.     COMMENT_NODE                = 8
  36.     DOCUMENT_NODE               = 9
  37.     DOCUMENT_TYPE_NODE          = 10
  38.     DOCUMENT_FRAGMENT_NODE      = 11
  39.     NOTATION_NODE               = 12
  40.  
  41.  
  42. #ExceptionCode
  43. INDEX_SIZE_ERR                 = 1
  44. DOMSTRING_SIZE_ERR             = 2
  45. HIERARCHY_REQUEST_ERR          = 3
  46. WRONG_DOCUMENT_ERR             = 4
  47. INVALID_CHARACTER_ERR          = 5
  48. NO_DATA_ALLOWED_ERR            = 6
  49. NO_MODIFICATION_ALLOWED_ERR    = 7
  50. NOT_FOUND_ERR                  = 8
  51. NOT_SUPPORTED_ERR              = 9
  52. INUSE_ATTRIBUTE_ERR            = 10
  53. INVALID_STATE_ERR              = 11
  54. SYNTAX_ERR                     = 12
  55. INVALID_MODIFICATION_ERR       = 13
  56. NAMESPACE_ERR                  = 14
  57. INVALID_ACCESS_ERR             = 15
  58. VALIDATION_ERR                 = 16
  59.  
  60.  
  61. class DOMException(Exception):
  62.     """Abstract base class for DOM exceptions.
  63.     Exceptions with specific codes are specializations of this class."""
  64.  
  65.     def __init__(self, *args, **kw):
  66.         if self.__class__ is DOMException:
  67.             raise RuntimeError(
  68.                 "DOMException should not be instantiated directly")
  69.         Exception.__init__(self, *args, **kw)
  70.  
  71.     def _get_code(self):
  72.         return self.code
  73.  
  74.  
  75. class IndexSizeErr(DOMException):
  76.     code = INDEX_SIZE_ERR
  77.  
  78. class DomstringSizeErr(DOMException):
  79.     code = DOMSTRING_SIZE_ERR
  80.  
  81. class HierarchyRequestErr(DOMException):
  82.     code = HIERARCHY_REQUEST_ERR
  83.  
  84. class WrongDocumentErr(DOMException):
  85.     code = WRONG_DOCUMENT_ERR
  86.  
  87. class InvalidCharacterErr(DOMException):
  88.     code = INVALID_CHARACTER_ERR
  89.  
  90. class NoDataAllowedErr(DOMException):
  91.     code = NO_DATA_ALLOWED_ERR
  92.  
  93. class NoModificationAllowedErr(DOMException):
  94.     code = NO_MODIFICATION_ALLOWED_ERR
  95.  
  96. class NotFoundErr(DOMException):
  97.     code = NOT_FOUND_ERR
  98.  
  99. class NotSupportedErr(DOMException):
  100.     code = NOT_SUPPORTED_ERR
  101.  
  102. class InuseAttributeErr(DOMException):
  103.     code = INUSE_ATTRIBUTE_ERR
  104.  
  105. class InvalidStateErr(DOMException):
  106.     code = INVALID_STATE_ERR
  107.  
  108. class SyntaxErr(DOMException):
  109.     code = SYNTAX_ERR
  110.  
  111. class InvalidModificationErr(DOMException):
  112.     code = INVALID_MODIFICATION_ERR
  113.  
  114. class NamespaceErr(DOMException):
  115.     code = NAMESPACE_ERR
  116.  
  117. class InvalidAccessErr(DOMException):
  118.     code = INVALID_ACCESS_ERR
  119.  
  120. class ValidationErr(DOMException):
  121.     code = VALIDATION_ERR
  122.  
  123. class UserDataHandler:
  124.     """Class giving the operation constants for UserDataHandler.handle()."""
  125.  
  126.     # Based on DOM Level 3 (WD 9 April 2002)
  127.  
  128.     NODE_CLONED   = 1
  129.     NODE_IMPORTED = 2
  130.     NODE_DELETED  = 3
  131.     NODE_RENAMED  = 4
  132.  
  133. XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace"
  134. XMLNS_NAMESPACE = "http://www.w3.org/2000/xmlns/"
  135. XHTML_NAMESPACE = "http://www.w3.org/1999/xhtml"
  136. EMPTY_NAMESPACE = None
  137. EMPTY_PREFIX = None
  138.  
  139. from domreg import getDOMImplementation,registerDOMImplementation
  140.