bionic (3) tcldom.3tcl.gz

Provided by: tclxml_3.3~svn11-3_amd64 bug

NAME

       TclDOM - Tcl language binding for the W3C Document Object Model

SYNOPSIS

       package require dom

       ::dom::DOMImplementation method ? args ... ?

       ::dom::hasfeature feature version

       ::dom::create

       ::dom::destroy token

       ::dom::parse xml ? option value ... ?

       ::dom::serialize token ? option value ... ?

       ::dom::document method token ? args ... ?

       ::dom::documenttype method token ? args ... ?

       ::dom::node method token ? args ... ?

       ::dom::element method token ? args ... ?

       ::dom::event method token ? args ... ?

       ::dom::selectNode token xpath ? option value ... ?

       ::dom::isNode token

       ::dom::xinclude doc

       ::dom::prefix2namespaceURI node prefix

       ::dom::trim doc

DESCRIPTION

       TclDOM  is  a Tcl language binding for the W3C Document Object Model (DOM).  DOM provides a view of a XML
       (or HTML) document as a tree structure.  Currently, TclDOM only supports XML documents.

       The package implements most of the DOM Level 1 interfaces and also some Level 2 and Level  3  interfaces.
       There  are also a number of non-standard commands and methods provided for the convenience of application
       developers (these are documented).

       The DOM specification should be read in conjunction with  this  reference  manual,  as  it  explains  the
       meaning and purpose of the various interfaces.  This manual is not a tutorial on how to use the DOM.

       TclDOM  also  provides  two implementations of the API:  a pure-Tcl implementation and a C implementation
       based on the Gnome libxml2 library.

PACKAGES AND NAMESPACES

       TclDOM defines the dom package and also a Tcl namespace using that same name.

       Implementations define their own package name and Tcl namespace within the ::dom Tcl namespace:

              Tcl implementation

              Package dom::tcl, Tcl namespace ::dom::tcl.

              libxml2

              Package dom::libxml2, Tcl namespace ::dom::libxml2.

       Each DOM Document is allocated a Tcl namespace within the ::dom  Tcl  namespace.   All  storage  for  the
       document and commands are defined within that Tcl namespace.

TOKENS

       The  TclDOM  API  uses tokens as identifiers for nodes within the document tree.  This technique has been
       used to allow alternate implementations of TclDOM to be efficient, while retaining compatibility with the
       pure-Tcl implementation.

       The  format of the token itself as well as the data structure referred to by the token are not public and
       an application should not rely on these.   Instead,  an  application  should  use  the  accessor  methods
       provided by the API.

       There  is  no  requirement  to  always  use the same token for a node.  In fact, an important performance
       optimisation for some implementations is to create a new token when a node  is  accessed,  regardless  of
       whether  a  token  has already been issued for that node.  This implies that in order to test whether two
       tokens refer to the same node it is not  sufficient  to  test  the  string  values  of  the  tokens;  the
       isSameNode method must be used for this purpose.  For example,

       proc NodeCompare1 {A B} {
           return [string equal $A $B] } proc NodeCompare2 {A B} {
           return [$A isSameNode $B] }

       In the above example, NodeCompare2 correctly determines whether its two arguments refer to the same node.

DOCUMENT AND NODE COMMANDS

       Each  Document  and  Node has a Tcl command defined that may be used to control the object.  This command
       may be used to invoke the methods by the ::dom::document  command  (for  Documents)  or  the  ::dom::node
       command  (for  all  other Nodes).  If a Document' or Node's Tcl command is destroyed then the Document or
       Node is also destroyed.

DOM INTERFACES

       Each Interface in the DOM specification is implemented with a Tcl command in the dom  namespace.   A  few
       interfaces  have not been mapped to Tcl commands because Tcl already provides the required functionality,
       for example the CharacterData interface.

       methods for interfaces are methods (subcommands) of the corresponding Tcl command.

       Each attribute of an interface is a configuration option for an object in the document tree.

CONVENIENCE COMMANDS AND METHODS

       DOM doesn't always provide an interface, method or attribute for every function required.   For  example,
       until  DOM Level 3 for was no standard for creating, parsing and serializing a document.  Sometimes using
       the standard DOM interface is awkward.  TclDOM provides a number of  non-standard  features  to  overcome
       these problems.

       A  major convenience is that each method of the DOMImplementation interface is also defined as a command.
       For example, rather than using dom::DOMImplementation create  to  create  a  new  document,  the  shorter
       command dom::create may be used.

       Implementations  may  also  provide direct access to specific features.  Refer to the documentation for a
       DOM implementation.

