Справочник по схеме шаблона приложения для UE-V 2.1 с пакетом обновления 1 (SP1)

Виртуализация средств взаимодействия с пользователем (Майкрософт) (UE-V) 2.1 с пакетом обновления 1 (SP1) использует шаблоны расположения параметров XML для определения параметров классического приложения и параметров Windows, которые записываются и применяются UE-V. UE-V включает набор шаблонов расположения параметров по умолчанию. Вы также можете создавать настраиваемые шаблоны расположения параметров с помощью генератора UE-V.

Опытный пользователь может настроить XML-файл для шаблона расположения параметров. В этой статье описывается XML-структура шаблонов расположения параметров UE-V 2.1 с пакетом обновления 1 (SP1) и приводятся рекомендации по редактированию этих файлов.

Справочник по схеме шаблона приложения UE-V 2.1 с пакетом обновления 1 (SP1)

В этом разделе описывается XML-структура шаблона расположения параметров UE-V 2.1 с пакетом обновления 1 (SP1) и приводятся рекомендации по редактированию этого файла.

Объявление и атрибут кодирования XML

Обязательный: True

Тип: String

В объявлении XML должен быть указан атрибут XML версии 1.0 (<?xml version="1.0">). Шаблоны расположения параметров, созданные генератором UE-V, сохраняются в кодировке UTF-8, хотя кодировка явно не указана. Рекомендуется включить атрибут encoding="UTF-8" в этот элемент, как рекомендуется. Все шаблоны, включенные в продукт, также указывают этот тег. Дополнительные сведения см. в документах в %ProgramFiles%\Microsoft User Experience Virtualization\Templates.

Пример:

<?xml version="1.0" encoding="UTF-8"?>

Пространство имен и корневой элемент

Обязательный: True

Тип: String

UE-V использует https://schemas.microsoft.com/UserExperienceVirtualization/2012/SettingsLocationTemplate пространство имен для всех приложений. SettingsLocationTemplate является корневым элементом и содержит все остальные элементы. Ссылка SettingsLocationTemplate во всех шаблонах с помощью этого тега:

<SettingsLocationTemplate xmlns='https://schemas.microsoft.com/UserExperienceVirtualization/2012/SettingsLocationTemplate'>

Типы данных

Эти элементы представляют собой типы данных для схемы шаблона приложения UE-V.

  • GUID: GUID описывает стандартное регулярное выражение (регулярное выражение) глобально уникального идентификатора (GUID) в форме \{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}. Этот GUID используется в элементе Filesetting\Root\KnownFolder для проверки форматирования хорошо известных папок.

  • FilenameString: FilenameString — это имя файла процесса, который необходимо отслеживать. Следующие регулярные выражения ограничивают его значения: [^\\\?\*\|<>/:]+. Другими словами, они не могут содержать следующие символы:

    • Символы обратной косой черты (\)
    • Звездочка (*)
    • Вопросительный знак (?)
    • Символ канала (|)
    • Знак больше (>)
    • Знак меньше (<)
    • Косая черта (/)
    • Двоеточие (:)
  • IDString: IDString ссылается на значение идентификатора элементов Application, SettingsLocationTemplate и Common (используется для описания наборов приложений с общими параметрами). Он ограничен тем же регулярным выражением, что и FilenameString ([^\\\?\*\|<>/:]+).

  • TemplateVersion: TemplateVersion — это целочисленное значение, используемое для описания редакции шаблона расположения параметров. Его значение может варьироваться от 0 до 2147483647.

  • Пустой: пустой означает значение NULL. Эти данные используются в Process\ShellProcess, чтобы указать, что процесс для мониторинга отсутствует. Это значение не следует использовать ни в каких шаблонах приложений.

  • Автор. Тип данных Author — это сложный тип, который определяет автора шаблона. Он содержит два дочерних элемента: Name и Email. В типе данных Author элемент Name является обязательным, а элемент Email является необязательным. Этот тип описан более подробно в элементе SettingsLocationTemplate.

  • Range: Range определяет целочисленный класс, состоящий из двух дочерних элементов: Минимум и Максимум. Этот тип данных реализован в типе данных ProcessVersion. Если задано значение , необходимо включить значения Минимальное и Максимальное.

  • ProcessVersion: ProcessVersion определяет тип с четырьмя дочерними элементами: Major, Minor, Build и Patch. Этот тип данных используется элементом Process для заполнения значений ProductVersion и FileVersion. Данные для этого типа являются значением Range. Основной дочерний элемент является обязательным, а остальные — необязательным.

  • Архитектура. Архитектура перечисляет два возможных значения: Win32 и Win64. Эти значения используются для указания архитектуры процесса.

  • Процесс. Тип данных Process — это контейнер, используемый для описания процессов мониторинга UE-V. Он содержит шесть дочерних элементов: Filename, Architecture, ProductName, FileDescription, ProductVersion и FileVersion. В этой таблице подробно описаны соответствующие типы данных каждого элемента:

