@Override
		public void startElement(String namespaceURI, String localName, String qName, Attributes atts) {
			if (ELEMENT_PROPERTY.equals(qName)) {
				try {
					String class_name = atts.getValue(ATTRIBUTE_CLASS);
					String property_name = atts.getValue(ATTRIBUTE_NAME);
					String property_value = atts.getValue(ATTRIBUTE_VALUE);
					
					Class[] parameterTypes = {(new String("")).getClass()};
					Constructor constructor = Class.forName(class_name).getConstructor(parameterTypes);
					Object[] args = {property_value};
					Object property = constructor.newInstance(args);
					
					if (container != null) {
						container.setProperty(property_name, property);
					} else {
						System.out.println("Warning: no PropertyContainer to add property to during PropertyContainerXMLParser parsing.");
					}
				} catch (Exception e) {
					e.printStackTrace();
				}
			} else if (ELEMENT_PROPERTY_CONTAINER.equals(qName)) {
				try {
					String class_name = atts.getValue(ATTRIBUTE_CLASS);
					container = (PropertyContainer) Class.forName(class_name).newInstance();
					
					// Instantiate a List if we don't have one by now.
					if (containers == null) {
						containers = new ArrayList();
					}
					containers.add(container);
				} catch (Exception e) {
					e.printStackTrace();
				}
			} else if (ELEMENT_PROPERTY_CONTAINERS.equals(qName)) {
				try {
					String class_name = atts.getValue(ATTRIBUTE_CLASS);
					containers = (List) Class.forName(class_name).newInstance();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
			
			super.startElement(namespaceURI, localName, qName, atts);
		}