Можно ли сжать Xml с помощью </> для завершения элементов? - PullRequest
5 голосов
/ 26 января 2009

Есть ли причина, по которой XML такой, как этот:

<person>    
    <firstname>Joe</firstname>    
    <lastname>Plumber</lastname>
</person>

не может быть сжато так для передачи клиент / сервер.

<person>    
    <firstname>Joe</>    
    <lastname>Plumber</>
</>

Это будет меньше - и немного быстрее разобрать.

Предполагая, что нет граничных условий, означающих, что это не сработает - есть ли библиотеки, чтобы сделать это?

Гуглить это сложно, получается:

Ваш поиск - </> - не соответствует ни одному документы.

Предложения:

Попробуйте другие ключевые слова.

Редактировать: Кажется, путаница в том, что я спрашиваю. Я говорю о моей собственной форме сжатия. Я полностью осознаю, что в нынешнем виде это НЕ XML. Сервер и клиент должны быть «включены в схему». Это было бы особенно полезно для схем с очень длинными именами элементов, поскольку полоса пропускания, занимаемая этими именами элементов, будет уменьшена вдвое.

Ответы [ 14 ]

0 голосов
/ 26 января 2009

Если не использовать gzip или что-либо подобное, я бы просто заменил каждый тег более коротким тэгом перед отправкой и перед использованием xml в конце получения. Таким образом, вы получите что-то вроде этого:

<a>
    <b>Joe</b>
    <c>Plumber</c>
</a>

Упрощение использования любого стандартного парсера для итерации по всем узлам и соответствующей замены имен узлов.

0 голосов
/ 26 января 2009

Да, xml - это своего рода тяжелый формат. Но у этого есть определенные преимущества.

Если вы думаете, что xml слишком тяжел для вашего использования, взгляните на JSON. Это легкий вес, но менее функциональный, чем xml.

А если вам нужны действительно маленькие файлы, используйте двоичный формат; -).

0 голосов
/ 26 января 2009

Есть ли причина, по которой вы не используете YAML или JSON?

0 голосов
/ 26 января 2009

Извините, но не в спецификации . Если у вас большой XML-файл, лучше сжать его с помощью zip, gzip и тому подобного.

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