Элемент Тип данных Обязательное
Имя файла FilenameString True
Architecture (Архитектура) Architecture (Архитектура) False
ProductName Строка False
FileDescription Строка False
ProductVersion ProcessVersion False
FileVersion ProcessVersion False
  • Процессы. Тип данных Processes представляет контейнер для коллекции из одного или нескольких элементов Process. В типе последовательности процессов поддерживаются два дочерних элемента: Process и ShellProcess. Process — это элемент типа Process, а shellProcess имеет тип данных Empty. В последовательности должен быть определен по крайней мере один элемент.

  • Путь. Путь используется RegistrySetting и FileSetting для ссылки на пути к реестру и файлам. Этот элемент поддерживает два необязательных атрибута: Recursive и DeleteIfNotFound. Для обоих значений задано значение default="False".

    Рекурсивный указывает, что путь и все вложенные папки включены для параметров файла или что для параметров реестра включены все дочерние разделы реестра. В обоих случаях все элементы на текущем уровне включаются в захваченные данные. Для объекта FileSettings все файлы в указанной папке включаются в данные, захваченные UE-V, но папки не включаются. Для путей реестра все значения в текущем пути записываются, но дочерние разделы реестра не записываются. В обоих случаях следует соблюдать осторожность, чтобы избежать записи больших наборов данных или большого количества элементов.

    Атрибут DeleteIfNotFound удаляет параметр из данных пути к хранилищу параметров пользователя. Этот атрибут может быть полезен в тех случаях, когда удаление этих параметров из пакета экономит большой объем дискового пространства на файловом сервере пути к хранилищу параметров.

  • FileMask: FileMask указывает только определенные типы файлов для папки, определяемой атрибутом Path. Например, Путь может иметь значение C:\users\username\files , а FileMask — *.txt для включения только текстовых файлов.

  • RegistrySetting. RegistrySetting представляет контейнер для разделов и значений реестра и соответствующего требуемого поведения агента UE-V. В этом типе определены четыре дочерних элемента: Path, Name, Exclude и последовательность значений Path и Name.

  • FileSetting. FileSetting содержит параметры, связанные с файлами и путями к файлам. Определены четыре дочерних элемента: Root, Path, FileMask и Exclude. Root является обязательным, а остальные — необязательными.

  • Параметры. Атрибут Settings — это контейнер для всех параметров, которые применяются к конкретному шаблону. Он содержит экземпляры параметров Registry, File, SystemParameter и CustomAction, описанных ранее. Кроме того, он также может содержать следующие дочерние элементы с описанным поведением:

Элемент Описание
Асинхронная репликация Пакеты асинхронных параметров применяются без блокировки запуска приложения, поэтому запуск приложения продолжается, пока параметры еще применяются. Этот элемент полезен для параметров, которые могут применяться асинхронно, например get/set с помощью API, например SystemParameterSetting.
PreventOverlappingSynchronization По умолчанию UE-V сохраняет параметры только для приложения, когда последний экземпляр приложения, использующий шаблон, закрыт. Если для этого элемента задано значение false, UE-V экспортирует параметры, даже если запущены другие экземпляры приложения. Подходящие шаблоны ( те, которые содержат раздел элемента Common), поставляемые с UE-V, используют этот флаг, чтобы включить экспорт общих параметров при закрытии приложения, предотвращая экспорт параметров приложения до закрытия последнего экземпляра.
AlwaysApplySettings Этот параметр принудительно применяет импортированный пакет параметров, даже если между пакетом и текущим состоянием приложения нет различий. Этот параметр следует использовать только в особых случаях, так как он может замедлить импорт параметров.

Элемент Name

Обязательный: True

Тип: String

Имя указывает уникальное имя шаблона расположения параметров. Используется для отображения при ссылке на шаблон в журналах WMI, PowerShell, Просмотр событий и отладки. Как правило, не следует ссылаться на сведения о версии, так как это можно возразить из элемента ProductVersion. Например, укажите <Name>My Application</Name> вместо <Name>My Application 1.1</Name>.

Примечание.

