public void parseFixatdlFile( String aFilename ) throws FIXatdlFormatException 
	{
		setLastFixatdlFilename( null );
		setLastFilteredStrategyList( null );
		setStrategies( null );
				
		// Create a JAXB unmarshaller object from StrategiesT class
		// TODO: Perhaps this should be done statically (e.g. once at app load time)
		Unmarshaller um;
		try {
		    JAXBContext jc = JAXBContext.newInstance(StrategiesT.class.getPackage().getName());
		    um = jc.createUnmarshaller();
		} catch (JAXBException e) {
		    // if the above fails, this is a critical exception
		    throw new RuntimeException(e);
		}

		JAXBElement<?> element;
        	try
        	{
        		// try to parse as URL
        		URL url = new URL( aFilename );
        		try
        		{
        		    element = (JAXBElement<?>) um.unmarshal(url);
        	       	} catch (JAXBException ex) {
        	       	    	throw new FIXatdlFormatException("Could not parse URL: " + aFilename);
        	       	}
        	} 
        	catch (MalformedURLException e) 
        	{
        		try
        		{
                		// try to parse as file
                		File file = new File( aFilename );
                		element = (JAXBElement<?>) um.unmarshal(file);	
        	       	} catch (JAXBException ex) {
        	       	    	throw new FIXatdlFormatException("Could not parse File: " + aFilename);
        	     	}
		}		
		validateParsedFixatdlFileContents( (StrategiesT) element.getValue() );
		setStrategies( (StrategiesT) element.getValue() );
		setLastFixatdlFilename( aFilename );
	}