Введение

XML Information Set (XML Infoset) – это спецификация W3C, описывающая абстрактную модель данных XML-документа в терминах набора информационных элементов. Определения в спецификации XML Information Set предназначены для использования в других спецификациях, которым необходимо ссылаться на информацию в корректном XML-документе. XML-документ имеет набор информации, если он корректен и удовлетворяет ограничениям пространств имен. Для наличия набора информации не требуется, чтобы XML-документ был валидным. Набор информации может содержать до одиннадцати различных типов информационных элементов:

Информационный элемент документа (всегда присутствует)
Информационные элементы элемента
Информационные элементы атрибута
Информационные элементы инструкции по обработке
Информационные элементы неразвернутой ссылки на сущность
Информационные элементы символов
Информационные элементы комментария
Информационный элемент объявления типа документа
Информационные элементы нераспарсенной сущности
Информационные элементы нотации
Информационные элементы пространства имен

XML изначально разрабатывался без формального определения его набора информации. Это было формализовано лишь последующей работой, начавшейся в 1999 году и впервые опубликованной в качестве отдельного рабочего проекта W3C в конце декабря того же года. Рекомендация Infoset, второе издание, была принята 4 февраля 2004 года. Если версия 2.0 стандарта XML когда-либо будет опубликована, вероятно, она включит в себя рекомендацию Infoset как неотъемлемую часть этого стандарта.

Увеличение инфосета

Расширение или модификация инфосета — это процесс изменения инфосета в ходе валидации схемы, например, путем добавления атрибутов по умолчанию. Расширенный инфосет называется инфосетом после валидации схемы, или PSVI. Расширение инфосета является предметом споров, поскольку утверждается, что оно нарушает модульность и может приводить к проблемам совместимости, так как приложения получают различную информацию в зависимости от того, была ли выполнена валидация. Расширение инфосета поддерживается XML Schema, но не RELAX NG.

Сериализация

Как правило, XML Information Set сериализуется в формате XML. Существуют также форматы сериализации для Binary XML, CSV и JSON.