code: public void assignValues(XAttributable element, Map<String, Type> values) {
  		Map<List<String>, Type> nestedValues = new HashMap<List<String>, Type>();
  		for (String key : values.keySet()) {
  			List<String> keys = new ArrayList<String>();
  			keys.add(key);
  			nestedValues.put(keys, values.get(key));
  		}
  		assignNestedValues(element, nestedValues);
  	}
docs: Assigns (to the given element) multiple values given their keys. Note
  that as a side effect this method creates attributes when it does not
  find an attribute with the proper key.
  
  For example, the call:
  
  <pre>
  assignValues(event, [[key.1 val.1] [key.2 val.2] [key.3 val.3]])
  </pre>
  
  should result into the following XES fragment:
  
  <pre>
  {@code
  <event>
  <string key="key.1" value="">
  <float key="ext:attr" value="val.1"/>
  </string>
  <string key="key.2" value="">
  <float key="ext:attr" value="val.2"/>
  </string>
  <string key="key.3" value="">
  <float key="ext:attr" value="val.3"/>
  </string>
  </event>
  }
  </pre>
  
  @param event
  Event to assign the values to.
  @param amounts
  Mapping from keys to values which are to be assigned.