defamqxmldecode(amqmap)
map =Hash.newDocument.new(amqmap).root.each_element do |element|
value = name =nil
element.each_element_with_text do |e,t|
name = e.text unless name
if name
case e.name
when"string"
map[name] = e.text
when/int|long/
map[name] = e.text.to_i
when"double"
map[name] = e.text.to_f
elseraise("Unknown data type #{e.name}")
endendendend
map
end