Я ищу формат данных для текстовых файлов с иерархической информацией.Эти файлы будут создаваться в основном человеком (а не сгенерированными программами), но будут читаться в основном программами.Основные требования:
Очень простой и незагроможденный синтаксис.(Пример: уровни иерархии, определяемые вкладками, будут работать нормально.) Так просто, что все описание языка поместится на странице.
Чистая и краткая ментальная модель.(Пример: дерево, где листья - это значения типов int, string, float, bool, а ключи - нествольные узлы. Несколько более сложная модель, скажем, со словарями, тоже подойдет).
Единственный способ представить любую данную семантику;то есть, нет эквивалентного синтаксиса с тем же значением.
Предпочтительно легко разбирать на языке, подобном python;или стабильные библиотеки, доступные для этой цели.
Может разрешать какое-то наследование между файлами.То есть я бы хотел, чтобы один файл частично перекрывал другой.В идеале я хотел бы даже разрешить множественное наследование, при этом традиционные конфликты порядка разрешения обрабатываются просто путем запрета получения любого значения более чем от одного родителя.
Не создает никакихПодводные камни для введенных пользователем данных (например, текст без кавычек может быть строкой в YAML, но если это зарезервированное слово, то это не так).
Это то, что доступно сили мне нужно собрать его с нуля?
YAML не работает, потому что не допускает наследования между файлами, имеет недостатки, как описано выше, и имеет много альтернативных синтаксических конструкций для выполнениято же самое.
И YAML / XML не работает, потому что описание ни того, ни другого не поместится на одной странице.
Спасибо!