private HashMap<String, String> transformAttributes(String string)
		{
			// Prepare the attribute-map!
			HashMap<String, String> map = new HashMap<String, String>(2);
			
			// Consume the String word by word...
			while(string.length() > 0)
			{
				// Trim whitespaces, if there are any.
				string = string.trim();
				
				// Possible words we may encounter:
				//   property_key
				//   =
				//   "a literal value !"
				//   property_key>           (Mind the '>'!)
				
				// Find the end of the next word
				int endOfTheWord = this.findEndOfAttributeWord(string);
				
				// temporary key field
				String key = null;
				
				// Cut out the next word! (which is a 'key')
				{
					String word = string.substring(0, endOfTheWord);
					string = string.substring(endOfTheWord).trim();
					key = word;
				}
				
				if(string.length() == 0)
				{
					// key only: Treat the key as a 'flag'-attribute (which has no content other than itself).
					map.put(key, "");
					break;
				}
				
				if(string.charAt(0) == '=')
				{
					// key/value
					string = string.substring(1).trim();
					String value = null;
					
					// Find the end of the value word!
					int endOfTheWord2 = this.findEndOfAttributeWord(string);
					{
						String word = string.substring(0, endOfTheWord2);
						string = string.substring(endOfTheWord2).trim();
						value = word;
					}
					
					// If the value is surrounded by '"' on both start and end, cut them away.
					if((value.length() >= 2) && (value.charAt(0) == '"') && (value.charAt(value.length()-1) == '"'))
					{
						value = value.substring(1, value.length()-1);
					}
					
					map.put(key, value);
				}
				else
				{
					// key only: Treat the key as a 'flag'-attribute (which has no content other than itself).
					map.put(key, key);
				}
			}
			
			// If there is nothing inside the map, throw it away and return null!
			if(map.size() == 0)
			{
				return null;
			}
			
			// Return the attributes for further usage.
			return map;
		}