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

StackOverflow https://stackoverflow.com/questions/839229

Вопрос

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

Цитата :

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

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

Что это за "информационная сеть", которая

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

Учтите также, что с текстом имеет смысл делать такие вещи, как конкатенация строк.Вы не хотите объединять "<" в середину XML-элемента.Сначала вы должны его закодировать.Зачем вам было бы это делать, если бы это был просто текст?Например, если бы вы использовали DOM, вы бы просто сказали element .innerText = "<";При сериализации "<" было бы закодировано в "<".И все же это одна и та же информационная сеть.

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

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

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

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

Пожалуйста, ознакомьтесь с этой ссылкой из MSDN.http://msdn.microsoft.com/en-us/library/aa468561.aspx

Это действительно хорошее объяснение концепций, и, надеюсь, оно прояснит его для вас.

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top