public void read(String file_name) throws DataInitialisationException{
		try{
			reset();
			DocumentBuilderFactory dBFactory = DocumentBuilderFactory.newInstance();
			DocumentBuilder dBuilder = dBFactory.newDocumentBuilder();
			Document doc = dBuilder.parse(new FileInputStream(file_name));

			/* Document root element */
			Element rootNode = doc.getDocumentElement();
			if(!rootNode.getNodeName().equals(XMLRootNode)){
				throw new DataInitialisationException("XML root element named " + XMLRootNode + " not found!");
			}
			else{
				name = rootNode.getAttribute(XMLTitleAttr);
			}

			/* Iterate over questions */
			NodeList tmpList = doc.getElementsByTagName(XMLAnswerNode);
			for(int i = 0; i < tmpList.getLength(); i++){
				Element tmpAnswer = (Element)tmpList.item(i);
				try{
					addAnswer(tmpAnswer);
				}catch(ItemNotFoundException e){
					System.err.println("Failed to add answer: " + e);
				}
			}
			comment = doc.getElementsByTagName(XMLCommentNode).item(0).getTextContent();
		}catch(ParserConfigurationException e){
			System.err.println("Parsing failure: " + e);
		}
		catch(SAXException e){
			System.err.println("Parsing failure: " + e);
		}
		catch(IOException e){
			e.printStackTrace();
		}
	}