private List<Student> parse(final Document doc) {

		final List<Student> students = new Vector<Student>();
		if (doc == null) {
			return students;
		}
		final Element root = doc.getDocumentElement();
		final NodeList nodeStudents = root.getChildNodes();
		if (nodeStudents != null) {
			if (nodeStudents.getLength() != 0) {
				for (int i = 0; i < nodeStudents.getLength(); ++i) {
					final Node nodeStudent = nodeStudents.item(i);
					if (nodeStudent != null) {
						if (nodeStudent.getNodeType() == Node.ELEMENT_NODE) {
							final Student student = parseStudent(nodeStudent);
							students.add(student);
						}
					}
				}
			}
		}
		return students;
	}