public void Parse(SqlStruct str, int ind)
		{
			//если первый SQL то мы вставляем заголовочные теги
			if (ind == 0)
			{
				sw.WriteLine("<xsl:template match=\"" + this.MainTag + "\"><" + this.MainTag + " xmlns:xsl=\"" + XMLNS + "\"><xsl:apply-templates select=\"" + str.From[0] + "\"/></" + this.MainTag +"></xsl:template>");
			}

			//Если первый SQL запрос, то делаем template match
			//иначе template name
			
			if (ind == 0)
				sw.WriteLine("<xsl:template match=\"" + str.From[0] + "\">");
			else
				sw.WriteLine("<xsl:template name=\"" + str.From[0] + "\">");
			
			//Получаем имя дочернего элемента (имя тега, которое разделяет на строки, ex. "tr")
			//string tr_ = GetChildElement((string)listFROM[0]);

			string tr_ = "tr-" + str.From[0];
			//Записываем цикл выборки
			sw.WriteLine("<xsl:for-each select=\"//" + this.MainTag + "//" + str.From[0] + "\">");
			
			//Пишем разделительный (на строки) тэг
			if (ind != 0)
				sw.WriteLine("<" + tr_ + ">");
			//Вставляем тока те элементы которые указаны в select-e
			foreach (string node in str.Select)
			{
				//При этом мы должны "пробежать все SQL запросы и посмареть что сюда вставить..."
				if (f.ifExistInSQL(node) == false)
					sw.WriteLine("<" + node + "><xsl:value-of select=\"" + node + "\"/></" + node + ">");
				else
				{
					string tagName = GetTableName(node);
					sw.WriteLine("<" + node + "><xsl:call-template name=\"" + tagName + "\"/></" + node + ">");
					globalid++;
				}

                
			}
			//закрываем элементы
			if (ind != 0)
				sw.WriteLine("</" + tr_ +">");
			//конец цикла
			sw.WriteLine("</xsl:for-each>");
			//конец шаблона
			sw.WriteLine("</xsl:template>	");
			
		}
		public string CreateSQL(int state)
		{
			//Читаем по слову
			
			//type = 1 - Вложенный
			//type = 2 - последовательный
			SqlStruct SQLst = new SqlStruct();
			string word;
			while ((word = GetWord()) != null){;};

			return "";
		}