manpagez: man pages & more
man tcldom(n)
Home | html | info | man

tcldom(n)                                                            tcldom(n)



______________________________________________________________________________


NAME

       ::dom::DOMImplementation  -  Tcl  language binding for the W3C Document
       Object Model


SYNOPSIS

       package require dom

       dom2.5

       ::dom::dom::tcl::dom::libxml2

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

       ::dom::create element

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

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

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

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

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

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

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



DESCRIPTION

       TclDOM is a Tcl language binding for the  (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-stan-
       dard 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  inter-
       faces.  This manual is not a tutorial on how to use the DOM.


       TclDOM also provides several implementations of the API, with a layered
       architecture.  A generic layer provides a stable API  to  the  applica-
       tion, and specific implementations may register themselves.  Currently,
       three implementations exists: a pure-Tcl implementation, a C  implemen-
       tation  (based  on TclDOMPro) and another C implementation based on the
       Gnome libxml2 & gdome2 libraries.



PACKAGES AND NAMESPACES

       The TclDOM generic layer defines the  package and also a Tcl  namespace
       using that name.  The generic layer also uses the package name .


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



              Tcl implementation

              Package , Tcl namespace ::dom::tcl.


              TclDOMPro

              Package , Tcl namespace ::dom::c.


              libxml2

              Package , Tcl namespace ::dom::libxml2.




TOKENS

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


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



DOM INTERFACES

       Each  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 function-
       ality, for example the  interface.


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


       Each  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   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 fea-
       tures.  Refer to the documentation for a DOM implementation.



COMMANDS

       ::dom::DOMImplementation


       The ::dom::DOMImplementation command implements the  DOM  inter-
       face.   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  if a  feature  is
                     implemented,   otherwise.   Uses the
                     default DOM implementation.


                     create  create type

                     Creates the root node of a  new  DOM
                     document,   using  the  default  DOM
                     implementation.  The  document  ele-
                     ment  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.


                     createDocument  createDocument nsURI
                     type doctype

                     Creates  the  root node of a new DOM
                     document,  using  the  default   DOM
                     implementation.   The  document ele-
                     ment namespace  URI  and  local-name
                     (element  type)  may be specified as
                     an argument, in which case that ele-
                     ment  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.


                     createDocumentType   createDocument-
                     Type  token  name  publicid systemid
                     internaldtd

                     Creates a Document Type Declaration,
                     using  the  default  DOM implementa-
                     tion.  The return value is  a  token
                     for  the newly created document type
                     declaration.


                     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.


                     destroy  destroy token

                     This method frees  all  data  struc-
                     tures  associated  with  a DOM node.
                     The  token argument must refer to  a
                     valid token for any node in the doc-
                     ument tree.   The  node  is  removed
                     from   the   tree   before   it   is
                     destroyed.  If the  node  has  chil-
                     dren, they will also be destroyed.


                     isNode  isNode token

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


                     parse  parse xml ? option value?

                     This  method  parses  XML  formatted
                     text given by the  xml argument  and
                     constructs  a DOM tree for the docu-
                     ment.   The  return  result  is  the
                     token  of the root node of the newly
                     created document.


                     This method requires an  event-based
                     XML  parser  to be loaded to perform
                     the parsing operation.  The  package
                     itself   does  not  include  an  XML
                     parser.  Support for the use of   is
                     provided.  Any other Tcl event-based
                     XML parser implementing  the  TclXML
                     API  may also be used.  The  -parser
                     may be used  to  specify  which  XML
                     parser to use.


                     In  some circumstances, a DOM imple-
                     mentation may parse the XML document
                     directly,  for  example libxml2.  In
                     this case, it may not be possible to
                     interpose  on the parsing operation.


                     Valid configuration options are:



                             -parser
                            ?     {}
                            expat
                            tcl?

                            This
                            option
                            speci-
                            fies
                            which
                            XML
                            parser
                            to   use
                            to parse
                            the  XML
                            data.
                            If    an
                            empty
                            string
                            is given
                            then the
                            default
                            behav-
                            iour
                            described
                            above is
                            used.
                            The
                            value
                            expat
                            speci-
                            fies
                            that the
                            Expat
                            parser
                            must  be
                            used.
                            The
                            value
                            tcl
                            speci-
                            fies
                            that the
                            Tcl-only
                            parser
                            must  be
                            used.
                            If    an
                            explicit
                            value is
                            given
                            and that
                            parser
                            cannot
                            be
                            loaded
                            then the
                            command
                            will
                            fail,
                            despite
                            the fact
                            that
                            another
                            parser
                            may   be
                            avail-
                            able.


                             -pro-
                            gress-
                            command
                            script

                            This
                            option
                            speci-
                            fies   a
                            Tcl com-
                            mand  to
                            be
                            invoked
                            from
                            time  to
                            time
                            while
                            the  DOM
                            tree  is
                            being
                            con-
                            structed.
                            The
                            script
                            will  be
                            invoked
                            after  a
                            certain
                            number
                            of  ele-
                            ment
                            start
                            tags
                            have
                            been
                            pro-
                            cessed,
                            given by
                            the
                            -chunk-
                            size
                            option.


                             -chunk-
                            size
                            integer

                            This
                            option
                            speci-
                            fies how
                            many
                            element
                            start
                            tags  to
                            process
                            before
                            invoking
                            the
                            script
                            given by
                            the
                            -pro-
                            gress-
                            command
                            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 node-
                     set  as  a  Tcl
                     list.


                     The   following
                     options  may be
                     specified:



                             -names-
                            paces

                            The
                            value
                            for
                            this
                            option
                            is
                            a
                            list
                            of
                            pre-
                            fix-
                            URI
                            pairs.
                            Each
                            of
                            these
                            pairs
                            defines
                            an
                            XML
                            Names-
                            pace
                            and
                            its
                            pre-
                            fix
                            for
                            the
                            pur-
                            poses
                            of
                            eval-
                            u-
                            at-
                            ing
                            the
                            XPath
                            expres-
                            sion.
                            The
                            doc-
                            u-
                            ment
                            itself
                            may
                            use
                            a
                            dif-
                            fer-
                            ent
                            pre-
                            fix
                            for
                            the
                            same
                            XML
                            Names-
                            pace.


                            This
                            option
                            may
                            be
                            repeated,
                            in
                            which
                            case
                            the
                            lists
                            of
                            names-
                            pace
                            pairs
                            are
                            merged
                            and
                            all
                            of
                            the
                            XML
                            Names-
                            paces
                            reg-
                            is-
                            tered.



                     seri-
                            al-
                            ize
                            seri-
                            al-
                            ize
                            token
                            ?
                            option
                            value?

                     This
                     method
                     returns
                     the
                     XML
                     for-
                     mat-
                     ted
                     text
                     cor-
                     re-
                     spond-
                     ing
                     to
                     the
                     node
                     given
                     by
                     token.
                     The
                     text
                     is
                     guar-
                     an-
                     teed
                     to
                     be
                     a
                     well-
                     formed
                     XML
                     doc-
                     u-
                     ment,
                     unless
                     the
                     -method
                     option
                     spec-
                     i-
                     fies
                     a
                     non-
                     XML
                     out-
                     put
                     method.


                     Valid
                     con-
                     fig-
                     u-
                     ra-
                     tion
                     options
                     are:



                             -new-
                            line
                            ele-
                            mentlist

                            This
                            option
                            spec-
                            i-
                            fies
                            a
                            list
                            of
                            ele-
                            ment
                            types
                            for
                            which
                            new-
                            line
                            char-
                            ac-
                            ters
                            will
                            be
                            added
                            before
                            and
                            after
                            the
                            start
                            and
                            end
                            tags
                            for
                            those
                            ele-
                            ments
                            upon
                            seri-
                            al-
                            iza-
                            tion.


                            White
                            space
                            is
                            sig-
                            nif-
                            i-
                            cant
                            in
                            XML,
                            so
                            the
                            pack-
                            age
                            never
                            adds
                            extra
                            white
                            space-
                            for
                            pur-
                            poses
                            of
                            "pretty-
                            print-
                            ing"
                            the
                            XML
                            source
                            doc-
                            u-
                            ment.
                            On
                            some
                            plat-
                            forms,
                            such
                            as
                            VMS,
                            this
                            can
                            actu-
                            ally
                            cause
                            seri-
                            ous
                            prob-
                            lems
                            due
                            to
                            line
                            length
                            lim-
                            i-
                            ta-
                            tions.
                            This
                            option
                            pro-
                            vides
                            the
                            con-
                            ve-
                            nience
                            of
                            adding
                            new-
                            lines
                            to
                            cer-
                            tain
                            nom-
                            i-
                            nated
                            ele-
                            ment
                            types
                            for
                            for-
                            mat-
                            ting
                            the
                            source
                            into
                            lines.


                            Exam-
                            ples:


                            Sup-
                            pose
                            the
                            fol-
                            low-
                            ing
                            DOM
                            doc-
                            u-
                            ment
                            is
                            con-
                            structed:


                                   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



                            With-
                            out
                            the
                            -new-
                            line
                            option
                            the
                            seri-
                            al-
                            ized
                            doc-
                            u-
                            ment
                            would
                            be:


                                   ::dom::DOMImplementation serialize $doc



                            With
                            the
                            -new-
                            line
                            option
                            the
                            seri-
                            al-
                            ized
                            doc-
                            u-
                            ment
                            would
                            be:


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




                     trim
                            trim
                            token

                     This
                     method
                     removes
                     any
                     node
                     con-
                     tain-
                     ing
                     only
                     white
                     space
                     from
                     the
                     doc-
                     u-
                     ment
                     tree
                     of
                     the
                     node
                     given
                     by
                     token.



       ::dom::doc-
       u-
       ment


       This
       com-
       mand
       imple-
       ments
       the
       Doc-
       u-
       ment
       inter-
       face
       in
       the
       DOM
       spec-
       i-
       fi-
       ca-
       tion.
       The
       most
       impor-
       tant
       aspect
       of
       this
       com-
       mand
       are
       its
       fac-
       tory
       meth-
       ods
       for
       cre-
       at-
       ing
       nodes.


       The
       meth-
       ods
       accepted
       by
       this
       com-
       mand
       are
       as
       fol-
       lows:



       dom::node


       This
       com-
       mand
       imple-
       ments
       generic
       func-
       tions
       for
       DOM
       nodes.


       The
       meth-
       ods
       accepted
       by
       this
       com-
       mand
       are
       as
       fol-
       lows:



       dom::ele-
       ment


       This
       com-
       mand
       pro-
       vides
       func-
       tions
       for
       ele-
       ment
       type
       nodes.


       Valid
       meth-
       ods
       for
       this
       com-
       mand
       are
       as
       fol-
       lows:



       dom::pro-
       cessin-
       gin-
       struc-
       tion


       This
       com-
       mand
       pro-
       vides
       func-
       tions
       for
       pro-
       cessin-
       gIn-
       struc-
       tion
       type
       nodes.


       Valid
       meth-
       ods
       for
       this
       com-
       mand
       are
       as
       fol-
       lows:



       dom::event


       This
       com-
       mand
       pro-
       vides
       func-
       tions
       for
       event
       type
       nodes.


       Valid
       meth-
       ods
       for
       this
       com-
       mand
       are
       as
       fol-
       lows:





IMPLE-

       MEN-
       TA-
       TIONS

       This
       sec-
       tion
       doc-
       u-
       ments
       the
       var-
       i-
       ous
       impl-
       men-
       ta-
       tions
       of
       the
       TclDOM
       API.

       Tcl
              Imple-
              men-
              ta-
              tion

       The
       Tcl
       imple-
       men-
       ta-
       tion
       is
       pro-
       vided
       by
       the
       pack-
       age.


       It
       is
       a
       ref-
       er-
       ence
       imple-
       men-
       ta-
       tion,
       and
       imple-
       ments
       the
       TclDOM
       API
       as
       described
       above.


       A
       DOM
       tree
       using
       this
       imple-
       men-
       ta-
       tion
       may
       be
       cre-
       ated
       using
       the
       dom::tcl::cre-
       ate
       com-
       mand.



       libxml2
       Imple-
       men-
       ta-
       tion


       The
       TclDOM/libxml2
       imple-
       men-
       ta-
       tion
       is
       a
       wrap-
       per
       for
       the
       .
       It
       is
       pro-
       vided
       by
       the
       pack-
       age.
       It
       is
       a
       high-
       per-
       for-
       mance
       library,
       mak-
       ing
       use
       of
       Tcl
       objects
       for
       fast
       access
       to
       tree
       nodes.


       A
       DOM
       tree
       using
       this
       imple-
       men-
       ta-
       tion
       may
       be
       cre-
       ated
       using
       the
       dom::libxml2::cre-
       ate
       com-
       mand.





              Notes



Tcl Built-In Commands                 Tcl                            tcldom(n)

Mac OS X 10.8 - Generated Thu Sep 13 10:31:55 CDT 2012
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.