code: public Map<String, Type> extractValues(XAttributable element) {
  		Map<String, Type> values = new HashMap<String, Type>();
  		Map<List<String>, Type> nestedValues = extractNestedValues(element);
  		/*
  		 * Now copy top-level values.
  		 */
  		for (List<String> keys : nestedValues.keySet()) {
  			if (keys.size() == 1) {
  				/*
  				 * Is top-level value, as key list contains only a single key.
  				 * Copy it.
  				 */
  				values.put(keys.get(0), nestedValues.get(keys));
  			}
  		}
  		return values;
  	}
docs: Retrieves a map containing all values for all child attributes of an
  element.
  
  For example, the XES fragment:
  
  <pre>
  {@code
  <trace>
  <string key="key.1" value="">
  <float key="ext:attr" value="val.1"/>
  <string key="key.1.1" value="">
  <float key="ext:attr" value="val.1.1"/>
  </string>
  <string key="key.1.2" value="">
  <float key="ext:attr" value="val.1.2"/>
  </string>
  </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>
  </trace>
  }
  </pre>
  
  should result into the following:
  
  <pre>
  [[key.1 val.1] [key.2 val.2] [key.3 val.3]]
  </pre>
  
  @param element
  Element to retrieve all values for.
  @return Map from all child keys to values.