public Vector<Object> DeserializeFile() throws FileNotFoundException
	{
		Vector<Object> objectsVector = new Vector<Object>();
		Method dMet;
		Method fMet;
		Class cls;
		Object obj;
		String type;
		String dTypeName;
		String methodName;
		String value;
		String lineIn = " ";

		Class dT = dTypes.getClass();

		//Keeps parsing objects so long as the file is not null
		while(lineIn != null)
		{
			dMet = null;
			fMet = null;
			cls = null;
			obj = null;

			try
			{
				lineIn = br.readLine();

				//Checks for start of object
				if(lineIn != null)
				{
					//Skip the first line of the object
					// since it is <DPSerialization>
					lineIn = br.readLine();

					lineIn = parseValue(lineIn, startClassRegex,
						endClassRegex);
					try
					{
						cls = Class.forName(lineIn);
						obj = cls.newInstance();
					}
					catch(ClassNotFoundException e)
					{
						System.out.println("ERROR: Class unable"
						+ " to be initialized!");
						System.exit(errorVal);
					}

					lineIn = br.readLine();
					
					//Read a new line as long as it isent the end
					// of the object in the XML file
					while(!lineIn.equals(" </complexType>"))
					{
						type = parseValue(lineIn, startTypeRegex,
							endTypeRegex);
						//Formats the type string for the method name
						// in DeserializeTypes
						dTypeName = "Deserialize" +
						 type.substring(0,1).toUpperCase() +
						 type.substring(1);

						methodName = parseValue(lineIn,
							startMemberNameRegex, endMemberNameRegex);
						methodName = "set" + 
						 methodName.substring(0,1).toUpperCase() +
						 methodName.substring(1);

						value = parseValue(lineIn, startValueRegex, 
							endValueRegex);

						//Tries to get the method declared in 
						// the DeserializeTypes class
						try
						{
							dMet = dT.getDeclaredMethod(dTypeName,
								map1.get("String"));
						}
						catch(NoSuchMethodException e)
						{
							System.out.println("ERROR: Type not defined" 
								+ " in DeserializeTypes class");
							System.exit(errorVal);
						}

						//Tries to get the declared method
						try
						{
							fMet = cls.getDeclaredMethod(methodName, map1.get(type));	
						}
						catch(NoSuchMethodException e)
						{
							System.out.println("ERROR: method for"
								+ " variable not intialized or"
								+ " declared! ");
							System.exit(errorVal);
						}

						try
						{
							fMet.invoke(obj, dMet.invoke(dTypes, value));
						}
						catch(Exception e)
						{
							System.out.println("ERROR: unable to invoke"
							+ " method!");
							System.exit(errorVal);
						}

						lineIn = br.readLine();
					}

					//Reads the end tag
					lineIn = br.readLine();
					objectsVector.add(obj);
				}				

			}
			catch(Exception e)
			{
				System.out.println("ERROR: Unable to read"
					+ " line from input file!");
				System.exit(errorVal);
			}
		}

		try
		{
			br.close();
		}
		catch(Exception e)
		{
			System.out.println("ERROR: Unable to close input file!");
			System.exit(errorVal);
		}
		
		return objectsVector;
	}