XML format не устраивает Google.

No xml please!

Google не устраивает XML format. Вообщем то, он многих не устраивает. Причины банальны – большой объем данных и медленный парсинг. Поэтому они решили создать свой – Protocol buffers. Который по их мнению меньше, быстрее и проще. Языко и платформо независимый. Из доступных языков программирования – Java, Python и вездесущий C++. Для Csharp пока в разработке. Почему? Потому что в Google это не основной язык.

Еще один вариант сериализации структурированных данных. Хотя они и предусмотрели текстовый и бинарный формат для сообщений.

XML:

 <person>
    <name>John Doe</name>
    <email>jdoe@example.com</email>
  </person>

Protocol buffers

person {
  name: "John Doe"
  email: "jdoe@example.com"
}

Формат:

message Person {
  required string name = 1;
  optional string email = 2;
}

Ничего не напоминает? Очень похоже на Delphi Forms. Тот же самый принцип. Да и в виде XML можно записать кратко. Чем хуже так?

<person name=”John Doe” email=”jdoe@example.com”/>

Больше всего меня интересовало расширение формата. Хоть и было заявлено что расширение – это легко.

Нельзя:

  • Вы не должны изменять номер тэга у поля.
  • Вы не должны добавлять/удалять обязательные поля (то есть required – это навсегда :) и они честно предупреждают об этом)

Можно:

  • Удалять необязательные или повторящиеся поля.
  • Добавлять необязательные или повторящиеся поля, но обязательно с новым тэгом. Новый имеется ввиду ни разу пользованный.

Не очень большой список ограничений.

Второй вопрос который меня мучал – конверсия Binary->Text. Её по моему нет. Потому что описание сообщения в бинарном формате не хранится. Поэтому получив binary файл – вряд ли узнаешь что же там.

Не увидел, или не нашёл можно ли использовать repeated message, или разрешено делать только повторяемые поля. Если да, то это минус.

Не думаю что это действительно замена XML.

Tags: , ,