internal static void Set(XmlDocument doc, XmlElement root, Exchange exchange, FutureManager mgr)
        {
            XmlAttribute attr = doc.CreateAttribute(IdAttr);
            attr.Value = exchange.ExchangeID;
            root.Attributes.Append(attr);

            attr = doc.CreateAttribute(NameAttr);
            attr.Value = exchange.ExchangeName;
            root.Attributes.Append(attr);

            StringBuilder builder = new StringBuilder();
            foreach (TimeSlice slice in exchange.AllSlice)
            {
                builder.Append(slice.BeginTime.ToString()).Append(",").Append(slice.EndTime.ToString()).Append(",");
            }

            if (exchange.AllSlice.Count > 0)
            {
                builder.Remove(builder.Length - 1, 1);
            }

            XmlElement subTagNode = doc.CreateElement(SliceTag);
            root.AppendChild(subTagNode);
            XmlText subValueNode = doc.CreateTextNode(builder.ToString());
            subTagNode.AppendChild(subValueNode);

            subTagNode = doc.CreateElement(OpenTimeTag);
            root.AppendChild(subTagNode);
            subValueNode = doc.CreateTextNode(exchange.OpenTime.ToShortTimeString());
            subTagNode.AppendChild(subValueNode);

            subTagNode = doc.CreateElement(CloseTimeTag);
            root.AppendChild(subTagNode);
            subValueNode = doc.CreateTextNode(exchange.CloseTime.ToShortTimeString());
            subTagNode.AppendChild(subValueNode);

            List<FutureProduct> productlist = mgr.GetProducts(exchange.ExchangeID);
            foreach (FutureProduct product in productlist)
            {
                subTagNode = doc.CreateElement(ProductTag);
                root.AppendChild(subTagNode);

                FutureProductXml.Set(doc, subTagNode, product, mgr);
            }
            
        }