boolean loadXMLDocument(File file)
	{
		History childHistory = history.getFirstChild();
		try {
			URL url = file.toURI().toURL();
			List lostElements =
					model.openDocument(model.getSchemaURL(), url);
			if (lostElements != null)
			{
				StringBuffer sb = new StringBuffer(
						"Error: The source XML Configuration document is invalid.\n" +
								"The following elements have not been loaded:");
				for (int i = 0; i < lostElements.size(); i++)
				{
					sb.append("\n");
					int k = sb.length();
					Node element = (Node) lostElements.get(i);
					sb.append(element.getNodeName());
					Node node = element.getParentNode();
					while (node != null && !(node instanceof Document))
					{
						sb.insert(k, node.getNodeName() + "/");
						node = node.getParentNode();
					}
				}
				dblView.showErrorMessage(sb.toString());
			}
			setXMLEnabled(true);
			xmlFileName = file.getName();
			showXMLTitle();
			childHistory.put(file.getAbsolutePath());
			btnOpenXML.setItems(childHistory.items);
			dblView.showInfoMessage("XML Configuration Document: " + file.getAbsolutePath());
			return true;
		} catch (Exception ex) {
			childHistory.remove(file.getAbsolutePath());
			btnOpenXML.setItems(childHistory.items);
			// dblView.clear();
			setXMLEnabled(false);
			dblView.showErrorMessage("Error: " + ex.getMessage());
			JOptionPane.showMessageDialog(this, "Can't load the XML Configuration Document",
					"Error", JOptionPane.ERROR_MESSAGE);
			showXSDTitle();
			return false;
		}
	}