private void printKey(ORASSNode node, int numOfTabs) {
		String tableName = node.getName();
		
		writer.println(getTabs(numOfTabs)     + "<xs:key name=\""+tableName+"_Key"+"\">");
		writer.println(getTabs(numOfTabs + 1) + "<xs:selector xpath=\".//"+tableName+"\"/>");
		writer.println(getTabs(numOfTabs + 1) + "<xs:field xpath=\"@"+tableName+"#\"/>");
		writer.println(getTabs(numOfTabs)     + "</xs:key>");
		writer.println();
		
		List<ORASSNode> children = node.getChildren();
		Iterator<ORASSNode> itr = children.iterator();
		while (itr.hasNext()) {
			ORASSNode child = itr.next();
			String childName = child.getName();
			if (!processedTables.contains(childName)) {
				processedTables.add(childName);
				printKey(child, numOfTabs);
			}
		}
	}