Подтвердить что ты не робот

Что такое XML-инфосет и каким образом он отличается от XML-документа?

Я попытался прочитать http://www.w3.org/TR/xml-infoset/ и запись в википедии. Но, честно говоря, я все еще не уверен, в чем разница.

Цитата:

XML-документ содержит набор данных если он хорошо сформирован и удовлетворяет Ограничения пространства имен. Здесь нет требование для XML-документа действительный для получения информации набор.

Из записи в википедии, похоже, не имеет смысла. Как недействительный документ имеет какую-либо семантику и, следовательно, как он может быть "информационным" набором?

Что это за "информационный", который

хорошо сформирован и удовлетворяет ограниченному пространству имен

XML имеет? И каким образом он полезен сам по себе. Другими словами, почему это, семантически говоря, необходимо для определения XML infoset? Есть ли какая-либо информация, которая не может быть представлена ​​в XML? Если это так, я могу увидеть ограниченный набор XML Infoset, но если не уверен, что XML Infoset не имеет смысла, как термин "информация"?

Спасибо за интересные ответы: Я до сих пор не могу понять, почему информационный материал Xml имеет какую-либо цель, а не термин infoset. Но вы, ребята, дали мне прямой ответ на вопрос.

4b9b3361

Ответ 1

Полезный способ разглядеть различие между текстом XML и информационным наполнением XML состоит в том, чтобы рассмотреть Fast Infoset. Это двоичное представление XML-информации.

Итак, у вас есть абстрактный "информационный", который представляет собой концептуальную модель, представляющую XML-данные (узлы, элементы, атрибуты и т.д.). Это может быть физически представлено как текстовый XML-документ или как поток Fast Infoset. Оба представляют одни и те же данные, но по-разному.

Ответ 2

XML не является текстом. XML "является" информационным материалом XML. Затем это может быть сериализовано в текст в XML-документе, но это информационный материал XML является реальностью.

Информационный набор может существовать в памяти как дерево DOM, например. Он существует в памяти как реализация абстрактной объектной модели.

Что делать, если я сериализую его как UTF-8, а затем как UTF-16. Скорее всего, результатом будут два разных набора бит, но тот же самый информационный.

Считайте также, что с текстом имеет смысл делать что-то вроде конкатенации строк. Вы не хотите объединять "<" в середине элемента XML. Вы должны сначала закодировать его. Зачем вам это делать, если это всего лишь текст? Например, если вы использовали DOM, вы бы просто сказали element.InnerText = "<" ; Когда сериализуется, "<" будет закодирован в "& lt;". Но это тот же самый информационный материал.

Ответ 3

Действительный документ XML соответствует требованиям DTD или XSD (или других стандартов). Если он хорошо сформирован, он все равно может быть "недействительным", если он нарушает правила в данном DTD или XSD.

Изменить: я новичок в этой области XML, но похоже, что информационное наполнение представляет собой "абстрактный уровень" описания частей документа XML, независимо от фактической технической реализации, что может быть, например, Реализация объектной модели документа.

Ответ 4

Информационный материал XML представляет собой абстрактный набор понятий, таких как атрибуты и сущности, которые могут использоваться для описания действительного XML-документа. Согласно спецификации, "Набор информации о документе XML состоит из нескольких информационных элементов, информация, установленная для любого хорошо сформированного XML-документа, будет содержать по крайней мере элемент информации о документе и несколько других".

Просто потому, что XML-документ является информационным, не означает, что он соответствует XSD и является допустимым XML-документом.

Ответ 6

Хороший пример, который я только что встретил, находится в David Chappell WCF PDF. Вот как это работает при использовании TCP, например:

Чтобы обеспечить оптимальную производительность, когда оба стороны в сообщении построены на WCF, проводная кодировка, используемая в этом case - оптимизированная бинарная версия МЫЛО. Сообщения по-прежнему соответствуют структура данных SOAP-сообщения, упоминается как его Инфосет, но их кодирование использует двоичное представление этой Информации, а не стандартные угловые скобки-и-текст формат XML. Использование этого параметра имеют смысл общаться с клиентского приложения центра обработки вызовов, поскольку его также построены на WCF, и производительность является главной задачей.

Ответ 7

XML - это язык, поэтому он имеет синтаксис, а XML Infoset имеет спецификацию модели данных, это связано с тем, что приложения нуждаются в том, что они основаны на модели данных, а не на синтаксисе; XML поставляется до XML Infoset; Ссылка: соображения протокола для доступа к веб-ссылке2

Ответ 8

XML Infoset - это требование о том, как вы должны структурировать сериализованный XML-документ.

Сериализованный XML может иметь разные формы, например, двоичный формат (Fast Infoset) или текст (самая популярная форма).

В основном для формата документа XML (текст) каждый элемент и атрибут должны быть определены в XSD через соответствующее пространство имен.

Здесь вы найдете пример.