using System.Text; using SheetMe.Core.Models; using SheetMe.Core.Serialization; namespace SheetMe.Data.Stores; /// /// 파일 기반 서식 저장소 — 레거시 XML(.xml) 파일 열기/저장. /// 레거시 디자이너의 XML 내보내기(TK_ExportXML) 산출물과 호환되며, DB 없는 개발 모드의 기본 저장소. /// public sealed class XmlFileFormStore { #region Member Fields private readonly LegacyXmlSerializer serializer = new(); #endregion #region Methods /// XML 파일 열기 — FormId 는 파일명에서 유래 public FormDocument LoadFile(string path) { var content = File.ReadAllText(path); var document = serializer.Read(content); document.FormId = Path.GetFileNameWithoutExtension(path); document.Title = document.FormId; return document; } /// XML 파일 저장 — UTF-8(BOM 없음) public void SaveFile(FormDocument document, string path) { var xml = serializer.Write(document); File.WriteAllText(path, xml, new UTF8Encoding(encoderShouldEmitUTF8Identifier: false)); } #endregion }