caldav::CalDAV instproc returnXMLelement (public)

 <instance of caldav::CalDAV[i]> returnXMLelement resource node

Defined in /var/www/openacs.org/packages/caldav/tcl/caldav-procs.tcl

Return a pair of values indicating success and the value to be returned. While the property=* methods above return just values, this method wraps it into XML elements for returning it.

Parameters:
resource (required)
node (required)

Testcases:
PROPFIND_ios, PROPFIND_android, Thunderbird_subscribe, macOS_subscribe
Source code:
#
#
set property [$node localName]
set ns       [$node name]
:debug "<$property> <$ns> resource $resource queryType <${:queryType}>"

if {[info exists :xmlns($ns)]} {
    set outputNs [set :xmlns($ns)]
    set methodName property=$outputNs-$property
    #:debug "call method $methodName"
    try {
        set value [:$methodName $resource $node]
        :debug "<$property> <$ns> resource $resource queryType <${:queryType}> -> '$value'"
    } on error {errorMsg} {
        ns_log warning "CalDAV returnXMLelement: call method $methodName raised exception: $errorMsg"
        set value ""
    }
    if {$value eq ""} {
        set result [list 1 <${outputNs}:$property/>]
        #:debug "${:method} query $methodName returns empty (probably not found)"
    } else {
        set result [list 0 <${outputNs}:$property>$value</${outputNs}:$property>]
    }
} else {
    ns_log warning "CalDAV: client requested a element with unknown namespace $ns known ([array names :xmlns])"
    set result [list 1 [subst {<[$node nodeName] xmlns:[$node prefix]="[$node namespaceURI]"/>}]]
}
return $result
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: