public void Print()
	{
		String str = "";
		int lv = this.level;

		while(lv != 0)
		{
			str += "\t";
			lv--;
		}
	
		switch(this.nodetype)
		{
			case NODE: str += "<" + NODE;
				break;
			case REPLICA: str += "<" + REPLICA;
				break;
			case REF: str += "<" + REF;
				break;
			case ATTR: str += "<" + ATTRIBUTE;
				break;
		}
		
		Set<Entry<String, String>> attriset = attris.entrySet();
		Iterator<Entry<String, String>> iter = attriset.iterator();
		Entry<String, String> entry;
		while(iter.hasNext())
		{
			entry =iter.next();
			str += " " + entry.getKey() + "=" + "\"" + entry.getValue() + "\"";
		}
		str += "/>\n";
		
		System.out.println(str);
		
		XmlNode node;
		for (int i = 0; i < this.children.size(); i++)
		{
			node = this.children.get(i);
			node.Print();
		}
	}