UE-V не ссылается на внешние DTD, поэтому невозможно использовать именованные сущности в шаблоне расположения параметров. Например, не используйте &reg; для ссылки на знак зарегистрированной торговой марки (®). Вместо этого используйте канонические нумерованные ссылки, чтобы включить эти типы специальных символов, например &#174 для символа зарегистрированного товарного знака (®). Это правило применяется ко всем строковым значениям в этом документе.

Полный список сущностей символов см. в разделе W3 XHTML 1.0 — DTDs. Документы в кодировке UTF-8 могут содержать символы Юникода напрямую. Сохранение шаблонов с помощью генератора UE-V автоматически преобразует сущности символов в их представления в Юникоде.

Элемент ID

Обязательный: True

Тип: String

Идентификатор заполняет уникальный идентификатор для определенного шаблона. Этот тег становится основным идентификатором, который агент UE-V использует для ссылки на шаблон во время выполнения (например, см. выходные данные Get-UevTemplate и Get-UevTemplateProgram командлетов PowerShell). По соглашению этот тег не должен содержать пробелы, что упрощает создание скриптов. Номера версий приложений должны быть указаны в этом элементе, чтобы упростить идентификацию шаблона, например <ID>MicrosoftCalculator6</ID> или <ID>MicrosoftOffice2010Win64</ID>.

Элемент Version

Обязательный: True

Тип: Целое число

Минимальное значение: 0

Максимальное значение: 2147483647

Версия определяет версию шаблона расположения параметров для административного отслеживания изменений. Генератор UE-V автоматически увеличивает это число на единицу при каждом сохранении шаблона. Обратите внимание, что это поле должно быть целым числом; дробные значения, например <Version>2.5</Version> , не допускаются.

Совет

Заметки об изменениях версий можно сохранять с помощью тегов комментариев <!-- -->XML, например:

  <!--
     Version History

     Version 1 Jul 05, 2012 Initial template created by Generator - Denise@Contoso.com
     Version 2 Jul 31, 2012 Added support for app.exe v2.1.3 - Mark@Contoso.com
     Version 3 Jan 01, 2013 Added font settings support - Mark@Contoso.com
     Version 4 Jan 31, 2013 Added support for plugin settings - Tony@Contoso.com
   -->
  <Version>4</Version>

Важно.

Это значение запрашивается, чтобы определить, следует ли применять новую версию шаблона к существующему шаблону в следующих экземплярах:

  • При выполнении запланированной задачи автоматического обновления шаблона.

  • При выполнении командлета PowerShell Update-UevTemplate.

  • При вызове microsoft\uev:SettingsLocationTemplate метода Update через WMI.

Элемент Author

Обязательный: False

Тип: String

Автор определяет создателя шаблона расположения параметров. Поддерживаются два необязательных дочерних элемента: Name и Email. Оба атрибута являются необязательными, но если указан Email дочерний элемент, он должен сопровождаться элементом Name. Автор ссылается на полное имя контакта для шаблона расположения параметров, а адрес электронной почты должен ссылаться на адрес электронной почты автора. Рекомендуется включать эти сведения в общедоступные шаблоны.

Процессы и элемент процесса

Обязательный: True

Тип: Элемент

Элемент Processes содержит по крайней мере один <Process> элемент, который, в свою очередь, содержит следующие дочерние элементы: Filename, Architecture, ProductName, FileDescription, ProductVersion и FileVersion. Дочерний элемент Filename является обязательным, а остальные — необязательными. Полностью заполненный элемент содержит теги, аналогичные следующему примеру:

<Process>
  <Filename>MyApplication.exe</Filename>
  <Architecture>Win64</Architecture>
  <ProductName> MyApplication </ProductName>
  <FileDescription>MyApplication.exe</FileDescription>
  <ProductVersion>
    <Major Minimum="2" Maximum="2" />
    <Minor Minimum="0" Maximum="0" />
    <Build Minimum="0" Maximum="0" />
    <Patch Minimum="5" Maximum="5" />
  </ProductVersion>
  <FileVersion>
    <Major Minimum="2" Maximum="2" />
    <Minor Minimum="0" Maximum="0" />
    <Build Minimum="0" Maximum="0" />
    <Patch Minimum="5" Maximum="5" />
  </FileVersion>
</Process>

Имя файла

Обязательный: True

Тип: String

Имя файла — это фактическое имя файла исполняемого файла, отображаемое в файловой системе. Этот элемент задает основное условие, которое UE-V использует для оценки того, применяется ли шаблон к процессу. Этот элемент должен быть указан в XML-файле шаблона расположения параметров.

