private void extractModeConversionRule() throws XMLStreamException, TheoryException {
		String mode = "";
		List<String> conversionList = new ArrayList<String>();
		while (reader.hasNext()) {
			int event = reader.next();
			switch (event) {
			case XMLStreamConstants.START_ELEMENT:
				currTag = getXmlTag(reader.getLocalName());
				break;
			case XMLStreamConstants.CHARACTERS:
				if (Tag.MODE_CONVERSION_FROM.equals(currTag)) {
					String v = reader.getText().trim();
					if (!"".equals(v)) mode += v;
				} else if (Tag.MODE_CONVERSION_TO.equals(currTag)) {
					String v = reader.getText().trim();
					if (!"".equals(v)) conversionList.add(reader.getText());
				}
				break;
			case XMLStreamConstants.END_ELEMENT:
				currTag = getXmlTag(reader.getLocalName());
				if (Tag.MODE_CONVERSION.equals(currTag)) {
					String[] modes = new String[conversionList.size()];
					addModeConversionRule(mode, conversionList.toArray(modes));
					return;
				}
			}
		}
	}