Referência de esquema de modelo de aplicativo para UE-V (Windows 10)

A UE-V (User Experience Virtualization) usa modelos de local de configurações XML para definir as configurações do aplicativo desktop e as configurações do Windows capturadas e aplicadas pela UE-V. UE-V inclui um conjunto de modelos de local de configurações padrão. Você também pode criar modelos de local de configurações personalizadas com o gerador de modelo UE-V.

Um usuário avançado pode personalizar o arquivo XML para um modelo de local de configurações. Este tópico detalha a estrutura XML dos modelos de local de configurações UE-V e fornece diretrizes para editar esses arquivos.

Referência de esquema de modelo de aplicativo UE-V

Esta seção detalha a estrutura XML do modelo de local de configurações UE-V e fornece diretrizes para editar este arquivo.

Nesta seção

Atributo XML Declaration and Encoding

Obrigatório: TrueType: String

A declaração XML deve especificar o atributo XML versão 1.0 (<?xml version="1.0">). Os modelos de localização de configurações criados pelo gerador de modelo UE-V são salvos na codificação UTF-8, embora a codificação não seja especificada explicitamente. Recomendamos que você inclua o atributo encoding="UTF-8" nesse elemento como uma prática recomendada. Todos os modelos incluídos com o produto especificam essa marca também (consulte os documentos em %ProgramFiles%\Microsoft User Experience Virtualization\Templates para referência). Por exemplo:

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

Namespace e Elemento Raiz

Obrigatório: TrueType: String

O UE-V usa o https://schemas.microsoft.com/UserExperienceVirtualization/2012/SettingsLocationTemplate namespace para todos os aplicativos. SettingsLocationTemplate é o elemento raiz e contém todos os outros elementos. Configurações de referênciaLocationTemplate em todos os modelos usando esta marca:

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

Tipos de dados

Esses tipos de dados são os únicos para o esquema de modelo de aplicativo UE-V.

GUID GUID descreve uma expressão regular de identificador globalmente exclusiva padrão no formulário "\{[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}\}". Esse GUID é usado no elemento Filesetting\Root\KnownFolder para verificar a formatação de pastas conhecidas.

FilenameString FilenameString refere-se ao nome do arquivo de um processo a ser monitorado. Seus valores são restritos pelo regex [^\\\?\*\|<>/:]+, (ou seja, eles podem não conter caracteres backslash, asterisco ou caracteres wild-cartão, o caractere pipe, maior ou menor que o sinal, barra para a frente ou caracteres de cólon).

IDString IDString refere-se ao valor de ID de elementos de aplicativo, configuraçõesLocationTemplate e elementos comuns (usados para descrever pacotes de aplicativos que compartilham configurações comuns). Ele é restrito pelo mesmo regex que FilenameString ([^\\\?\*\|<>/:]+).

TemplateVersion TemplateVersion é um valor inteiro usado para descrever a revisão do modelo de local de configurações. Seu valor pode variar de 0 a 2147483647.

Vazio Vazio refere-se a um valor nulo. Esse tipo de dados é usado no Process\ShellProcess para indicar que não há nenhum processo a ser monitorado. Esse valor não deve ser usado em nenhum modelo de aplicativo.

Autor O tipo de dados Author é um tipo complexo que identifica o autor de um modelo. Ele contém dois elementos filho: Nome e Email. No tipo de dados Author, o elemento Name é obrigatório enquanto o elemento Email é opcional. Esse tipo é descrito com mais detalhes no elemento SettingsLocationTemplate.

Gama O intervalo define uma classe inteiro que consiste em dois elementos filho: Mínimo e Máximo. Esse tipo de dados é implementado no tipo de dados ProcessVersion. Se especificado, os valores Mínimo e Máximo devem ser incluídos.

ProcessVersion ProcessVersion define um tipo com quatro elementos filho: Major, Minor, Build e Patch. Esse tipo de dados é usado pelo elemento Process para preencher seus valores ProductVersion e FileVersion. Os dados desse tipo são um valor Range. O elemento filho principal é obrigatório e os outros são opcionais.

Arquitetura A arquitetura enumera dois valores possíveis: Win32 e Win64. Esses valores são usados para especificar a arquitetura do processo.

Processo O tipo de dados Process é um contêiner usado para descrever processos a serem monitorados pela UE-V. Ele contém seis elementos filho: Nome de arquivo, Arquitetura, ProductName, FileDescription, ProductVersion e FileVersion. Esta tabela detalha o respectivo tipo de dados de cada elemento:

Elemento Tipo de Dados Obrigatório
Filename FilenameString True
Arquitetura Arquitetura False
ProductName String False
Filedescription String False
ProductVersion ProcessVersion False
Fileversion ProcessVersion False

