internal override void AppendLocalizedElements(
            XmlWriter writer,
            string elementName)
        {
            ConvertFromType byteArrayConvert =
                ConvertFromByteArray;

            AppendLocalizedElements(
                writer,
                elementName,
                byteArrayConvert);
        }
        internal override void AppendLocalizedElements(
            XmlWriter writer,
            string elementName)
        {
            ConvertFromType stringConvert =
                ConvertFromUri;

            AppendLocalizedElements(
                writer,
                elementName,
                stringConvert);
        }
        internal void AppendLocalizedElements(
            XmlWriter writer,
            string elementName,
            ConvertFromType convert)
        {
            foreach (KeyValuePair <string, TValue> kvp in this)
            {
                var elementValue = convert(kvp.Value);
                if (!string.IsNullOrEmpty(elementValue))
                {
                    writer.WriteStartElement(elementName);

                    if (!string.Equals(DefaultLanguage, kvp.Key))
                    {
                        writer.WriteAttributeString("xml", "lang", null, kvp.Key);
                    }

                    writer.WriteValue(elementValue);
                    writer.WriteEndElement();
                }
            }
        }