The following operations are supported. For a formal definition,
please review the
Service Description.
Web Service Links
Namespace Children of ::wsdb::types::mywebservice::TestDecimal3
Namespace Code for ::wsdb::types::mywebservice::TestDecimal3
namespace eval ::wsdb::types::mywebservice::TestDecimal3 {
variable base xsd::decimal
variable decimalPointCanon {}
variable fractionDigits 0
variable totalDigits 4
variable validate ::wsdb::types::mywebservice::TestDecimal3::validate
}
Procedures in ::wsdb::types::mywebservice::TestDecimal3
proc ::wsdb::types::mywebservice::TestDecimal3::validate {
value
{errorListVar }
{canonListVar }
} {
variable base
variable decimalPointCanon
variable totalDigits
variable fractionDigits
if {"$errorListVar" ne ""} {
upvar $errorListVar errorList
}
if {"$canonListVar" ne ""} {
upvar $canonListVar canonList
}
set valid 0
set collapsedValue [string trim $value]
set errorList [list $collapsedValue]
set canonList [list]
if {![::wsdb::types::xsd::decimal::ifDecimalCanonize $value canonList $decimalPointCanon decimalList]} {
lappend errorList "failed decimal test"
return $valid
}
set foundDigits [lindex $decimalList 0]
set foundFractionDigits [lindex $decimalList 1]
set canonValue [join $canonList ""]
while {1} {
if {![::wsdb::types::${base}::validate $canonValue]} {
lappend errorList "failed base test $base"
break
}
if {$foundDigits > $totalDigits} {
lappend errorList "failed foundDigits ($foundDigits) > totalDigits (4)"
break
}
if {$foundFractionDigits > $fractionDigits} {
lappend errorList "failed foundFractionDigits ($foundFractionDigits) > fractionDigits (0)"
break
}
set valid 1
break
}
return $valid
}