Формат файлу xml-маніфесту
У цьому розділі на прикладах описується формат файлу маніфесту XML. Схему файлу XML-маніфесту см. В розділі Схема файлу XML-маніфесту.
Базовий XML-формат виглядає так:
Колекція PackageMetaData зберігає пари «ключ-значення», де ключі - це рядки, значення - це теж рядки. Нижче наведено приклад колекції PackageMetaData.
Сума байт UTF-8, яка кодує ключ, і значення не повинна перевищувати 1 МБ. Пакети з метаданими розміром більше 1 МБ можуть бути відхилені всіма обработчиками пакетів.
Колекція PackageContents описує файли, які складають вміст пакету. Сюди входить ім'я файлу, розмір, шлях і необов'язковий хеш-код SHA256 вмісту. Нижче наведено приклад колекції PackageContents.
Елемент вмісту - це іменований канал байтів і ресурси великих двійкових об'єктів, які можуть мати необмежений розмір. Даний потік байтів може додатково мати перевірку цілісності для виключення помилок.
Допустимі значення для елемента IntegrityCheckHashAlgortihm - це None і Sha256. Якщо вказано None. то елемент IntegrityCheckHash повинен бути порожнім. Для Sha256 рядок повинна представляти байти хеша в кодуванні base-64. Цей рядок повинна мати тип XSD xs: base64Binary.
Колекція PackageLayouts зіставляє ресурси вмісту з певною структурою каталогів і файлів на віртуальній машині Windows Azure. Структура файлу включає час створення і зміни, а також відносний шлях. Шляхи повинні розглядатися як задані в певної цільової файлової системи. Оскільки синтаксис шляху залежить від операційної системи, їх слід обробляти як непрозорі значення. Оскільки структури - це просто опис зіставлення, розмір структури пропорційний числу файлів в структурі, а не розміром вмісту. Це означає, що в майбутньому творці пакета потенційно можуть додавати альтернативні структури, наприклад структуру для Linux і структуру для операційних систем Windows, а потім збирати пакети для цих операційних систем. Але на даний момент пакети в Windows Azure SDK 1.7 повинні слідувати правилам і обмеженням Windows.
Колекція PackageLayouts зіставляє вміст пакету з певною структурою каталогів і файлів на віртуальній машині Windows Azure. Структури пакета іменуються, і пакет може мати різні структури. Кожна структура описує спосіб отримання байтового потоку елемента пакетного вмісту в файл цільової файлової системи. Кожна структура - це список унікальних шляхів до файлу. Шляхи відповідають угодам про імена цільової файлової системи. Творці пакета потенційно можуть включати альтернативні структури і збирати пакети, призначені для певних операційних систем. Наприклад, пакет може містити одну структуру для Linux і одну для Windows. Структура також містить метадані файлу, наприклад час його створення і зміни (UTC), а також атрибути тільки для читання.
У наступному прикладі колекція PackageLayouts містить дві структури з іменами fileCollection1 і fileCollection2. Обидві ці структури описують створення двох файлів ресурсів пакета: Content / Example / WithoutHash і Content / Example / WithHash. Однак вони зіставляють вміст з різними іменами файлів. У fileCollection1 імена файлів унікальні (з урахуванням регістру). У fileCollection2 імена відрізняються тільки регістром. У наведеному прикладі показано, що формат пакета може підтримувати різні ОС, а творці пакетів при формуванні структур файлів повинні враховувати обмеження цільової файлової системи. Друга структура файлу, fileCollection2. може бути залучена тільки в такий ОС, де файлова система враховує регістр. Зокрема, рядок, закодована в аргументі FilePath. при порівнянні з урахуванням регістра обробляється як непрозорий ключ.