This procedure is defined in the server but not documented via ad_proc or proc_doc and may be intended as a private interface.
The procedure is defined as:
proc ::xml::parser {args} {
variable ParserCounter
if {[llength $args] > 0} {
set name [lindex $args 0]
set args [lreplace $args 0 0]
} else {
set name parser[incr ParserCounter]
}
if {[namespace which [namespace current]::$name] ne {}} {
return -code error "unable to create parser object \"[namespace current]::$name\" command"
}
# Initialise state variable and object command
upvar \#0 [namespace current]::$name parser
set sgml_ns [namespace parent]::sgml
array set parser [list name $name -final 1 -elementstartcommand ${sgml_ns}::noop -elementendcommand ${sgml_ns}::noop -characterdatacommand ${sgml_ns}::noop -processinginstructioncommand ${sgml_ns}::noop -externalentityrefcommand ${sgml_ns}::noop -xmldeclcommand ${sgml_ns}::noop -doctypecommand ${sgml_ns}::noop -warningcommand ${sgml_ns}::noop -statevariable [namespace current]::$name -reportempty 0 internaldtd {} ]
proc [namespace current]::$name {method args} "eval ParseCommand $name \$method \$args"
eval ParseCommand [list $name] configure $args
return [namespace current]::$name
}