using System.Xml;

namespace AppsheetEpplus;

public class ExcelProtectedRange : XmlHelper {
  public string Name => GetXmlNodeString("@name");

  private ExcelAddress _address;

  public ExcelAddress Address => _address ??= new(GetXmlNodeString("@sqref"));

  internal ExcelProtectedRange(XmlNamespaceManager ns, XmlNode topNode)
      : base(ns, topNode) {}
}
