Двунаправленные преобразования JSON / XML - PullRequest
0 голосов
/ 06 апреля 2020

Из-за некоторых необоротных бизнес-требований мне нужно хранить некоторые XML документы. Пока все мои другие данные хранятся в пн go. Я обсуждаю три варианта: сохранение XML в виде строки в Mon go и использование подстрок для запросов, использование базы данных XML, преобразование между ними с помощью существующей библиотеки / написание собственного инструмента преобразования.

Кроме того, мое приложение в основном python. Прежде чем выбрать, я ищу ошибки с преобразованием. Вот что я могу вспомнить ...

  1. Пн go использует bson и не может гарантировать порядок ключей (https://docs.mongodb.com/manual/core/document/#document -порядок полей )
  2. Существующие пакеты XML / JSON не допускают дублирования ключей, которые не являются смежными. приказ. Именно поэтому я решил написать свой собственный конвертер. Кажется возможным хранить все дочерние элементы в списках, чтобы поддерживать порядок. Вот пример того, что я имею в виду ...
<elem>
  <a>part1</a>
  <b>something</b>
  <a>part2</a>
</elem>

converts to

"elem": {
  "a": [ "part1", "part2" ],
  "b": "something"
}

Я знаю, что этот вопрос немного открытый, но я ищу какие-либо рекомендации по выбору направления и любые другие ошибки Я должен высматривать. Заранее спасибо.

1 Ответ

0 голосов
/ 06 апреля 2020

MongoDB может хранить XML данных (благодаря возможности хранить текст). Вопрос ничего не говорит о том, как запрашивать эти данные, что, как правило, очень важно при принятии решения о том, как хранить какие-либо данные.

Mon go использует bson и не может гарантировать порядок ключей

BSON сохраняет порядок ключей. Согласно спецификациям c, документы BSON фактически являются списками пар ключ-значение, и, следовательно, порядок ключей сохраняется.

Если вы используете структуру данных, которая не сохранить порядок ключей (например, типы словаря / отображения в некоторых языках программирования) и сериализовать такие структуры данных в BSON, тогда порядок ключей может быть потерян, но сама BSON поддерживает порядок ключей. Обратите внимание, что Python словари упорядочены по состоянию на 3.6.

Существующие пакеты XML / JSON не допускают дублирования ключей с отдельным порядком.

Я не понял этой части.

Единственное ограничение, которое вы не упомянули, - это документы BSON размером до 16 МБ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...