private static File DeserialiseFile(XmlNode fileNode)
        {
            File file = new File();
            file.Id = int.Parse(fileNode.Attributes["id"].Value);
            file.Name = fileNode.Attributes["name"].Value;
            file.Iterator = (IteratorTypes)Enum.Parse(typeof(IteratorTypes), fileNode.Attributes["iterator"].Value, true);
            file.Script = new Script();
            file.Script.Syntax = (Slyce.Common.TemplateContentLanguage)Enum.Parse(typeof(Slyce.Common.TemplateContentLanguage), fileNode.Attributes["syntax"].Value, true);

            if (fileNode.Attributes["encoding"] == null)
                file.Encoding = Encoding.Unicode;
            else
                switch (fileNode.Attributes["encoding"].Value)
                {
                    case "US-ASCII":
                        file.Encoding = Encoding.ASCII;
                        break;
                    case "Unicode":
                        file.Encoding = Encoding.Unicode;
                        break;
                    case "Unicode (UTF-8)":
                        file.Encoding = Encoding.UTF8;
                        break;
                    default:
                        throw new NotImplementedException("Encoding name not handled yet in DeserialiseFile(): " + fileNode.Attributes["encoding"].Value);
                }

            //var scriptNode = fileNode.SelectSingleNode("script");
            //file.Script = new Script();
            //file.Script.Body = scriptNode.InnerText;
            //file.Script.Syntax = (Slyce.Common.TemplateContentLanguage)Enum.Parse(typeof(Slyce.Common.TemplateContentLanguage), scriptNode.Attributes["syntax"].Value, true);

            return file;
        }
 private static void SerialiseFile(File file, XmlWriter writer)
 {
     writer.WriteStartElement("file");
     writer.WriteAttributeString("id", file.Id.ToString());
     writer.WriteAttributeString("name", file.Name);
     writer.WriteAttributeString("iterator", file.Iterator.ToString());
     writer.WriteAttributeString("syntax", file.Script.Syntax.ToString());
     writer.WriteAttributeString("encoding", file.Encoding.EncodingName);
     //SerialiseScript(file.Script, writer);
     writer.WriteEndElement();
 }