Как определить и проверить файл OOXML?
Мне нужно иметь возможность определить, что данный файл представляет собой файл OOXML, основываясь на содержимом файла, а не на его расширении.
OOXML-файлы на самом деле представляют собой набор XML и текстовых файлов в zip-контейнере, что означает, что я не могу использовать магическое число файла, поскольку оно будет просто указывать, что это zip-файл.
Так что я действительно спрашиваю, есть ли какие-либо файлы, которые должны присутствовать в контейнере OOXML Open Packaging Convention (OPC)? Если это так, то наличие этого файла в контейнере OPC указывает на то, что это, вероятно, файл OOXML, а отсутствие этого файла указывает на то, что он определенно не является файлом OOXML.
Этот вопрос является OOXML-версией этого вопроса ODF.
3 ответа
Да, есть способ. Перейдите на OpenXMLDeveloper.org и загрузите PPTX, который называется "02: Open XML Packages" (презентация 02). Затем на слайде 12 рассказывается, как идентифицировать документ Open XML. Это document.xml, файлы rels и файл [Content_Types].xml (наиболее важный элемент ContentType). Здесь важно использовать то, что находится внутри файла, а не саму структуру файла (Open Packaging Convention).
Еще один замечательный ресурс - Open XML Markup Explained. Глава 1, а затем "Настройка основного документа" - отличное место, чтобы узнать о структуре документа Word. Структуры Excel и PowerPoint перечислены позже.
Ответ, аналогичный тому, который я дал на ваш вопрос ODF, - посмотрите техническую спецификацию формата.
Ссылка OOXMLValidator — относительно новый инструмент, который я использовал для проверки файла OOXML. Это помогло мне выявить потенциальные проблемы в пакете файлов OOXML.