Допустимые имена файлов не могут соответствовать следующему регулярному выражению: [^\\\?\*\|<>/:]+. Другими словами, они не могут содержать следующие символы:

  • Символы обратной косой черты (\)
  • Звездочка (*)
  • Вопросительный знак (?)
  • Символ канала (|)
  • Знак больше (>)
  • Знак меньше (<)
  • Косая черта (/)
  • Двоеточие (:)

Совет

Чтобы протестировать строку для этого регулярного выражения, используйте командное окно PowerShell и замените имя исполняемого файла именем YourFileName:

"YourFileName.exe" -match "[\\\?\*\|<>/:]+"

Значение True указывает, что строка содержит недопустимые символы. Ниже приведены некоторые примеры недопустимых значений.

  • \\server\share\program.exe

  • Program*.exe

  • Pro?ram.exe

  • Program<1>.exe

Примечание.

Генератор UE-V кодирует символы больше и меньше, &gt; чем и &lt; соответственно.

В редких случаях значение FileName не обязательно будет включать расширение .exe, но оно должно быть указано как часть значения. Например, <Filename>MyApplictication.exe</Filename> следует указать вместо <Filename>MyApplictication</Filename>. Во втором примере шаблон не применяется к процессу, если фактическое имя исполняемого файла — MyApplication.exe.

Architecture (Архитектура)

Обязательный: False

Тип: Архитектура (строка)

Архитектура относится к архитектуре процессора, для которой был скомпилирован целевой исполняемый файл. Допустимые значения: Win32 для 32-разрядных приложений или Win64 для 64-разрядных приложений. Если он имеется, этот тег ограничивает применимость шаблона расположения параметров к определенной архитектуре приложения. Например, сравните %ProgramFiles%\Microsoft User Experience Virtualization\templates\MicrosoftOffice2010Win32.1SP1.xml файлы и MicrosoftOffice2010Win64.xml , включенные в UE-V. Это полезно, если относительные пути меняются между разными версиями исполняемого файла или если параметры добавляются или удаляются при переходе от одной архитектуры процессора к другой.

Если этот элемент отсутствует, шаблон расположения параметров игнорирует архитектуру процесса и применяется как к 32-разрядным, так и к 64-разрядным процессам, если применяются имя файла и другие атрибуты.

Примечание.

UE-V не поддерживает процессоры ARM в этой версии.

ProductName

Обязательный: False

Тип: String

ProductName — это необязательный элемент, используемый для идентификации продукта в целях администрирования или создания отчетов. ProductName отличается от filename тем, что нет ограничений регулярного выражения на его значение. Это позволяет легко понять описание процесса, в котором имя исполняемого файла не очевидно. Пример:

<Process>
  <Filename>MyApplication.exe</Filename>
  <ProductName>My Application 6.x by Contoso.com</ProductName>
  <ProductVersion>
    <Major Minimum="6" Maximum="6" />
  </ProductVersion>
</Process>

FileDescription

Обязательный: False

Тип: String

FileDescription — это необязательный тег, который позволяет использовать административное описание исполняемого файла. Это свободное текстовое поле, которое может быть полезно для различения нескольких исполняемых файлов в программном пакете, где необходимо определить функцию исполняемого файла.

Например, в подходящем приложении может быть полезно предоставить напоминания о функции двух исполняемых файлов (MyApplication.exe и MyApplicationHelper.exe), как показано ниже:

<Processes>
  <Process>
    <Filename>MyApplication.exe</Filename>
    <FileDescription>My Application Main Engine</ FileDescription>
    <ProductVersion>
      <Major Minimum="6" Maximum="6" />
    </ProductVersion>
  </Process>
  <Process>
    <Filename>MyApplicationHelper.exe</Filename>
    <FileDescription>My Application Background Process Executable</FileDescription>
    <ProductVersion>
      <Major Minimum="6" Maximum="6" />
    </ProductVersion>
  </Process>
</Processes>

ProductVersion

Обязательный: False

Тип: String

ProductVersion относится к основным и дополнительным версиям продукта файла, а также к уровню сборки и исправлений. ProductVersion является необязательным элементом, но если он указан, он должен содержать по крайней мере дочерний элемент Major. Значение должно выражать диапазон в форме Minimum="X" Maximum="Y", где X и Y являются целыми числами. Значения Минимум и Максимум могут быть идентичными.

Элементы версии продукта и файла можно оставить неуказанными. Это делает версию шаблона независимой, то есть шаблон применяется ко всем версиям указанного исполняемого файла.

Пример 1. Продукт версии 1.0

