code: public static Document readXML(Reader reader) throws IOException, SAXException, ParserConfigurationException {
  		assert reader != null : AssertMessages.notNullParameter();
  		try {
  			final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  			final DocumentBuilder builder = factory.newDocumentBuilder();
  			return builder.parse(new InputSource(reader));
  		} finally {
  			reader.close();
  		}
  	}
docs: Read an XML file and replies the DOM document.
  
  @param reader is the stream to read
  @return the DOM document red from the {@code file}.
  @throws IOException if the stream cannot be read.
  @throws SAXException if the stream does not contains valid XML data.
  @throws ParserConfigurationException if the parser cannot  be configured.