Processos O tipo de dados Process representa um contêiner para uma coleção de um ou mais elementos process. Há suporte para dois elementos filho no tipo de sequência Processos: Process e ShellProcess. Process é um elemento do tipo Process e ShellProcess é do tipo de dados Empty. Pelo menos um item deve ser identificado na sequência.

Caminho O caminho é consumido por RegistrySetting e FileSetting para se referir a caminhos de registro e arquivo. Esse elemento dá suporte a dois atributos opcionais: Recursivo e DeleteIfNotFound. Ambos os valores são definidos como default="False".

O recursivo indica que o caminho e todas as subpastas estão incluídas para configurações de arquivo ou que todas as chaves do registro filho estão incluídas nas configurações do registro. Em ambos os casos, todos os itens no nível atual são incluídos nos dados capturados. Para um objeto FileSettings, todos os arquivos dentro da pasta especificada são incluídos nos dados capturados pela UE-V, mas as pastas não estão incluídas. Para caminhos de registro, todos os valores no caminho atual são capturados, mas as chaves do registro filho não são capturadas. Em ambos os casos, deve-se tomar cuidado para evitar a captura de grandes conjuntos de dados ou um grande número de itens.

O atributo DeleteIfNotFound remove a configuração dos dados do caminho de armazenamento de configurações do usuário. Essa remoção pode ser desejável nos casos em que a remoção dessas configurações do pacote salvará uma grande quantidade de espaço em disco no servidor de arquivos de caminho de armazenamento de configurações.

FileMask FileMask especifica apenas determinados tipos de arquivo para a pasta definida por Path. Por exemplo, Path pode ser C:\users\username\files e FileMask pode ser *.txt para incluir apenas arquivos de texto.

RegistrySetting RegistrySetting representa um contêiner para chaves e valores do registro e o comportamento desejado associado por parte do serviço UE-V. Quatro elementos filho são definidos nesse tipo: Caminho, Nome, Exclusão e uma sequência dos valores Caminho e Nome.

FileSetting FileSetting contém parâmetros associados a caminhos de arquivos e arquivos. Quatro elementos filho são definidos: Raiz, Caminho, FileMask e Excluir. Raiz é obrigatória e as outras são opcionais.

Configurações As configurações são um contêiner para todas as configurações que se aplicam a um modelo específico. Ele contém instâncias das configurações Registry, File, SystemParameter e CustomAction descritas anteriormente. Além disso, ele também pode conter os seguintes elementos filho com comportamentos descritos:

Elemento Descrição
Assíncrono Pacotes de configurações assíncronas são aplicados sem bloquear a inicialização do aplicativo para que o início do aplicativo prossiga enquanto as configurações ainda estão sendo aplicadas. Esse elemento é útil para configurações que podem ser aplicadas de forma assíncrona, como essas configurações get/set por meio de uma API, como SystemParameterSetting.
PreventOverlappingSynchronization Por padrão, o UE-V só salva as configurações de um aplicativo quando a última instância de um aplicativo que usa o modelo é fechada. Quando esse elemento é definido como 'false', o UE-V exporta as configurações mesmo que outras instâncias de um aplicativo estejam em execução. Modelos adequados – aqueles modelos que incluem uma seção elemento Common – que são enviados com UE-V usam esse sinalizador para permitir que as configurações compartilhadas sempre exportem no fechamento do aplicativo, impedindo que as configurações específicas do aplicativo exportem até que a última instância seja fechada.
AlwaysApplySettings Esse parâmetro força um pacote de configurações importado a ser aplicado mesmo que não haja diferenças entre o pacote e o estado atual do aplicativo. Esse parâmetro deve ser usado apenas em casos especiais, pois pode reduzir a importação de configurações.

Elemento Name

Obrigatório: TrueType: String

O nome especifica um nome exclusivo para o modelo de local de configurações. Esse nome é usado para fins de exibição ao referenciar o modelo em logs WMI, PowerShell, Visualizador de Eventos e depuração. Em geral, evite referenciar informações de versão, pois essa referência pode ser objeto do elemento ProductVersion. Por exemplo, especifique <Name>My Application</Name> em vez de <Name>My Application 1.1</Name>.

Observação

O UE-V não faz referência a DTDs externos, portanto, não é possível usar entidades nomeadas em um modelo de local de configurações. Por exemplo, não use ® para se referir ao sinal ® de marca registrada . Em vez disso, use referências numéricas canônicas para incluir esses tipos de caracteres especiais, por exemplo, & nº 174 para o ® caractere. Essa regra se aplica a todos os valores de cadeia de caracteres neste documento.

