/// <inheritdoc />
        protected override void DeSerializeXml(XmlReader reader)
        {
            base.DeSerializeXml(reader);
            reader.ReadStartElement();            //<TextOperation>
            AssertElement(reader, "TextOperation");
            var attribute = reader.GetAttribute(nameof(ITextOperation.TextOperationType));

            switch (attribute)
            {
            case "LineBreak":
                Operation = new AppendLineBreakTextOperation();
                break;

            case "TrimLineBreaks":
                Operation = new TrimLineBreakTextOperation();
                break;

            default:
                throw new InvalidOperationException($"The TextOperation '{attribute}' is invalid");
            }

            Operation.ReadXml(reader);
            reader.ReadEndElement();            //</TextOperation>
        }