Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Corrected handling of arrays elements. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
ffda452ea606c49c72382eaef0588c97 |
User & Date: | gerald 2012-09-07 05:41:48.619 |
Context
2012-09-08 15:37 | Enhanced processing of array elements. check-in: b83f5b24e3 user: gerald tags: trunk | |
2012-09-07 05:41 | Corrected handling of arrays elements. check-in: ffda452ea6 user: gerald tags: trunk | |
2012-09-05 03:50 | Correct handling of soap encoded arrays from complex type definition that is only a restriction making something an array. check-in: 69ecf185ee user: gerald tags: trunk | |
Changes
Changes to Utilities.tcl.
︙ | ︙ | |||
1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 | # # Arguments : # mode - The mode, Client or Server # serviceName - The service name the type is defined in # node - The base node for the type. # type - The name of the type # root - The root node of the document # # Returns : A dictionary object for a given type. # # Side-Effects : None # # Exception Conditions : None # | > | 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 | # # Arguments : # mode - The mode, Client or Server # serviceName - The service name the type is defined in # node - The base node for the type. # type - The name of the type # root - The root node of the document # isArray - We are looking for array elements # # Returns : A dictionary object for a given type. # # Side-Effects : None # # Exception Conditions : None # |
︙ | ︙ | |||
1294 1295 1296 1297 1298 1299 1300 | # ########################################################################### proc ::WS::Utils::convertTypeToDict {mode serviceName node type root {isArray 0}} { variable typeInfo variable mutableTypeInfo variable options | | | 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 | # ########################################################################### proc ::WS::Utils::convertTypeToDict {mode serviceName node type root {isArray 0}} { variable typeInfo variable mutableTypeInfo variable options ::log::log debug [list ::WS::Utils::convertTypeToDict $mode $serviceName $node $type $root $isArray] if {[dict exists $typeInfo $mode $serviceName $type]} { set typeName $type } else { set typeName $serviceName:$type } set typeDefInfo [dict get $typeInfo $mode $serviceName $typeName] ::log::log debug "\t type def = {$typeDefInfo}" |
︙ | ︙ | |||
1362 1363 1364 1365 1366 1367 1368 | ## ::log::log debug "Trying #3 [list $node selectNodes $partName]" if {[catch {llength [set item [$node selectNodes $partName]]} len] || ($len == 0)} { ::log::log debug "Trying #4 -- search of children" set item {} set matchList [list $partXns:$partName $xns:$partName $partName] foreach childNode [$node childNodes] { | | | < < | 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 | ## ::log::log debug "Trying #3 [list $node selectNodes $partName]" if {[catch {llength [set item [$node selectNodes $partName]]} len] || ($len == 0)} { ::log::log debug "Trying #4 -- search of children" set item {} set matchList [list $partXns:$partName $xns:$partName $partName] foreach childNode [$node childNodes] { ::log::log debug "\t\t Looking at [$childNode localName] ($allowAny,$isArray,[$childNode nodeType],$partName)" # From SOAP1.1 Spec: # Within an array value, element names are not significant # for distinguishing accessors. Elements may have any name. # Here we don't need check the element name, just simple check # it's a element node if {!$allowAny} { continue } ::log::log debug "\t\t Found $partName [$childNode asXML]" lappend item $childNode } if {![string length $item]} { ::log::log debug "\tSkipping" |
︙ | ︙ |