Пример #1
0
        /// <summary>
        /// Packageを保存します。
        /// </summary>
        /// <param name="info"></param>
        public override void SavePackage(XmlContentsPackageWriteInfo info)
        {
            string             filename = info.FileName;
            XmlContentsPackage package  = info.Package;
            XmlWriter          writer   = XmlWriter.Create(filename, new XmlWriterSettings()
            {
                Indent = true, IndentChars = "\t"
            });


            try {
                writer.WriteStartDocument();
                writer.WriteStartElement(package.PackageRootElement);
                writer.WriteAttributeString(package.PackageRootCountAttribute, package.XmlContentsTable.Count.ToString());
                writer.WriteAttributeString(package.PackageRootVersionAttribute, this.Version);
                foreach (XmlContents contents in package.XmlContentsTable.Values)
                {
                    XmlContentsWriteInfo contentsInfo = new XmlContentsWriteInfo()
                    {
                        Writer   = writer,
                        Contents = contents
                    };
                    this.SaveContents(contentsInfo);
                    //contents.SaveFile(writer);
                }
                writer.WriteEndElement();
                writer.WriteEndDocument();
            }
            finally {
                if (writer != null)
                {
                    writer.Close();
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Contentsを保存します。
        /// </summary>
        /// <param name="info"></param>
        public override void SaveContents(XmlContentsWriteInfo info)
        {
            XmlWriter   writer   = info.Writer;
            XmlContents contents = info.Contents;

            writer.WriteStartElement(contents.ContentsRootElement);
            writer.WriteAttributeString(contents.ContentsRootNameAttribute, contents.Name);
            writer.WriteAttributeString(contents.ContentsRootCountAttribute, contents.RootItem.Items.Count.ToString());
            foreach (XmlContentsItem item in contents.RootItem.Items.Values)
            {
                XmlContentsItemWriteInfo itemInfo = new XmlContentsItemWriteInfo()
                {
                    Writer       = writer,
                    ItemProvider = contents.ItemProvider,
                    Item         = item
                };
                this.SaveContentsItem(itemInfo);
                //this.m_ItemProvider.Save(writer, item);
            }
            writer.WriteEndElement();
        }
Пример #3
0
 /// <summary>
 /// 派生クラスでオーバーライドされると、Contentsの保存を行うメソッドを定義します。
 /// </summary>
 /// <param name="info"></param>
 public abstract void SaveContents(XmlContentsWriteInfo info);