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 sgml::ParseEvent:ElementOpen {tag attr opts args} {
variable Name
variable Wsp
upvar $opts options
upvar #0 $options(-statevariable) state
array set cfg {-empty 0}
array set cfg $args
if {$options(-normalize)} {
set tag [string toupper $tag]
}
# Update state
lappend state(stack) $tag
# Parse attribute list into a key-value representation
if {[string compare $options(-parseattributelistcommand) {}]} {
if {[catch {uplevel #0 $options(-parseattributelistcommand) [list $attr]} attr]} {
if {[lindex $attr 0] ne "unterminated attribute value" } {
uplevel #0 $options(-errorcommand) [list $attr around line $state(line)]
set attr {}
} else {
# It is most likely that a ">" character was in an attribute value.
# This manifests itself by ">" appearing in the element's text.
# In this case the callback should return a three element list;
# the message "unterminated attribute value", the attribute list it
# did manage to parse and the remainder of the attribute list.
lassign $attr msg attlist brokenattr
upvar text elemText
if {[string first > $elemText] >= 0} {
# Now piece the attribute list back together
regexp ($Name)[cl $Wsp]*=[cl $Wsp]*("|')(.*) $brokenattr discard attname delimiter attvalue
regexp (.*)>([cl ^>]*)\$ $elemText discard remattlist elemText
regexp ([cl ^$delimiter]*)${delimiter}(.*) $remattlist discard remattvalue remattlist
append attvalue >$remattvalue
lappend attlist $attname $attvalue
# Complete parsing the attribute list
if {[catch {uplevel #0 $options(-parseattributelistcommand) [list $remattlist]} attr]} {
uplevel #0 $options(-errorcommand) [list $attr around line $state(line)]
set attr {}
set attlist {}
} else {
lappend attlist {*}$attr
}
set attr $attlist
} else {
uplevel #0 $options(-errorcommand) [list $attr around line $state(line)]
set attr {}
}
}
}
}
set empty {}
if {$cfg(-empty) && $options(-reportempty)} {
set empty {-empty 1}
}
# Invoke callback
uplevel #0 $options(-elementstartcommand) [list $tag $attr] $empty
return {}
}