Версия продукта: 1.0, указанная в генераторе UE-V, создает следующий XML-код:

<ProductVersion>
  <Major Minimum="1" Maximum="1" />
  <Minor Minimum="0" Maximum="0" />
</ProductVersion>

Пример 2. Продукт версии 5.0.2.1000

Версия файла: 5.0.2.1000, указанная в генераторе UE-V, создает следующий XML-код:

<FileVersion>
  <Major Minimum="5" Maximum="5" />
  <Minor Minimum="0" Maximum="0" />
  <Build Minimum="2" Maximum="2" />
  <Patch Minimum="1000" Maximum="1000" />
</FileVersion>

Неправильный пример 1 — неполный диапазон

Присутствует только атрибут Minimum. Максимальное значение также должно быть включено в диапазон.

<ProductVersion>
  <Major Minimum="2" />
</ProductVersion>

Неправильный пример 2. Дополнительный параметр, указанный без элемента Major

Присутствует только элемент Minor. Майор также должен быть включен.

<ProductVersion>
  <Minor Minimum="0" Maximum="0" />
</ProductVersion>

FileVersion

Обязательный: False

Тип: String

FileVersion различает версию выпуска опубликованного приложения и сведения о внутренней сборке исполняемого файла компонента. Для большинства коммерческих приложений эти числа идентичны. Если они различаются, версия продукта файла указывает на общую версию файла, а версию файла — определенную сборку файла (как в исправлении или обновлении). Это уникально идентифицирует файлы без нарушения логики обнаружения.

Чтобы определить версию продукта и версию файла конкретного исполняемого файла, щелкните правой кнопкой мыши файл в Windows Обозреватель, выберите Свойства, а затем на вкладке Сведения.

Включение элемента FileVersion для приложения позволяет более детально настраивать логику обнаружения, но не требуется для большинства приложений. Сначала проверяются параметры элемента ProductVersion, а затем — FileVersion. Применяется более строгий параметр.

Дочерние элементы и правила синтаксиса для FileVersion идентичны элементам ProductVersion.

<Process>
  <Filename>MSACCESS.EXE</Filename>
  <Architecture>Win32</Architecture>
  <ProductVersion>
    <Major Minimum="14" Maximum="14" />
    <Minor Minimum="0" Maximum="0" />
  </ProductVersion>
  <FileVersion>
    <Major Minimum="14" Maximum="14" />
    <Minor Minimum="0" Maximum="0" />
  </FileVersion>
</Process>

Элемент приложения

Приложение — это контейнер для параметров, применяемых к конкретному приложению. Это коллекция следующих полей и типов.

Поле или тип Описание
Name Задает уникальное имя для шаблона расположения параметров. Используется для отображения при ссылке на шаблон в журналах WMI, PowerShell, Просмотр событий и отладки. Дополнительные сведения см. в разделе Имя.
ID Заполняет уникальный идентификатор для определенного шаблона. Этот тег становится основным идентификатором, который агент UE-V использует для ссылки на шаблон во время выполнения. Дополнительные сведения см. в разделе Идентификатор.
Описание Необязательное описание шаблона.
LocalizedNames Необязательное имя, отображаемое в пользовательском интерфейсе, локализованное языковым стандартом языка.
Локализованные описания Необязательное описание шаблона, локализованное языковым стандартом.
Версия Определяет версию шаблона расположения параметров для административного отслеживания изменений. Дополнительные сведения см. в разделе Версия.
DeferToMSAccount Определяет, включен ли этот шаблон с учетной записью Майкрософт. Если для пользователя на компьютере включена синхронизация MSA, этот шаблон автоматически отключается.
DeferToOffice365 Как и в случае с MSA, этот шаблон определяет, включен ли этот шаблон в Office365. Если для синхронизации параметров используется Office 365, этот шаблон автоматически отключается.
FixedProfile Указывает, что этот шаблон может быть связан только с профилем, указанным в этом элементе, и не может быть изменен с помощью WMI или PowerShell.
Процессы Контейнер для коллекции из одного или нескольких элементов Process. Дополнительные сведения см. в разделе Процессы.
Параметры Контейнер для всех параметров, применяемых к конкретному шаблону. Он содержит экземпляры параметров Registry, File, SystemParameter и CustomAction. Дополнительные сведения см. в разделе Параметры в типах данных.

Элемент Common

Common похож на элемент Application, но он всегда связан с двумя или более элементами Application. Раздел Общие представляет набор параметров, которые совместно используются этими экземплярами приложения. Это коллекция следующих полей и типов.

