code: public Map<List<String>, Type> extractNestedValues(XAttributable element) {
  		Map<List<String>, Type> nestedValues = new HashMap<List<String>, Type>();
  		for (XAttribute attr : element.getAttributes().values()) {
  			List<String> keys = new ArrayList<String>();
  			keys.add(attr.getKey());
  			extractNestedValuesPrivate(attr, nestedValues, keys);
  		}
  		return nestedValues;
  	}
docs: Retrieves a map containing all values for all descending 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.1 key.1.1] val.1.1] [[key.1 key.1.2] val.1.2] [[key.2] val.2] [[key.3] val.3]]
  </pre>
  
  @param element
  Element to retrieve all values for.
  @return Map from all descending keys to values.