Confira http://www.w3.org/TR/xhtml1/dtds.html uma lista completa de entidades de caracteres. Documentos codificados por UTF-8 podem incluir os caracteres Unicode diretamente. Salvar modelos por meio do gerador de modelo UE-V converte entidades de caracteres em suas representações Unicode automaticamente.

Elemento ID

Obrigatório: TrueType: String

A ID preenche um identificador exclusivo para um modelo específico. Essa marca se torna o identificador primário que o serviço UE-V usa para referenciar o modelo em runtime (por exemplo, consulte a saída dos cmdlets Get-UevTemplate e Get-UevTemplateProgram PowerShell). Por convenção, essa marca não deve conter espaços, o que simplifica o script. Os números de versão dos aplicativos devem ser especificados nesse elemento para permitir a fácil identificação do modelo, como <ID>MicrosoftOffice2016Win64</ID>.

Elemento Version

Obrigatório:Tipo Verdadeiro:Valor mínimo inteiro: 0valor máximo: 2147483647

A versão identifica a versão do modelo de local de configurações para o acompanhamento administrativo de alterações. O gerador de modelo UE-V incrementa automaticamente esse número por um cada vez que o modelo é salvo. Observe que esse campo deve ser um inteiro; valores fracionários, como <Version>2.5</Version> não são permitidos.

Dica

Você pode salvar anotações sobre alterações de versão usando marcas <!-- -->de comentário XML , por exemplo:

<!--
   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>

Importante

Esse valor é consultado para determinar se uma nova versão de um modelo deve ser aplicada a um modelo existente nessas instâncias:

  • Quando a tarefa de Atualização Automática de Modelo agendada for executada
  • Quando o cmdlet Update-UevTemplate PowerShell for executado
  • Quando o método microsoft\uev:SettingsLocationTemplate Update é chamado por meio do WMI

Elemento Author

Obrigatório: Tipo falso: cadeia de caracteres

O autor identifica o criador do modelo de localização de configurações. Há suporte para dois elementos filho opcionais: Nome e Email. Ambos os atributos são opcionais, mas, se o elemento filho Email for especificado, ele deverá ser acompanhado pelo elemento Name. O autor refere-se ao nome completo do contato para o modelo de local de configurações e o email deve se referir a um endereço de email para o autor. Recomendamos que você inclua essas informações em modelos publicados publicamente.

Processos e Elemento de Processo

Obrigatório: TrueType: Element

Os processos contêm pelo menos um <Process> elemento, que por sua vez contém os seguintes elementos filho: Filename, Architecture, ProductName, FileDescription, ProductVersion e FileVersion. O elemento filho Filename é obrigatório e os outros são opcionais. Um elemento totalmente preenchido contém marcas semelhantes a este exemplo:

<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>

Filename

Obrigatório: TrueType: String

Nome do arquivo refere-se ao nome do arquivo real do executável como ele aparece no sistema de arquivos. Esse elemento especifica o critério primário que a UE-V usa para avaliar se um modelo se aplica a um processo ou não. Esse elemento deve ser especificado no XML do modelo de localização de configurações.

Os nomes de arquivo válidos não devem corresponder à expressão regular [^\\\?\*\|<>/:]+, ou seja, eles podem não conter caracteres backslash, asterisco ou ponto de interrogação caracteres wild-cartão, o caractere pipe, maior ou menor que sinal, barra para a frente ou cólon (o \ ? * | <> / ou : caracteres.).

Dica

Para testar uma cadeia de caracteres nesse regex, use uma janela de comando do PowerShell e substitua o nome do executável por YourFileName:

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

Um valor de True indica que a cadeia de caracteres contém caracteres ilegais. Aqui estão alguns exemplos de valores ilegais:

  • \\server\share\program.exe
  • Program*.exe
  • Pro?ram.exe
  • Programa<1>.exe

Observação

O gerador de modelo UE-V codifica o maior e menor que os caracteres como > e < , respectivamente, .

Em circunstâncias raras, o valor FileName não incluirá necessariamente a extensão .exe, mas deve ser especificada como parte do valor. Por exemplo, <Filename>MyApplication.exe</Filename> deve ser especificado em vez de <Filename>MyApplication</Filename>. O segundo exemplo não aplicará o modelo ao processo se o nome real do arquivo executável for "MyApplication.exe".

Arquitetura

Obrigatório: Tipo falso: arquitetura (cadeia de caracteres)

