Mercurial > pub > ImplabNet
diff Implab/Xml/JsonXmlReaderOptions.cs @ 227:8d5de4eb9c2c v2
Reimplemented JsonXmlReader, added support for null values: JSON null values are
mapped to empty nodes with 'xsi:nil' attribute set to 'true'
author | cin |
---|---|
date | Sat, 09 Sep 2017 03:53:13 +0300 |
parents | |
children | 6fa235c5a760 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Implab/Xml/JsonXmlReaderOptions.cs Sat Sep 09 03:53:13 2017 +0300 @@ -0,0 +1,66 @@ + +using System; +using System.Xml; + +namespace Implab.Formats.JSON { + /// <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 object Clone() { + return MemberwiseClone(); + } + } +}