COMMANDS

   ::dom::DOMImplementation
       The ::dom::DOMImplementation command implements the DOMImplementation  DOM  interface.   It  is  used  to
       provide implementation-specific features not explicitly defined in the DOM specification.

   Command Options
       The following command options may be used.  These are also available as commands.

              hasFeature
                      hasFeature feature

              Provides a test for existence of a feature.  Returns 1 if a feature is implemented, 0 otherwise.

              create
                      create type

              Creates  the  root  node  of a new DOM document.  The document element type may be specified as an
              argument, in which case that element is created.  The return value is a  token  referring  to  the
              root  node of the newly created document.  A Tcl command is also created with the same name as the
              document's token.  This command is a shortcut for the ::dom::document command.

              Non-standard method.  DOM Level 2 introduced the createDocument method.

              createDocument
                      createDocument nsURI type doctype

              Creates the root node of a new DOM document.  The document element namespace  URI  and  local-name
              (element  type)  may  be  specified as an argument, in which case that element is created.  If the
              document type is given then the newly created document is configured to use  that  document  type.
              The  return  value  is  a  token  referring to the root node of the newly created document.  A Tcl
              command is also created with the same name as the document's token.  This command  is  a  shortcut
              for the ::dom::document command.

              createDocumentType
                      createDocumentType name publicid systemid internaldtd

              Creates  a  Document Type Declaration.  The return value is a token for the newly created document
              type declaration.  A Tcl command is also created with the same name as the document type's  token.
              This command is a shortcut for the ::dom::documenttype command.

              createNode
                      createNode token xpath

              May  create  a node in the document.   token specifies a context for the XPath expression given by
              xpath.  The expression must resolve to a node.  If the node  exists  then  no  further  action  is
              taken.   Otherwise  the  node  is  created.   The  token  of  the matched or newly created node is
              returned.

              Non-standard method.

              destroy
                      destroy token

              This method frees all data structures associated with a DOM document or node.  The  token argument
              must refer to a valid token for any document or any node in the tree of a document.

              When  the  given  token  refers  to  a DOM document then the entire document is destroyed; the Tcl
              namespace for the document is deleted and all document and node commands are deleted.  All  tokens
              for the document or nodes in the document become invalid.

              When  the token refers to a node the node is removed from the tree before it is destroyed.  If the
              node has children or attributes, they will also be destroyed.  The Tcl command  for  the  node  is
              deleted.

              isNode
                      isNode token

              Tests whether the given token is a valid token for some DOM node.

              Non-standard method.

              parse
                      parse xml option value

              This method parses XML formatted text given by the  xml argument and constructs a DOM tree for the
              document.  The return result is the token of the root node of the  newly  created  document.   The
              document will also have a Tcl command associated with it, see the createDocument method.

              This method uses the TclXML package to perform the parsing operation.  The dom package itself does
              not include an XML parser.  TclXML supports the  use  of  multiple  parser  implementations.   The
              -parser may be used to specify which XML parser class to use.

              All options not listed below are passed to the TclXML parser.

              Valid configuration options are:

                      -baseuri URI

                     Gives  the  Base  URI  for  the  document.  Any relative URIs specified in the document are
                     resolved against the given base URI. Examples of  relative  URIs  include  external  entity
                     references.

                     If  no Base URI is given then relative URIs are resolved in the current context, namely the
                     current working directory.

                      -parser  {} libxml2 tcl

                     This option specifies the name of a TclXML parser class to use to parse the XML data.   The
                     given parser class must be registered with the TclXML package.  If an empty string is given
                     then the default parser class is used.  If an explicit value is given and that parser class
                     is  not  registered then the command will fail, despite the fact that another parser may be
                     available.

                      -progresscommand script

                     This option specifies a Tcl command to be invoked from time to time while the DOM  tree  is
                     being constructed.  The script will be invoked after a certain number of element start tags
                     have been processed, given by the  -chunksize option.

                      -chunksize integer

                     This option specifies how many element start tags to process  before  invoking  the  script
                     given by the  -progresscommand option.

              selectNode
                      selectNode token xpath ? option value ... ?

              Resolves  the XPath location path given by  xpath.   token is the initial context for the location
              path.  Returns the resulting nodeset as a (static) Tcl list.

              The following options may be specified:

                      -namespaces

                     The value for this option is a list of prefix-URI pairs.  Each of these  pairs  defines  an
                     XML  Namespace  and  its  prefix  for the purposes of evaluating the XPath expression.  The
                     document itself may use a different prefix for the same XML Namespace.

                     This option may be repeated, in which case the lists of namespace pairs are merged and  all
                     of the XML Namespaces registered.

              Non-standard method.

              serialize
                      serialize token option value

              This method returns the XML formatted text corresponding to the node given by  token.  The text is
              guaranteed to be a well-formed XML document, unless the  -method option specifies a non-XML output
              method.

              Valid configuration options are:

                      -method xml|html|text

                     Specifies how the document tree is to be serialized as text.  The allowed values correspond
                     to the output methods defined by the XSLT v1.0 W3C Recommendation.  The xml method produces
                     output  that  conforms to the XML syntax.  The html method produces output that conforms to
                     HTML syntax.  The text method serializes only the text nodes of the document  and  disables
                     all output escaping.

                      -indent boolean

                     Specifies  that  the  output  is to be "pretty-printed", ie. element content is indented to
                     provide a visual indication of nesting levels.

                      -encoding encoding

                     Specifies that the output is to be encoded using the  given  character  encoding.   If  the
                     encoding  is utf-8 (the default) then the output is treated as a string within Tcl.  If any
                     other encoding is specified then the output is  treated  as  a  ByteArray  object  (ie.  as
                     binary).

                      -newline elementlist

                     This  option  specifies  a list of element types for which newline characters will be added
                     before and after the start and end tags for those elements upon serialization.  This option
                     is deprecated: the  -indent option should be used instead.

                     White  space  is  significant  in  XML, so the dom package never adds extra white space for
                     purposes of "pretty-printing" the XML source document.  On some  platforms,  such  as  VMS,
                     this  can  actually  cause  serious  problems  due to line length limitations.  This option
                     provides the convenience  of  adding  newlines  to  certain  nominated  element  types  for
                     formatting the source into lines.

                     Examples:

                     Suppose the following DOM document is constructed:

                     set doc [::dom::DOMImplementation create] set top [::dom::document createElement $doc Root]
                     set node [::dom::document createElement $top  First]  ::dom::document  createElement  $node
                     Second ::dom::document createElement $top First

                     Without the  -newline option the serialized document would be:

                     ::dom::DOMImplementation serialize $doc

                     <?xml version="1.0"?> <!DOCTYPE Root> <Root><First><Second/></First><First/></Root>

                     With the  -newline option the serialized document would be:

                     ::dom::DOMImplementation serialize $doc -newline First

                     <?xml version="1.0"?> <!DOCTYPE Root> <Root> <First> <Second/> </First> <First/> </Root>

              trim
                      trim token

              This  method removes any node containing only white space from the document tree of the node given
              by  token.

   ::dom::document
       This command implements the Document interface in the DOM specification.  The most  important  aspect  of
       this command are its factory methods for creating nodes.

       The methods accepted by this command are as follows:

              cget   cget token -option

              This method returns the value of the given configuration option.

              configure
                     configure token option value

              This method sets the value of the given configuration options.

              Valid configuration options are:

                      -doctype

                     Specifies the token of the Document Type Declaration node.

                     This  is  a read-only option.  Use the factory method to create a Document Type Declaration
                     node.

                      -documentElement

                     Specifies the token of the document's document element node.  A document node may only have
                     one document element, but may have other types of children (such as comments).

                     This is a read-only option.  Use the factory method to create the document element node.

                      -keep normal|implicit

                     Specifies the memory management strategy for the document. The value  normal specifies that
                     the document must be explicitly destroyed in order for resources consumed by  the  document
                     to  be freed. The value  implicit specifies that the resources consumed by the document are
                     freed when there are no longer any references to the document. Note that object  shimmering
                     can prematurely remove document references.

                     The default value is  implicit.

                      -implementation

                     Specifies the token of the document's implementation.

                     This is a read-only option.

              createElement
                     createElement token type

              This  method  creates an element node as a child of the given node specified by  token and returns
              the new node's token as its  result.    token  must  be  a  node  of  type  element,  document  or
              documentFragment.  The new, child element is added as the last child of  token's list of children.
              The new element's type is given by the  type argument.  The new element is created with  an  empty
              attribute list.

              A  Tcl  command is created with the same name as the new node's token.  This command is a shortcut
              for the ::dom::node command.

              createElementNS
                     createElementNS token nsuri qualname

              This method creates an element node in an XML Namespace as a child of the given node specified  by
              token  and  returns  the  new  node's token as its result.   token must be a node of type element,
              document or documentFragment.  The new, child element is added as the last child of  token's  list
              of  children.   The new element is created in the XML Namespace given by the namespace URI  nsuri.
              The new element's qualifed name (QName) is given by the  qualname argument.  Qualified names  have
              the form prefix:local-part.  The new element is created with an empty attribute list.

              A  Tcl  command is created with the same name as the new node's token.  This command is a shortcut
              for the ::dom::node command.

              createDocumentFragment
                     createDocumentFragment token

              This method creates a documentFragment node as a child of the given node specified by   token  and
              returns  the  new  node's token as its result.   token must be a node of type element, document or
              documentFragment.

              A Tcl command is created with the same name as the new node's token.  This command is  a  shortcut
              for the ::dom::node command.

              createTextNode
                     createTextNode token text

              This  method  creates a textNode node as a child of the given node specified by  token and returns
              the new node's token as its  result.    token  must  be  a  node  of  type  element,  document  or
              documentFragment.   The  new,  child  textNode  is  added  as  the  last child of  token's list of
              children.  The new textNode is created with its value set to  text.

              A Tcl command is created with the same name as the new node's token.  This command is  a  shortcut
              for the ::dom::node command.

              createComment
                     createComment token data

              This  method  creates  a comment node as a child of the given node specified by  token and returns
              the new node's token as its  result.    token  must  be  a  node  of  type  element,  document  or
              documentFragment.  The new, child comment is added as the last child of  token's list of children.
              The new comment is created with its value set to  data.

              A Tcl command is created with the same name as the new node's token.  This command is  a  shortcut
              for the ::dom::node command.

              createCDATASection
                     createCDATASection token text

              TclDOM  does  not  distinguish between textNodes and CDATASection nodes.  Accordingly, this method
              creates a textNode node as a child of the given node specified  by   token  and  returns  the  new
              node's  token as its result.   token must be a node of type element, document or documentFragment.
              The new, child textNode is added as the last child of  token's list of children.  The new node  is
              created with its value set to  text and has the attribute  -cdatasection set to the value 1.

              A  Tcl  command is created with the same name as the new node's token.  This command is a shortcut
              for the ::dom::node command.

              createProcessingInstruction
                     createProcessingInstruction token target data

              This method creates a processingInstruction node as a child of the given node specified by   token
              and  returns  the new node's token as its result.   token must be a node of type element, document
              or documentFragment.  The new, child processingInstruction is added as the last child of   token's
              list  of  children.   The  new  node  is created with its name set to  target and its value set to
              data.

              A Tcl command is created with the same name as the new node's token.  This command is  a  shortcut
              for the ::dom::node command.

              createAttribute
                     createAttribute token name

              This  method  creates  an attribute node for the given element specified by  token and returns the
              new node's token as its result.   token must be a node of type  element.   The  new  attribute  is
              created with its name set to  name and an empty value.

              A  Tcl  command is created with the same name as the new node's token.  This command is a shortcut
              for the ::dom::node command.

              This method is included for completeness with respect to the  DOM  specification.   The  preferred
              method for setting element attributes is to use the ::dom::element command.

              createEntity
                     createEntity token

              Not currently implemented.

              createEntityReference
                     createEntityReference token name

              Not currently implemented.

              createEvent
                     createEvent token name

              This  method  creates an event node in the document specified by  token and returns the new node's
              token as its result.   token must be a node of type document.  The  event  type  is  specified  by
              name.

              A  Tcl  command is created with the same name as the new node's token.  This command is a shortcut
              for the ::dom::event command.

              getElementsByTagName
                     getElementsByTagName token name

              This method searches the node given by the argument  token for child elements with a type matching
              the  argument   name.   The  name * matches all elements.  All descendants of  token are searched.
              This method returns a "live-list"; the return result of this method is the name of a Tcl variable,
              the content of which is a Tcl list containing tokens for all elements that match.

              dtd    dtd validate

              This  method  performs DTD validation upon the document.  If the method returns successfully, then
              the document is valid.  Otherwise the document is invalid and  the  error  returned  contains  the
              reason.

              relaxng
                     submethod ? args ... ?

              This  method performs RELAX NG Schema validation upon the document.  RELAX NG Schema validation is
              performed in two steps.  First the document is compiled  into  a  schema  document.   Second,  the
              schema document is used to schema-validate an instance document.

              Example:

              set  schema  [dom::parse  $XML]  $schema  relaxng  compile set instance [dom::parse $XML2] $schema
              relaxng validate $instance

              If the document is changed after compiling, then schema document must be recompiled.

              schema submethod ? args ... ?

              This method performs XML Schema validation upon the document.  Schema validation is  performed  in
              two steps.  First the document is compiled into a schema document.  Second, the schema document is
              used to schema-validate an instance document.

              Example:

              set schema [dom::parse $XML] $schema schema compile set instance [dom::parse $XML2] $schema schema
              validate $instance

              If the document is changed after compiling, then schema document must be recompiled.

   dom::node
       This command implements generic functions for DOM nodes.

       The methods accepted by this command are as follows:

              cget   cget token option

              This method returns the value of the given configuration option for the node given by  token.

              configure
                     configure token option value

              This method sets the value of the given configuration option for the node given by  token.

              Valid configuration options are as follows:

                      -nodeName

                     Returns the node name.  This is a read-only option.

                     The  DOM  specification  gives  the  meaning  of  names  for different types of nodes.  For
                     example, the  -nodeName option of an element node is the element type.

                      -nodeType

                     Returns the type of the node given by  token.  This is a read-only option.

                      -parentNode

                     Returns the parent node of the node given by  token.  This is a read-only option.

                      -childNodes

                     Returns the name of a Tcl variable which contains a list of the children of the node  given
                     by  token.  The variable contains the "live" list of children.  This is a read-only option.

                      -firstChild

                     Returns the first child node of the node given by  token.  This is a read-only option.

                      -lastChild

                     Returns the last child node of the node given by  token.  This is a read-only option.

                      -previousSibling

                     Returns the parent's child node which appears before this node.  If this child is the first
                     child of its parent then returns an empty string.  This is a read-only option.

                      -nextSibling

                     Returns the parent's child node which appears after this node.  If this child is  the  last
                     child of its parent then returns an empty string.  This is a read-only option.

                      -attributes

                     Returns  the  name of a Tcl array variable which contains the attribute list for an element
                     node.  If the node is not an element type node then returns an empty string.   The  indices
                     of  the  array  are  attribute  names,  and  the  values  of  the  array elements are their
                     corresponding attribute values.  This is a read-only option.

                      -nodeValue data

                     Specifies the value of a node.  The DOM specification  gives  the  meaning  of  values  for
                     different  types  of  nodes.  For example, the  -nodeValue option of a textNode node is the
                     node's text.

                      -id

                     Read-only. Returns a unique identifier for the node. The same identifier is always returned
                     for the same node.

              insertBefore
                     insertBefore token newchild refchild

              This  method  removes  the  node  given by  newchild from its parent.  If no  refchild argument is
              given then  newchild is appended to  token's list of children.  If the  refchild argument is given
              then this method adds  newchild as a child of  token.  The new child node is positioned before the
              node  refchild in  token's list of children.  Returns an empty string.

              replaceChild
                     replaceChild token newchild oldchild

              This method removes the node given by  newchild from its parent.  It then also  removes  the  node
              given  by   oldchild  from   token.    newchild  is then added as a child of  token in  oldchild's
              original position in the list of children.  The method returns the token  oldchild, which will now
              have no parent.

              removeChild
                     removeChild token oldchild

              This  method  removes the node given by  oldchild from its parent,  token.  The method returns the
              token  oldchild, which will now have no parent.

              appendChild
                     appendChild token newchild

              This method removes the node given by  newchild from its parent.   newchild is  then  appended  to
              the end of the list of children for node  token.  The method returns the token  newchild.

              hasChildNodes
                     hasChildNodes token

              Returns 1 if the given node has any child nodes, 0 otherwise.

              isSameNode
                     isSameNode token ref

              Returns 1 if the given node is the same node as the node given by the  ref token, 0 otherwise.

              cloneNode
                     cloneNode token deep

              This  method makes a copy the node given by  token.  If the argument  deep is not specified or has
              the value 0 then only the node itself is copied, not its children.  If the argument  deep has  the
              value  1 then  token's children are also copied recursively.  This method returns the token of the
              newly created node.  This new node will have no parent.

              children
                     children token

              This is a convenience method which returns the list of  child  nodes  for  the  given  node  as  a
              (static) Tcl list.

              This is not a standard DOM method for this interface.

              parent parent token

              This is a convenience method which returns the parent node for the given node.

              This is not a standard DOM method for this interface.

              path   path token

              Returns a Tcl list of the ancestor nodes of the given node, starting with the root node.

              This is not a standard DOM method for this interface.

              createNode
                     createNode token xpath

              May  create  nodes in order to satisfy the given XPath location path.  The initial context for the
              location path is the node  token.  For more detail, see the ::dom::createNode command.

              This is not a standard DOM method for this interface.

              selectNode
                     selectNode token xpath

              Returns a (static) Tcl list of nodes selected by the XPath  location  path   xpath.   The  initial
              context  for  the  location  path  is the node  token.  For more detail, see the ::dom::selectNode
              command.

              This is not a standard DOM method for this interface.

              stringValue
                     stringValue token

              Returns the string value of the node given by  token.  The string value of a node  is  defined  by
              the  XPath  specification:  for  element nodes it is the concatenation of the string values of all
              descendant text nodes, for text nodes it is the node's character data value, for  attribute  nodes
              it is the attribute value, for comment nodes it is the comment data and for processing instruction
              nodes it is the PI data.

              This is not a standard DOM method for this interface.

              addEventListener
                     addEventListener token type listener ? option value ... ?

              Register an event listener for the node given by  token listening for events of type   type.   The
              event mechanism functions as described in the W3C DOM Level 2 Event module.

              When  an event of type  type occurs the script  listener is evaluated, in the global context.  The
              token of the event node is appended to the script.

              If the  listener argument is omitted then the listener for the given event type is returned.

              Valid options are:

                      -usecapture boolean

                     If true the listener is triggered in the event capturing phase.  If false the  listener  is
                     triggered in the event bubbling phase.

              removeEventListener
                     removeEventListener token type listener ? option value ... ?

              Removes  an event listener previously registered for the node given by  token listening for events
              of type  type.

              Valid options are:

                      -usecapture boolean

                     If true the capturing listener is removed.  If false the bubbling listener is removed.

              dispatchEvent
                     dispatchEvent token event

              Dispatches the event given by  event with target node  token.  The event  mechanism  functions  as
              described  in  the  W3C  DOM  Level  2  Event module.  The event enters the capturing phase first,
              followed by the bubbling phase.  During each phase any event listeners  registered  for  the  same
              event  type  as  the  event   event  are  triggered; their script is evaluated.  Unless the script
              invokes the stopPropagation method of the dom::event command, all registered event listeners  will
              be triggered.  The order in which listeners registered at a particular node for a particular phase
              are triggered is undefined.

   dom::element
       This command provides functions for element type nodes.

       Valid methods for this command are as follows:

              cget   cget token option

              This method returns the current  setting  of  configuration  options  for  an  element.   See  the
              configure method for the list of valid configuration options.

              configure
                     configure token option value

              This  method  sets  configuration  options for an element.  Note that element type nodes only have
              read-only options.

              Valid configuration options are as follows:

                      -tagName name
                            The tag name, or element type, of this element.

                      -empty boolean

                     Sets whether this element was specified as an empty element when the document  was  parsed.
                     That is, XML empty element syntax such as <Empty/> was used.

                     This  option  has no effect upon output (serialization) of the XML document.  Empty element
                     syntax is automatically used where appropriate.

              getAttribute
                     getAttribute token name

              This method returns the attribute value of the attribute given by  name.  If  the  attribute  does
              not exist, then an empty string is returned.

              setAttribute
                     setAttribute token name value

              This  method  sets  the attribute value of the attribute given by  name.  If the attribute already
              exists then its value is replaced, otherwise the attribute is created.

              removeAttribute
                     removeAttribute token name

              This method deletes the attribute given by  name.  If the attribute does not exist then the method
              has no effect.

              getAttributeNode
                     getAttributeNode token name

              Not implemented.

              setAttributeNode
                     setAttributeNode token name

              Not implemented.

              removeAttributeNode
                     removeAttributeNode token name

              Not implemented.

              getAttributeNS
                     getAttributeNS token ns name

              This  method returns the attribute value of the attribute given by  name in the XML namespace  ns.
              If the attribute does not exist, then an empty string is returned.

              setAttributeNS
                     setAttributeNS token ns name value

              This method sets the attribute value of the attribute given by  name in the XML namespace  ns.  If
              the attribute already exists then its value is replaced, otherwise the attribute is created.

              removeAttributeNS
                     removeAttributeNS token ns name

              This  method deletes the attribute given by  name in the XML namespace  ns.  If the attribute does
              not exist then the method has no effect.

              getElementsByTagName
                     getElementsByTagName token name

              This method searches the node given by the argument  token for descendant child  elements  with  a
              type  matching the argument  name.  The wildcard character * matches any element type.  The return
              result is a "live-list" which is represented by a Tcl variable.  This method returns the  name  of
              the Tcl variable that contains the list of tokens that match.

              normalize
                     normalize token

              This  method  recursively  coalesces  textNodes  within the children of the given node.  textNodes
              which are adjacent in the DOM tree cannot be distinguished in the serialized XML document.

   dom::processinginstruction
       This command provides functions for processingInstruction type nodes.

       Valid methods for this command are as follows:

              cget   cget token option

              This method returns the current  setting  of  configuration  options  for  an  element.   See  the
              configure method for the list of valid configuration options.

              configure
                     configure token option value

              This method sets configuration options for a processing instruction.

              Valid configuration options are as follows:

                      -target name
                            This  option  sets  the  target  of the processing instruction.  This is a read-only
                            configuration option.

                      -data data

                     This option sets the data of the processing instruction.

   dom::event
       This command provides functions for event type nodes.

       Valid methods for this command are as follows:

              cget   cget token

              This method retrieves configuration options for an event.

              Valid configuration options are as follows:

                      -altKey
                            This option determines whether the ALT modifier key  has  been  specified  for  this
                            event.

                      -attrName -timeStamp
                            This option gives the name of the attribute associated with this event.

                     This  option  gives  the  time  at  which the event was posted.  The value is the number of
                     milliseconds since the epoch, which is compatible with the Tcl clock command.

                     The implementation of this method depends on the Tcl_GetTime  function.This  function  only
                     became  publically  available  in Tcl 8.4.  If a version of Tcl prior to 8.4 is being used,
                     then this option will have the value 0.

                      -type The type of this event.

                      -view This option gives whether the view of the event.

              configure
                     configure token option value

              This method sets the configuration options for an event.  However, all  event  options  are  read-
              only.  See the cget method for the list of valid configuration options.

              stopPropagation
                     stopPropagation token

              This method cancels further propagation of the event.

              Invoking this method does not prevent event listeners at the current node from being triggered.

              preventDefault
                     preventDefault token

              This method stops the default action for this event from occurring.

              initEvent
                     initEvent token type bubbles cancelable

              Initialise the event.

               type  gives  the  type of the event.  Any of the event types defined by the W3C DOM Level 2 Event
              module may be specified, or a user-defined event type may be used instead.

               bubbles indicates whether the event will enter the bubbling  phase  after  the  capturing  phase.
              cancelable indicates whether the event may be cancelled.

              initUIEvent
                     initUIEvent token type bubbles cancelable view detail

              Initialise a user interface event.  See initEvent for further information.

               view gives the view for the event (not supported by TclDOM).   detail provides extra data for the
              event.

              initMouseEvent
                     initMouseEvent token type bubbles cancelable view detail screenX  screenY  clientX  clientY
                     ctrlKey altKey shiftKey metaKey button relatedNode

              Initialise a mouse event.  See initUIEvent for further information.

               screenX  and   screenY  give  the coordinates at which the event occurred relative to the screen.
              screenX and  screenY give the coordinates at which the event occurred relative to the window.

               ctrlKey,  altKey,  shiftKey,  metaKey indicate whether the respective modifier  key  was  pressed
              when the event occurred.

               button indicates which button, if any, was pressed when the event occurred.

               relatedNode specifies that a DOM node is associated with the event.

              initMutationEvent
                     initMutationEvent token type bubbles cancelable relatedNode prevValue newValue attrName

              Initialise a tree mutation event event.  See initEvent for further information.

               relatedNode  specifies  a  DOM  node  to associate with the event.   prevValue gives the previous
              value of the node.   newValue gives the new value of the node.   attrName gives the  name  of  the
              attribute where the event is modifying an attribute value.

              postUIEvent
                     postUIEvent token type ? option value ... ?

              Non-standard  convenience  method  that handles posting an user interface event with  token as the
              target node.  This method performs the following functions:

                     Create an event node,

                     Initialise the event node (using default values where required),

                     Dispatch the event,

                     Destroy the event node.

               type gives the event type.

              The following options are valid:

                      -bubbles

                     Indicates whether the event bubbles.

                      -cancelable

                     Indicates whether the event can be cancelled.

                      -view

                     The view.

                      -detail

                     Extra data for the event.

              postMouseEvent
                     postMouseEvent token type ? option value ... ?

              Non-standard convenience method that handles posting a mouse event with  token as the target node.
              This method performs the following functions:

                     Create an event node,

                     Initialise the event node (using default values where required),

                     Dispatch the event,

                     Destroy the event node.

               type gives the event type.

              The following options are valid:

                      -bubbles

                     Indicates whether the event bubbles.

                      -cancelable

                     Indicates whether the event can be cancelled.

                      -view

                     The view.

                      -detail

                     Extra data for the event.

                      -screenX

                     Gives the screen X coordinate.

                      -screenY

                     Gives the screen Y coordinate.

                      -clientX

                     Gives the window X coordinate.

                      -clientY

                     Gives the window Y coordinate.

                      -ctrlKey

                     Indicates whether the control modifier key was pressed.

                      -altKey

                     Indicates whether the ALT modifier key was pressed.

                      -shiftKey

                     Indicates whether the shift modifier key was pressed.

                      -metaKey

                     Indicates whether the meta modifier key was pressed.

                      -button

                     Gives the button pressed.

                      -relatedNode

                     Gives a node to associate with the event.

              postMutationEvent
                     postMutationEvent token type ? option value ... ?

              Non-standard  convenience  method  that handles posting a mutation event with  token as the target
              node.  This method performs the following functions:

                     Create an event node,

                     Initialise the event node (using default values where required),

                     Dispatch the event,

                     Destroy the event node.

               type gives the event type.

              The following options are valid:

                      -bubbles

                     Indicates whether the event bubbles.

                      -cancelable

                     Indicates whether the event can be cancelled.

                      -relatedNode

                     Gives a node to associate with the event.

                      -prevValue

                     Gives the previous value of the target node.

                      -newValue

                     Gives the new value of the target node.

                      -attrName

                     Gives the name of the attribute modified.

ERRORS

       If an operation results in an error condition, an error message is returned as  a  structured  Tcl  list.
       The list has members as follows:

       {domain level code node line message int1 int2 string1 string2 string3}

       The format of the list is described in the TclXML manual page.

IMPLEMENTATIONS

       This section documents the various implmentations of the TclDOM API.

   Tcl Implementation
       The Tcl implementation is provided by the dom::tcl package.

   Limitations
       This implementation is not able to preform the following functions:

              *  Validation: DTD, XML Schema or RelaxNG validation are not supported.

              *   Character  encodings: The TclDOM/tcl implementation itself does not handle character encodings
              other than utf-8.  Character encodings are handled by Tcl itself.

   libxml2 Implementation
       The TclDOM/libxml2 implementation is a wrapper for the Gnome libxml2 library.   It  is  provided  by  the
       dom::libxml2  package.   It  is  a high-performance library, making use of Tcl objects for fast access to
       tree nodes.

   Limitations
              *  The TclXML/libxml2 parser must be used to parse an XML document.  It is not possible to use any
              other parser class.

              *  The importNode method has not been implemented.