Arquitetura refere-se à arquitetura do processador para a qual o executável de destino foi compilado. Os valores válidos são Win32 para aplicativos de 32 bits ou Win64 para aplicativos de 64 bits. Se estiver presente, essa marca limitará a aplicabilidade do modelo de localização de configurações a uma arquitetura de aplicativo específica. Para obter um exemplo dessa restrição de aplicabilidade, compare os arquivos %ProgramFiles%\Microsoft User Experience Virtualization\templates\ MicrosoftOffice2016Win32.xml e MicrosoftOffice2016Win64.xml incluídos com UE-V. Essa restrição de aplicabilidade é útil quando os caminhos relativos mudam entre diferentes versões de um executável ou se as configurações foram adicionadas ou removidas ao mover de uma arquitetura de processador para outra.

Se esse elemento estiver ausente, o modelo de local de configurações ignorará a arquitetura do processo e se aplicará a processos de 32 bits e 64 bits se o nome do arquivo e outros atributos se aplicarem.

Observação

O UE-V não dá suporte a processadores ARM nesta versão.

ProductName

Obrigatório: Tipo falso: cadeia de caracteres

ProductName é um elemento opcional usado para identificar um produto para fins administrativos ou relatórios. ProductName é diferente de Filename, na qual não há restrições de expressão regulares em seu valor. Essa flexibilidade permite descrições mais facilmente compreendidas de um processo em que o nome executável pode não ser óbvio. Por exemplo:

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

Filedescription

Obrigatório: Tipo falso: cadeia de caracteres

FileDescription é uma marca opcional que permite uma descrição administrativa do arquivo executável. Essa marca é um campo de texto gratuito e pode ser útil para distinguir vários executáveis dentro de um pacote de software em que há a necessidade de identificar a função do executável.

Por exemplo, em um aplicativo adequado, pode ser útil fornecer lembretes sobre a função de dois executáveis (MyApplication.exe e MyApplicationHelper.exe), conforme mostrado aqui:

<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

Obrigatório: Tipo falso: cadeia de caracteres

ProductVersion refere-se às versões principais e menores do produto de um arquivo, bem como a um nível de build e patch. ProductVersion é um elemento opcional, mas, se especificado, ele deve conter pelo menos o elemento filho principal. O valor deve expressar um intervalo no formulário Minimum="X" Maximum="Y" em que X e Y são inteiros. Os valores Mínimo e Máximo podem ser idênticos.

Os elementos de versão do produto e do arquivo podem ser deixados não especificados. Isso torna o modelo "versão agnóstica", o que significa que o modelo se aplicará a todas as versões do executável especificado.

Exemplo 1:

Versão do produto: 1.0 especificado no gerador de modelo UE-V produz o seguinte XML:

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

Exemplo 2:

Versão do arquivo: 5.0.2.1000 especificado no gerador de modelo UE-V produz o seguinte XML:

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

Exemplo incorreto 1 – intervalo incompleto:

Somente o atributo Mínimo está presente. O máximo também deve ser incluído em um intervalo.

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

Exemplo incorreto 2 – Menor especificado sem elemento Principal:

Somente o elemento Minor está presente. O major também deve ser incluído.

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

Fileversion

Obrigatório: Tipo falso: cadeia de caracteres

FileVersion diferencia entre a versão de versão de um aplicativo publicado e os detalhes internos de build de um componente executável. Para a maioria dos aplicativos comerciais, esses números são idênticos. Onde eles variam, a versão do produto de um arquivo indica uma identificação de versão genérica de um arquivo, enquanto a versão do arquivo indica um build específico de um arquivo (como no exemplo de um hotfix ou atualização). Essa versão do arquivo identifica exclusivamente arquivos sem quebrar a lógica de detecção.

Para determinar a versão do produto e a versão do arquivo de um executável específico, clique com o botão direito do mouse no arquivo no Windows Explorer, selecione Propriedades e clique na guia Detalhes.

Incluir um elemento FileVersion para um aplicativo permite uma lógica de detecção de ajuste fino mais granular, mas não é necessário para a maioria dos aplicativos. As configurações do elemento ProductVersion são marcadas primeiro e, em seguida, FileVersion é verificada. A configuração mais restritiva será aplicada.

Os elementos filho e as regras de sintaxe para FileVersion são idênticos a esses elementos e regras de 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>

Elemento Application

O aplicativo é um contêiner para configurações que se aplicam a um aplicativo específico. É uma coleção dos seguintes campos/tipos.

