private DescRec parseDesc(Node item) throws IOException {
		if (!"Desc".equals(item.getNodeName()))
			return null;
		String id;
		try {
			id = item.getAttributes().getNamedItem("id").getNodeValue();
		} catch (Exception e) {
			throw new IOException("Cannot have a description without id");
		}
		String name = valueOrNull(item, "Name");
		String desc = valueOrNull(item, "Long");
		String src = attrOrNull(item.getAttributes(), "src");
		// TODO Temporary clean up.
		if ("e".equals(src) && id.startsWith("X"))
			id = id.substring(1); 
		return new DescRec(Source.fromStringOrNull(src), id, name, desc);
	}