Поле или тип Описание
Name Задает уникальное имя для шаблона расположения параметров. Используется для отображения при ссылке на шаблон в журналах WMI, PowerShell, Просмотр событий и отладки. Дополнительные сведения см. в разделе Имя.
ID Заполняет уникальный идентификатор для определенного шаблона. Этот тег становится основным идентификатором, который агент UE-V использует для ссылки на шаблон во время выполнения. Дополнительные сведения см. в разделе Идентификатор.
Описание Необязательное описание шаблона.
LocalizedNames Необязательное имя, отображаемое в пользовательском интерфейсе, локализованное языковым стандартом языка.
Локализованные описания Необязательное описание шаблона, локализованное языковым стандартом.
Версия Определяет версию шаблона расположения параметров для административного отслеживания изменений. Дополнительные сведения см. в разделе Версия.
DeferToMSAccount Определяет, включен ли этот шаблон с учетной записью Майкрософт. Если для пользователя на компьютере включена синхронизация MSA, этот шаблон автоматически отключается.
DeferToOffice365 Как и в случае с MSA, этот шаблон определяет, включен ли этот шаблон в Office365. Если для синхронизации параметров используется Office 365, этот шаблон автоматически отключается.
FixedProfile Указывает, что этот шаблон может быть связан только с профилем, указанным в этом элементе, и не может быть изменен с помощью WMI или PowerShell.
Параметры Контейнер для всех параметров, применяемых к конкретному шаблону. Он содержит экземпляры параметров Registry, File, SystemParameter и CustomAction. Дополнительные сведения см. в разделе Параметры в типах данных.

Элемент SettingsLocationTemplate

Этот элемент определяет параметры для одного приложения или набора приложений.

Поле или тип Описание
Name Задает уникальное имя для шаблона расположения параметров. Используется для отображения при ссылке на шаблон в журналах WMI, PowerShell, Просмотр событий и отладки. Дополнительные сведения см. в разделе Имя.
ID Заполняет уникальный идентификатор для определенного шаблона. Этот тег становится основным идентификатором, который агент UE-V использует для ссылки на шаблон во время выполнения. Дополнительные сведения см. в разделе Идентификатор.
Описание Необязательное описание шаблона.
LocalizedNames Необязательное имя, отображаемое в пользовательском интерфейсе, локализованное языковым стандартом языка.
Локализованные описания Необязательное описание шаблона, локализованное языковым стандартом.

Приложение: SettingsLocationTemplate.xsd

