2013-02-11 3 views
0

Основываясь на my question here, что было бы лучшим способом объединить читаемый в формате XML формат файла с блоком двоичных данных? Было бы лучше создать два файла (один XML-совместимый, связанный со вторым файлом с чистыми двоичными данными) или создать не XML-совместимую смесь XML и двоичных данных? Существуют ли какие-либо такие «смеси» (чтобы избежать создания чего-то совершенно проприетарного)? Я хочу, чтобы эффективно сочетать некоторые удобочитаемые данные с огромным количеством данных, которые не должны быть удобочитаемыми для человека, но которые необходимо хранить как можно более эффективно (поскольку это могут быть гигабайты данных).Как объединить XML-формат с двоичными данными?

+1

XML Для небольших количеств данные вы можете включать в себя двоичные данные, закодированные в base64, в XML как текст без проблем. Для больших объемов данных решение зависит от конкретных сценариев использования (как данные будут созданы и доступны для доступа), это может быть либо внешняя ссылка из XML в соседний двоичный файл, либо может быть добавлена ​​в XML с двоичными данными или любым другим способом, который вы можете обрабатывать в вашем приложении. –

+1

Вы можете попробовать быстрый infoset –

+0

Есть ли способ добавить двоичный блок, как вы предложили, и по-прежнему оставаться XML-конформатом, например, путем определения длины XML-части документа? –

ответ

1

Нет стандартного способа сделать это, но это простая идиома, которую я видел несколько раз.

Пойдите с несоответствующим сочетанием, но с целью упростить чтение всего блока XML в строку и затем проанализировать эту строку.

Это поддерживает гибкость, позволяя вам выбирать между большинством синтаксических анализаторов XML.

Так что формат файла я предлагаю, чтобы позволить быстро загрузки блока XML является:

  1. Префикс с длиной секции
  2. XML раздел
  3. Binary раздел
Смежные вопросы