представляет собой подмножество XML-схем, что обеспечивает с одной стороны возможность работы с файлами в данном формате стандартным XML-инструментарием, а с другой стороны упрощает разрабатываемые программы для импорта/экспорта структурированных данных в этом формате.
На практике подсистемы отличаются по многим характеристикам, и создать формат данных, с которым работали бы абсолютно все подсистемы, и при этом использовались бы возможности их всех, практически невозможно. Поэтому подсистемы, соответствующие данному описанию, делятся на три группы по уровню совместимости:
Подсистемы, которые работают только со своей жесткой структурой. Им самим не нужна схема документа. Она де-факто "вшита" в программу. Для таких подсистем файл со схемой является постоянным. Они экспортируют данные в другие подсистемы, но импортируют только свои или сделанные другими специально для них.
Подсистемы, которым все равно, с какими именно документами работать. Они обрабатывают документы со структурой, неизвестной в момент написания программы. Такие подсистемы удовлетворяют требованиям, указанным в пункте один, а также импортируют данные из любой другой подсистемы как первого, так и второго типа. Примерами таких подсистемы являются архивы.
Подсистемы, которые способны изменять данные, созданные другими подсистемами, с сохранением схемы. Примером такой подсистемы является редактор форм.
Основные принципы:
Связывание по именам атрибутов.
Значимость атрибутов.
Выделение из файла частей, ассоциируемых с документами.
Что касается эффективности, то данный формат предназначен для организации передачи данных между различными информационными системами. Поэтому программы разбора будут иметь содержательную функциональность, и, как следствие, не самую высокую производительность. Следовательно, не рекомендуется применять полновесный разборщик в приложениях реального времени, где от этого может пострадать общая производительность системы.
Файл в едином формате представляет собой пакет документов. С логической точки зрения пакет состоит из одного или нескольких структурированных документов. Полями документов могут быть, в том числе, и бинарные (неструктурированные) данные. Это позволяет хранить в пакете данные произвольной природы. С физической точки зрения пакет состоит из одного или нескольких файлов. Один из файлов является главным, остальные - присоединенными. Главный файл содержит основную информацию о пакете, присоединенные - документы или бинарные данные, если они не хранятся внутри главного файла.
Главный файл представляет собой сообщение в формате SOAP. Содержимое SOAP-заголовка данный стандарт не регламентирует. Прикладные программы должны заполнять заголовок с учетом потребностей конкретной среды передачи данных. Тело пакета состоит из одного или нескольких документов. Каждый документ может содержаться непосредственно в сообщении, а может в присоединенном файле.
Экспортирующая программа может самостоятельно решать вопрос о распределении документов - во внешние файлы или в тело сообщения. Однако размер сообщения и каждого из документов не должен превышать 10 Mb. Размер пакета в целом не ограничивается. Импортирующая программа может целиком загружать в память файл сообщения или отдельный документ, например, средствами DOM (Document Object Modal). Однако она не должна загружать целиком пакет, т.к. никаких гарантий о его размере импортирующая программа не имеет.
В пакет могут входить разные типы документов. Стандарт предусматривает несколько стандартных типов, прикладные программы могут вводить свои. Среди стандартных типов особо выделяется схема. Схема используется для проверки документов и для передачи информации об их структуре. Каждая схема имеет собственный глобально уникальный идентификатор. В качестве этого идентификатора используется URI.
Передача пакета осуществляется одним из двух способов:
В виде файла с расширением .XFF (XML File Format). Этот файл представляет собой ZIP-архив, содержащий все файлы пакета.
В виде директории.
Данный формат является ограниченно платформонезависимым. Это означает, что при отсутствии шифрования и электронно-цифровой подписи файл может быть записан на одной операционной системе, а прочитан на другой. Поддерживаются следующие операционные системы: WIN32, DOS, UNIX, OS/400, MacOS.
Формат основывается на следующих стандартах: XML, XML Schema, SOAP/XML Protocol, XML Encryption, XML Signing, XML Key Management.