Ниже приведен файл SettingsLocationTemplate.xsd с элементами, дочерними элементами, атрибутами и параметрами:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="UevSettingsLocationTemplate"
  targetNamespace="https://schemas.microsoft.com/UserExperienceVirtualization/2013A/SettingsLocationTemplate"
  elementFormDefault="qualified"
  xmlns="https://schemas.microsoft.com/UserExperienceVirtualization/2013A/SettingsLocationTemplate"
  xmlns:mstns="https://schemas.microsoft.com/UserExperienceVirtualization/2013A/SettingsLocationTemplate"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:simpleType name="Guid">
        <xs:restriction base="xs:string">
            <xs:pattern value="\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="FilenameString">
        <xs:restriction base="xs:string">
            <xs:pattern value="[^\\\?\*\|&lt;&gt;/:]+" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="IDString">
        <xs:restriction base="xs:string">
            <xs:pattern value="[^\\\?\*\|&lt;&gt;/:.]+" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="CompositeIDString">
        <xs:restriction base="xs:string">
            <xs:pattern value="[^\\\?\*\|&lt;&gt;/:.]+([.][^\\\?\*\|&lt;&gt;/:.]+)?" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="TemplateVersion">
        <xs:restriction base="xs:integer">
            <xs:minInclusive value="0" />
            <xs:maxInclusive value="2147483647" />
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="Empty">
        <xs:sequence/>
    </xs:complexType>

    <xs:complexType name="LocalizedString">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="Locale" type="xs:string" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="LocalizedName">
        <xs:sequence>
            <xs:element name="Name" type="LocalizedString" minOccurs="1" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="LocalizedDescription">
        <xs:sequence>
            <xs:element name="Description" type="LocalizedString" minOccurs="1" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ReplacedTemplates">
      <xs:sequence>
        <xs:element name="ID" type="CompositeIDString" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Author">
        <xs:all>
            <xs:element name="Name" type="xs:string" minOccurs="1" />
            <xs:element name="Email" type="xs:string" minOccurs="0" />
        </xs:all>
    </xs:complexType>

    <xs:complexType name="Range">
        <xs:attribute name="Minimum" type="xs:integer" use="required"/>
        <xs:attribute name="Maximum" type="xs:integer" use="required"/>
    </xs:complexType>

    <xs:complexType name="ProcessVersion">
        <xs:sequence>
            <xs:element name="Major" type="Range" minOccurs="1" />
            <xs:element name="Minor" type="Range" minOccurs="0" />
            <xs:element name="Build" type="Range" minOccurs="0" />
            <xs:element name="Patch" type="Range" minOccurs="0" />
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="Architecture">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Win32"/>
            <xs:enumeration value="Win64"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="Process">
        <xs:sequence>
            <xs:element name="Filename" type="FilenameString" minOccurs="1" />
            <xs:element name="Architecture" type="Architecture" minOccurs="0" />
            <xs:element name="ProductName" type="xs:string" minOccurs="0" />
            <xs:element name="FileDescription" type="xs:string" minOccurs="0" />
            <xs:element name="ProductVersion" type="ProcessVersion" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="FileVersion" type="ProcessVersion" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Processes">
        <xs:sequence>
            <xs:choice minOccurs="1">
                <xs:element name="Process" type="Process" />
                <xs:element name="ShellProcess" type="Empty" />
            </xs:choice>
            <xs:element name="Process" type="Process" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Path">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="Recursive" type="xs:boolean" default="false"/>
                <xs:attribute name="DeleteIfNotFound" type="xs:boolean" default="false"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="RegistrySetting">
        <xs:sequence>
            <xs:element name="Path" type="Path" />
            <xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
            <xs:element name="Exclude" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Path" type="Path" minOccurs="0" />
                        <xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="FileSetting">
        <xs:sequence>

            <xs:element name="Root">
                <xs:complexType>
                    <xs:choice>
                        <xs:element name="KnownFolder" type="Guid" />
                        <xs:element name="RegistryEntry" type="xs:string" />
                        <xs:element name="EnvironmentVariable" type="xs:string" />
                    </xs:choice>
                </xs:complexType>
            </xs:element>

            <xs:element name="Path" minOccurs="0" type="Path" />
            <xs:element name="FileMask" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>

            <xs:element name="Exclude" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Path" type="Path" minOccurs="0" />
                        <xs:element name="FileMask" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>

        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="CustomActionSetting">
        <xs:restriction base="xs:anyURI"/>
    </xs:simpleType>

    <xs:simpleType name="SystemParameterSetting">
        <xs:restriction base="xs:string">

            <!-- Accessibility parameters -->
            <xs:enumeration value="AccessTimeout"/>
            <xs:enumeration value="AudioDescription"/>
            <xs:enumeration value="ClientAreaAnimation"/>
            <xs:enumeration value="DisableOverlappedContent"/>
            <xs:enumeration value="FilterKeys"/>
            <xs:enumeration value="FocusBorderHeight"/>
            <xs:enumeration value="FocusBorderWidth"/>
            <xs:enumeration value="HighContrast"/>
            <xs:enumeration value="MessageDuration"/>
            <xs:enumeration value="MouseClickLock"/>
            <xs:enumeration value="MouseClickLockTime"/>
            <xs:enumeration value="MouseKeys"/>
            <xs:enumeration value="MouseSonar"/>
            <xs:enumeration value="MouseVanish"/>
            <xs:enumeration value="ScreenReader"/>
            <xs:enumeration value="ShowSounds"/>
            <xs:enumeration value="SoundSentry"/>
            <xs:enumeration value="StickyKeys"/>
            <xs:enumeration value="ToggleKeys"/>

            <!-- Input parameters -->
            <xs:enumeration value="Beep"/>
            <xs:enumeration value="BlockSendInputResets"/>
            <xs:enumeration value="DefaultInputLang"/>
            <xs:enumeration value="DoubleClickTime"/>
            <xs:enumeration value="DoubleClkHeight"/>
            <xs:enumeration value="DoubleClkWidth"/>
            <xs:enumeration value="KeyboardCues"/>
            <xs:enumeration value="KeyboardDelay"/>
            <xs:enumeration value="KeyboardPref"/>
            <xs:enumeration value="KeyboardSpeed"/>
            <xs:enumeration value="Mouse"/>
            <xs:enumeration value="MouseButtonSwap"/>
            <xs:enumeration value="MouseHoverHeight"/>
            <xs:enumeration value="MouseHoverTime"/>
            <xs:enumeration value="MouseHoverWidth"/>
            <xs:enumeration value="MouseSpeed"/>
            <xs:enumeration value="MouseTrails"/>
            <xs:enumeration value="SnapToDefButton"/>
            <xs:enumeration value="WheelScrollChars"/>
            <xs:enumeration value="WheelScrollLines"/>

            <!-- Desktop parameters (limited subset) -->
            <xs:enumeration value="DeskWallpaper"/>
            <xs:enumeration value="DesktopColor"/>

        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="Settings">
        <xs:sequence>
            <xs:element name="Asynchronous" type="xs:boolean" minOccurs="0" />
            <xs:element name="PreventOverlappingSynchronization" type="xs:boolean" minOccurs="0" />
            <xs:element name="AlwaysApplySettings" type="xs:boolean" minOccurs="0" />
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="Registry" type="RegistrySetting" />
                <xs:element name="File" type="FileSetting" />
                <xs:element name="SystemParameter" type="SystemParameterSetting" />
                <xs:element name="CustomAction" type="CustomActionSetting" />
            </xs:choice>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Common">
        <xs:sequence>
            <xs:element name="Name" type="xs:string" />
            <xs:element name="ID" type="IDString" />
            <xs:element name="ReplacedTemplates" type="ReplacedTemplates" minOccurs="0" />
            <xs:element name="Description" type="xs:string" minOccurs="0" />
            <xs:element name="LocalizedNames" type="LocalizedName" minOccurs="0" />
            <xs:element name="LocalizedDescriptions" type="LocalizedDescription" minOccurs="0" />
            <xs:element name="Version" type="xs:integer" />
            <xs:element name="DeferToMSAccount" type="Empty"  minOccurs="0" />
            <xs:element name="DeferToOffice365" type="Empty" minOccurs="0" />
            <xs:element name="Settings" type="Settings" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Application">
        <xs:sequence>
            <xs:element name="Name" type="xs:string" />
            <xs:element name="ID" type="IDString" />
            <xs:element name="ReplacedTemplates" type="ReplacedTemplates" minOccurs="0" />
            <xs:element name="Description" type="xs:string" minOccurs="0" />
            <xs:element name="LocalizedNames" type="LocalizedName" minOccurs="0" />
            <xs:element name="LocalizedDescriptions" type="LocalizedDescription" minOccurs="0" />
            <xs:element name="Version" type="xs:integer" />
            <xs:element name="DeferToMSAccount" type="Empty"  minOccurs="0" />
            <xs:element name="DeferToOffice365" type="Empty" minOccurs="0" />
            <xs:element name="Processes" type="Processes" />
            <xs:element name="Settings" type="Settings" />
        </xs:sequence>
    </xs:complexType>


    <xs:element name="SettingsLocationTemplate">
        <xs:complexType>
            <xs:sequence>

                <xs:element name="Name" type="xs:string" />
                <xs:element name="ID" type="IDString" />
                <xs:element name="Description" type="xs:string" minOccurs="0" />
                <xs:element name="LocalizedNames" type="LocalizedName" minOccurs="0" />
                <xs:element name="LocalizedDescriptions" type="LocalizedDescription" minOccurs="0" />

                <xs:choice>

                    <!-- Single application -->
                    <xs:sequence>
                        <xs:element name="ReplacedTemplates" type="ReplacedTemplates" minOccurs="0" />
                        <xs:element name="Version" type="TemplateVersion" />
                        <xs:element name="Author" type="Author" minOccurs="0" />
                        <xs:element name="FixedProfile" type="xs:string"  minOccurs="0" />
                        <xs:element name="DeferToMSAccount" type="Empty"  minOccurs="0" />
                        <xs:element name="DeferToOffice365" type="Empty" minOccurs="0" />
                        <xs:element name="Processes" type="Processes" />
                        <xs:element name="Settings" type="Settings" />
                    </xs:sequence>

                    <!-- Suite of applications -->
                    <xs:sequence>
                        <xs:element name="ManageSuiteOnly" type="xs:boolean" minOccurs="0" />
                        <xs:element name="Author" type="Author" minOccurs="0" />
                        <xs:element name="FixedProfile" type="xs:string"  minOccurs="0" />
                        <xs:element name="Common" type="Common" />
                        <xs:element name="Application" type="Application" minOccurs="2" maxOccurs="unbounded" />
                    </xs:sequence>

                </xs:choice>

            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <!-- SettingsLocationTemplate -->

</xs:schema>

Работа с пользовательскими шаблонами UE-V 2.1 с пакетом обновления 1 (SP1) и генератором UE-V 2.1 с пакетом обновления 1 (SP1)

Технический справочник по UE-V 2.1 с пакетом обновления 1 (SP1)