| File: Model\TranslatableXmlDocument.cs | Web Access |
| Project: src\arcade\src\Microsoft.DotNet.XliffTasks\Microsoft.DotNet.XliffTasks.csproj (Microsoft.DotNet.XliffTasks) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.IO; using System.Xml; using System.Xml.Linq; namespace XliffTasks.Model { /// <summary> /// A <see cref="TranslatableDocument"/> backed by an XML-based format /// </summary> internal abstract class TranslatableXmlDocument : TranslatableDocument { protected XDocument Document { get; private set; } protected override void LoadCore(TextReader reader) { Document = XDocument.Load(reader); } protected override void SaveCore(TextWriter writer) { Document.SaveCustom(writer); } protected sealed class TranslatableXmlElement : TranslatableNode { private readonly XElement _element; public TranslatableXmlElement(string id, string source, string note, XElement element) : base(id, source, note) { _element = element; } public override void Translate(string translation) { _element.Value = translation; } } protected sealed class TranslatableXmlAttribute : TranslatableNode { private readonly XAttribute _attribute; public TranslatableXmlAttribute(string id, string source, string note, XAttribute attribute) : base(id, source, note) { _attribute = attribute; } public override void Translate(string translation) { _attribute.Value = translation; } } } }