view Implab/Xml/JsonXmlReaderOptions.cs @ 273:79110a16cab7 v3

Working on Unity xml configuration: Refactoring in progress
author cin
date Thu, 26 Apr 2018 19:35:01 +0300
parents 74e048cbaac8
children
line wrap: on
line source


using System;
using System.Xml;

namespace Implab.Xml {
    /// <summary>
    /// Набор необязательных параметров для <see cref="JsonXmlReader"/>, позволяющий управлять процессом
    /// интерпретации <c>JSON</c> документа.
    /// </summary>
    public class JsonXmlReaderOptions : ICloneable {
        /// <summary>
        /// Пространство имен в котором будут располагаться читаемые элементы документа
        /// </summary>
        public string NamespaceUri {
            get;
            set;
        }

        /// <summary>
        /// Интерпретировать массивы как множественные элементы (убирает один уровень вложенности), иначе массив
        /// представляется в виде узла, дочерними элементами которого являются элементы массива, имена дочерних элементов
        /// определяются свойством <see cref="ArrayItemName"/>. По умолчанию <c>false</c>.
        /// </summary>
        public bool FlattenArrays {
            get;
            set;
        }

        /// <summary>
        /// Префикс, для узлов документа
        /// </summary>
        public string NodesPrefix {
            get;
            set;
        }

        /// <summary>
        /// Имя корневого элемента в xml документе
        /// </summary>
        public string RootName {
            get;
            set;
        }

        /// <summary>
        /// Имя элемента для массивов, если не включена опция <see cref="FlattenArrays"/>.
        /// По умолчанию <c>item</c>.
        /// </summary>
        public string ArrayItemName {
            get;
            set;
        }

        /// <summary>
        /// Таблица атомизированных строк для построения документа.
        /// </summary>
        public XmlNameTable NameTable {
            get;
            set;
        }

        public JsonXmlCaseTransform CaseTransform { get; set; }

        public object Clone() {
            return MemberwiseClone();
        }
    }
}