Найти тему
Linux code

Форматы хранения текстовой информации и языки разметки

Оглавление

Язык разметки - набор правил и символов, используется для хранения текста и дополнительной информации: структура, категории, заголовки..

CSV/TSV/DSV

Comma-Separated Values — значения, разделённые запятыми. Хранит табличные данные. Строка такой таблицы - одна строка текста, содержит одно или несколько полей, разделенных запятыми.

Недостатком этого стандарта являются проблемы при наличии в тексте переноса строк или запятых.

Samsung Galaxy Tab A 10.1 SM-T515 32Gb, 1920x1200, 15250
Apple iPad (2019) 32Gb Wi-Fi, 2160x1620, 26198
HUAWEI MediaPad M5 Lite 8 32Gb LTE, 1920x1200, 13790

Под термином "CSV" могут применяться родственные форматы, в которых используется другой разделитель.

Tab separated values - значения, разделённые табуляцией

Delimiter-separated values - значения, разделенные разделителем.

Форматы, в которых используются значения, разделенные разделителем хранят двумерные массивы данных, разделяя значения в каждой строке определенными символами. Большинство программ баз данных и электронных таблиц способны считывать или сохранять данные в формате с разделителями. Благодаря широкой поддержке файлы DSV могут использоваться для обмена данными между многими приложениями.

DSV представляет собой текстовый файл , используемый для хранения данных, в котором каждая строка представляет одну запись, а поле отделено друг от друга разделителем. По сравнению с типом плоского файла, который использует пробелы для принудительной установки каждого поля на одну и ту же ширину, файл с разделителями имеет то преимущество, что допускает значения полей любой длины.

XML

eXtensible Markup Language - расширяемый язык разметки. Разработан консорциумом всемирной паутины (W3C) как язык с простым синтаксисом, одновременно удобный в использовании программами и человеком. Теги в XML не определяются стандартами, а создаются автором.

<?xml version="1.0" encoding="utf-8"?>
<message>
<title>Hello World!</title>
<text>Message</text>
<!--
<info>Комментарий</info>
-->
</message>

YAML

et Another Markup Language, YAML Ain't Markup Language - "Ещё один язык разметки", "YAML — не язык разметки". Ориентирован на удобство ввода-вывода и хранение данных для языков программирования. Основные задачи:

  • понятный человеку
  • поддержка данных, родных для языков программирования
  • переносимость между языками программирования
  • использование цельной модели данных для поддержки обычного инструментария
  • поддержка потоковой обработки
  • выразительность и расширяемость
  • лёгкость в реализации и использовании
theme:
name: material
language: ru
features:
- tabs
favicon: files/icons/favicon.ico
plugins: []

JSON

JavaScript Object Notation - текстовый формат обмена данными, основанный на JavaScript.

{
"name": "Сергей Николаевич Глухарь",
"address": {
"city": "Ростов"
"street": "Московская, 101, кв.101",
},
"phoneNumbers": [
"213-7385",
"345-8324"
]
}

JSON использует две структуры:

  • Набор пар ключ: значение
  • Упорядоченный набор значений

Значениями в JSON могут быть:

  • запись: неупорядоченное множество пар ключ:значение, заключённое в фигурные скобки. Ключ описывается строкой, между ним и значением стоит двоеточие. Пары ключ-значение отделяются друг от друга запятыми
  • массив (одномерный): упорядоченное множество значений, заключается в квадратные скобки. Значения разделяются запятыми. Массив может быть пустым
  • число (целое или вещественное)
  • литералы: true (логическое "правда"), false (логическое "ложь"), null
  • строка: упорядоченное множество из нуля или более символов юникода, заключённое в двойные кавычки. Символы могут быть указаны с использованием escape-последовательностей, начинающихся с обратной косой черты «\» (поддерживаются варианты \', \", \\, \/, \t, \n, \r, \f и \b), или записаны шестнадцатеричным кодом в кодировке Unicode в виде \uFFFF

Markdown

Цель создания - написание читаемого и удобного для правки текста, но пригодного для преобразования в языки для продвинутых публикаций (например - HTML)

Заголовок первого уровня:

# Графические библиотеки

Текст с выделением:

**CAIRO**

Списки:

* элемент маркированного списка

Ссылки:

[Software](https://ru.wikipedia.org/wiki/Программное_обеспечение)

Изображение:

![Alt-текст](адрес://ссылки.здесь "Заголовок изображения")

reStructuredText

Облегчённый язык разметки. Применяется для создания простых веб-страниц и других документов, а также в качестве вспомогательного языка при написании комментариев в программном коде:

==================
Название документа
==================

Заголовок
---------

Какой-нибудь простой текст, *текст курсивом*, **текст жирным шрифтом** и ссылка_:

* элемент маркированного списка
* элемент маркированного списка

1. Первый элемент нумерованного списка
2. Второй элемент нумерованного списка