Campo/Tipo Descrição
Name Especifica um nome exclusivo para o modelo de local de configurações. Esse nome é usado para fins de exibição ao referenciar o modelo em logs WMI, PowerShell, Visualizador de Eventos e depuração. Para obter mais informações, consulte Nome.
ID Preenche um identificador exclusivo para um modelo específico. Essa marca se torna o identificador primário que o serviço UE-V usa para fazer referência ao modelo no runtime. Para obter mais informações, consulte ID.
Descrição Uma descrição opcional do modelo.
Nomes localizados Um nome opcional exibido na interface do usuário, localizado por uma localidade de idioma.
LocalizedDescriptions Uma descrição de modelo opcional localizada por uma localidade de idioma.
Versão Identifica a versão do modelo de local de configurações para o acompanhamento administrativo de alterações. Para obter mais informações, consulte Versão.
DeferToMSAccount Controla se esse modelo está habilitado em conjunto com uma conta Microsoft ou não. Se a sincronização MSA estiver habilitada para um usuário em um computador, esse modelo será desabilitado automaticamente.
DeferToOffice365 Semelhante ao MSA, esse tipo controla se esse modelo está habilitado em conjunto com o Office361. Se Office 365 estiver sendo usado para sincronizar configurações, esse modelo será desabilitado automaticamente.
FixedProfile Especifica que esse modelo só pode ser associado ao perfil especificado dentro desse elemento e não pode ser alterado por meio da WMI ou do PowerShell.
Processos Um contêiner para uma coleção de um ou mais elementos process. Para obter mais informações, consulte Processos.
Configurações Um contêiner para todas as configurações que se aplicam a um modelo específico. Ele contém instâncias das configurações Registry, File, SystemParameter e CustomAction. Para obter mais informações, consulte Configurações em tipos de dados".

Elemento Common

Comum é semelhante a um elemento Application, mas sempre está associado a dois ou mais elementos de aplicativo. A seção Common representa o conjunto de configurações compartilhadas entre essas instâncias de aplicativo. É uma coleção dos seguintes campos/tipos.

Campo/Tipo Descrição
Name Especifica um nome exclusivo para o modelo de local de configurações. Esse nome é usado para fins de exibição ao referenciar o modelo em logs WMI, PowerShell, Visualizador de Eventos e depuração. Para obter mais informações, consulte Nome.
ID Preenche um identificador exclusivo para um modelo específico. Essa marca se torna o identificador primário que o serviço UE-V usa para fazer referência ao modelo no runtime. Para obter mais informações, consulte ID.
Descrição Uma descrição opcional do modelo.
Nomes localizados Um nome opcional exibido na interface do usuário, localizado por uma localidade de idioma.
LocalizedDescriptions Uma descrição de modelo opcional localizada por uma localidade de idioma.
Versão Identifica a versão do modelo de local de configurações para o acompanhamento administrativo de alterações. Para obter mais informações, consulte Versão.
DeferToMSAccount Controla se esse modelo está habilitado em conjunto com uma conta Microsoft ou não. Se a sincronização MSA estiver habilitada para um usuário em um computador, esse modelo será desabilitado automaticamente.
DeferToOffice365 Semelhante ao MSA, esse tipo controla se esse modelo está habilitado em conjunto com o Office361. Se Office 365 estiver sendo usado para sincronizar configurações, esse modelo será desabilitado automaticamente.
FixedProfile Especifica que esse modelo só pode ser associado ao perfil especificado dentro desse elemento e não pode ser alterado por meio da WMI ou do PowerShell.
Configurações Um contêiner para todas as configurações que se aplicam a um modelo específico. Ele contém instâncias das configurações Registry, File, SystemParameter e CustomAction. Para obter mais informações, consulte Configurações em Tipos de dados.

Elemento SettingsLocationTemplate

Esse elemento define as configurações de um único aplicativo ou um conjunto de aplicativos.

Campo/Tipo Descrição
Name Especifica um nome exclusivo para o modelo de local de configurações. Esse tipo é usado para fins de exibição ao referenciar o modelo em logs WMI, PowerShell, Visualizador de Eventos e depuração. Para obter mais informações, consulte Nome.
ID Preenche um identificador exclusivo para um modelo específico. Essa marca se torna o identificador primário que o serviço UE-V usa para fazer referência ao modelo no runtime. Para obter mais informações, consulte ID.
Descrição Uma descrição opcional do modelo.
Nomes localizados Um nome opcional exibido na interface do usuário, localizado por uma localidade de idioma.
LocalizedDescriptions Uma descrição de modelo opcional localizada por uma localidade de idioma.

Apêndice: ConfiguraçõesLocationTemplate.xsd

Aqui está o arquivo SettingsLocationTemplate.xsd mostrando seus elementos, elementos filho, atributos e parâmetros:

<?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>

Trabalhando com modelos UE-V personalizados e a Referência Técnica do Gerador de Modelos UE-Vpara UE-V