private void parseDocument() {
		// get the root elememt
		Element docEle = dom.getDocumentElement();

		// get a nodelist of <employee> elements
		NodeList shapeNodeList = docEle.getElementsByTagName("Shape");
		if (shapeNodeList != null && shapeNodeList.getLength() > 0) {
			for (int i = 0; i < shapeNodeList.getLength(); i++) {

				// get the employee element
				Element el = (Element) shapeNodeList.item(i);

				// get the Employee object
				UMLShape_Class sc = getShapeClass(el);

				// add it to list
				shapesList.put(sc.getID(), sc);
			}
		}

		NodeList lineNodeList = docEle.getElementsByTagName("Line");
		if (lineNodeList != null && lineNodeList.getLength() > 0) {
			for (int i = 0; i < lineNodeList.getLength(); i++) {

				// get the employee element
				Element el = (Element) lineNodeList.item(i);

				// get the Employee object
				UMLLine l = getLine(el);

				// add it to list
				linesList.add(l);
			}
		}

		NodeList commentBoxNodeList = docEle.getElementsByTagName("CommentBox");
		if (commentBoxNodeList != null && commentBoxNodeList.getLength() > 0) {
			for (int i = 0; i < commentBoxNodeList.getLength(); i++) {

				// get the employee element
				Element el = (Element) commentBoxNodeList.item(i);

				// get the Employee object
				UMLShape_CommentBox sc = getShapeCommentBox(el);

				// add it to list
				commentBoxList.put(sc.getID(), sc);
			}
		}
	}