With the <i>name</i> attribute in the switch-tag, you open a new namespace. All variables declared inside the namespace must be referenced with the namespace as part of the variable name. The general form is {$namespace:myvariable}, where <i>namespace</i> can consist of several nested namespaces. To reference the current (active) namespace, you can also use {$:myvariable}. (More info: http://ez.no/ez_publish/documentation/development/libraries/ez_template/basics/namespaces)
In your case, it would be: {$Sw1:children.data_map.name.content} or {$:children.data_map.name.content}.
But I would suggest to get rid of the <i>name</i> parameter. It's not needed and makes things more complicated than they should be.
hth
Edit: Lukasz didn't elaborate as much and beat me to it...
Daniele, more about Namespaces with code example you can find here. http://ez.no/ez_publish/documentation/development/libraries/ez_template/basics/namespaces