Compartilhar via


Referência do Esquema do Modelo de Aplicação para UE-V (Windows 10)

A Virtualização de Experiência do Utilizador (UE-V) utiliza modelos de localização de definições XML para definir as definições da aplicação de ambiente de trabalho e as definições do Windows que são capturadas e aplicadas pelo UE-V. O UE-V inclui um conjunto de modelos de localização de predefinições. Também pode criar modelos de localização de definições personalizadas com o gerador de modelos UE-V.

Um utilizador avançado pode personalizar o ficheiro XML para um modelo de localização de definições. Este tópico detalha a estrutura XML dos modelos de localização de definições UE-V e fornece orientações para editar estes ficheiros.

Referência do Esquema do Modelo de Aplicação UE-V

Esta secção detalha a estrutura XML do modelo de localização de definições UE-V e fornece orientações para editar este ficheiro.

Nesta Secção

Atributo de Declaração e Codificação XML

Obrigatório: Tipo Verdadeiro: Cadeia

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

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

Espaço de Nomes e Elemento Raiz

Obrigatório: Tipo Verdadeiro: Cadeia

O UE-V utiliza o https://schemas.microsoft.com/UserExperienceVirtualization/2012/SettingsLocationTemplate espaço de nomes para todas as aplicações. SettingsLocationTemplate é o elemento raiz e contém todos os outros elementos. Definições de ReferênciaLocationTemplate em todos os modelos com esta etiqueta:

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

Tipos de dados

Estes tipos de dados são os únicos para o esquema de modelo de aplicação UE-V.

GUID O GUID descreve uma expressão regular de identificador exclusivo global 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}\}". Este GUID é utilizado no elemento Filesetting\Root\KnownFolder para verificar a formatação de pastas conhecidas.

FilenameString FilenameString refere-se ao nome de ficheiro de um processo a monitorizar. Os respetivos valores são restringidos pelo regex [^\\\?\*\|<>/:]+, (ou seja, podem não conter carateres de barra invertida, asterisco ou pontos de interrogação card carateres, o caráter de pipe, os carateres maiores ou inferiores a sinal, barra ou dois pontos).

IDString IDString refere-se ao valor de ID dos elementos da Aplicação, DefiniçõesLocationTemplate e Elementos comuns (utilizados para descrever conjuntos de aplicações que partilham definições comuns). É restringido pelo mesmo regex que FilenameString ([^\\\?\*\|<>/:]+).

TemplateVersion TemplateVersion é um valor inteiro utilizado para descrever a revisão do modelo de localização de definições. O respetivo valor pode variar entre 0 e 2147483647.

Vazio Vazio refere-se a um valor nulo. Este tipo de dados é utilizado em Process\ShellProcess para indicar que não existe nenhum processo a monitorizar. Este valor não deve ser utilizado em nenhum modelo de aplicação.

Autor O tipo de dados Autor é um tipo complexo que identifica o autor de um modelo. Contém dois elementos subordinados: Nome e Email. No tipo de dados Autor, o elemento Nome é obrigatório enquanto o elemento Email é opcional. Este tipo é descrito mais detalhadamente no elemento SettingsLocationTemplate.

Intervalo O intervalo define uma classe de número inteiro composta por dois elementos subordinados: Mínimo e Máximo. Este tipo de dados é implementado no tipo de dados ProcessVersion. Se especificado, os valores Mínimo e Máximo têm de ser incluídos.

ProcessVersion ProcessVersion define um tipo com quatro elementos subordinados: Principal, Menor, Compilação e Patch. Este tipo de dados é utilizado pelo elemento Processo para preencher os respetivos valores ProductVersion e FileVersion. Os dados para este tipo são um valor de Intervalo. O elemento principal subordinado é obrigatório e os outros são opcionais.

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

Processo O tipo de dados Processo é um contentor utilizado para descrever os processos a monitorizar pelo UE-V. Contém seis elementos subordinados: Filename, Architecture, ProductName, FileDescription, ProductVersion e FileVersion. Esta tabela detalha o respetivo tipo de dados de cada elemento:

Elemento Tipo de Dados Obrigatório
Nome do ficheiro FilenameString True
Arquitetura Arquitetura False
ProductName String False
FileDescription String False
ProductVersion ProcessVersion False
FileVersion ProcessVersion False

Processos O tipo de dados Processos representa um contentor para uma coleção de um ou mais elementos de Processo. Dois elementos subordinados são suportados no tipo de sequência Processos: Processo e ShellProcess. O processo é um elemento do tipo Processo e ShellProcess é do tipo de dados Vazio. Pelo menos um item tem de ser identificado na sequência.

Caminho O caminho é consumido por RegistrySetting e FileSetting para fazer referência aos caminhos do registo e do ficheiro. Este elemento suporta dois atributos opcionais: Recursivo e DeleteIfNotFound. Ambos os valores estão definidos como default="False".

Recursivo indica que o caminho e todas as subpastas estão incluídos nas definições de ficheiro ou que todas as chaves de registo subordinadas estão incluídas para as definições do registo. Em ambos os casos, todos os itens no nível atual estão incluídos nos dados capturados. Para um objeto FileSettings, todos os ficheiros na pasta especificada são incluídos nos dados capturados pelo UE-V, mas as pastas não estão incluídas. Para caminhos de registo, todos os valores no caminho atual são capturados, mas as chaves do registo subordinado não são capturadas. Em ambos os casos, deve ter cuidado para evitar a captura de grandes conjuntos de dados ou um grande número de itens.

O atributo DeleteIfNotFound remove a definição dos dados do caminho de armazenamento das definições do utilizador. Esta remoção pode ser desejável nos casos em que a remoção destas definições do pacote irá poupar uma grande quantidade de espaço em disco no servidor de ficheiros do caminho de armazenamento de definições.

Máscara de Ficheiros FileMask especifica apenas determinados tipos de ficheiro para a pasta que é definida por Caminho. Por exemplo, Path pode ser C:\users\username\files e FileMask pode incluir *.txt apenas ficheiros de texto.

RegistrySetting RegistrySetting representa um contentor para chaves e valores de registo e o comportamento pretendido associado por parte do serviço UE-V. São definidos quatro elementos subordinados neste tipo: Caminho, Nome, Excluir e uma sequência dos valores Caminho e Nome.

FileSetting FileSetting contém parâmetros associados a ficheiros e caminhos de ficheiros. São definidos quatro elementos subordinados: Raiz, Caminho, Máscara de Ficheiros e Excluir. A raiz é obrigatória e as outras são opcionais.

Configurações As definições são um contentor para todas as definições que se aplicam a um modelo específico. Contém instâncias das definições Registo, Ficheiro, SystemParameter e CustomAction descritas anteriormente. Além disso, também pode conter os seguintes elementos subordinados com comportamentos descritos:

Elemento Descrição
Assíncrono Os pacotes de definições assíncronas são aplicados sem bloquear o arranque da aplicação para que o início da aplicação continue enquanto as definições ainda estão a ser aplicadas. Este elemento é útil para definições que podem ser aplicadas de forma assíncrona, como as definições obter/definir através de uma API, como SystemParameterSetting.
PreventOverlappingSynchronization Por predefinição, o UE-V só guarda as definições de uma aplicação quando a última instância de uma aplicação que utiliza o modelo é fechada. Quando este elemento está definido como "falso", UE-V exporta as definições mesmo que outras instâncias de uma aplicação estejam em execução. Os modelos adequados - os modelos que incluem uma secção de elemento Comum – que são enviados com UE-V utilizam este sinalizador para permitir que as definições partilhadas exportem sempre na aplicação fechada, ao mesmo tempo que impedem a exportação de definições específicas da aplicação até que a última instância seja fechada.
AlwaysApplySettings Este parâmetro força a aplicação de um pacote de definições importado, mesmo que não existam diferenças entre o pacote e o estado atual da aplicação. Este parâmetro deve ser utilizado apenas em casos especiais, uma vez que pode abrandar a importação de definições.

Name Element

Obrigatório: Tipo Verdadeiro: Cadeia

O nome especifica um nome exclusivo para o modelo de localização de definições. Este nome é utilizado para fins de apresentação ao referenciar o modelo no WMI, PowerShell, Visualizador de Eventos e registos de depuração. Em geral, evite referenciar informações de versão, uma vez que esta referência pode ser oposituada a partir 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 referencia DTDs externos, pelo que não é possível utilizar entidades nomeadas num modelo de localização de definições. Por exemplo, não utilize ® para fazer referência ao sinal ® de marca registada . Em vez disso, utilize referências numeradas canónicas para incluir estes tipos de carateres especiais, por exemplo, ® para o ® caráter. Esta regra aplica-se a todos os valores de cadeia neste documento.

Veja http://www.w3.org/TR/xhtml1/dtds.html para obter uma lista completa das entidades de carateres. Os documentos codificados com UTF-8 podem incluir diretamente os carateres Unicode. Guardar modelos através do gerador de modelos UE-V converte as entidades de carateres nas respetivas representações Unicode automaticamente.

Elemento ID

Obrigatório: Tipo Verdadeiro: Cadeia

O ID preenche um identificador exclusivo para um modelo específico. Esta etiqueta torna-se o identificador principal que o serviço UE-V utiliza para referenciar o modelo no runtime (por exemplo, veja o resultado dos cmdlets Get-UevTemplate e Get-UevTemplateProgram PowerShell). Por convenção, esta etiqueta não deve conter espaços, o que simplifica os scripts. Os números de versão das aplicações devem ser especificados neste elemento para permitir uma identificação fácil do modelo, como <ID>MicrosoftOffice2016Win64</ID>.

Elemento de Versão

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

A versão identifica a versão do modelo de localização das definições para controlo administrativo das alterações. O gerador de modelos UE-V incrementa automaticamente este número por um sempre que o modelo é guardado. Repare que este campo tem de ser um número inteiro inteiro; valores fracionários, tais como <Version>2.5</Version> não são permitidos.

Dica

Pode guardar notas sobre alterações de versões com etiquetas <!-- -->de comentários 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

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

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

Elemento autor

Obrigatório: Tipo Falso: Cadeia

O autor identifica o criador do modelo de localização de definições. São suportados dois elementos subordinados opcionais: Nome e Email. Ambos os atributos são opcionais, mas, se o elemento subordinado Email for especificado, tem de ser acompanhado pelo elemento Nome. Autor refere-se ao nome completo do contacto para o modelo de localização de definições e o e-mail deve referir-se a um endereço de e-mail do autor. Recomendamos que inclua estas informações em modelos publicados publicamente.

Processos e Elemento de Processo

Obrigatório: Tipo Verdadeiro: Elemento

Os processos contêm, pelo menos, um <Process> elemento que, por sua vez, contém os seguintes elementos subordinados: Filename, Architecture, ProductName, FileDescription, ProductVersion e FileVersion. O elemento subordinado Nome de ficheiro é obrigatório e os outros são opcionais. Um elemento totalmente preenchido contém etiquetas 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>

Nome do ficheiro

Obrigatório: Tipo Verdadeiro: Cadeia

Filename refere-se ao nome de ficheiro real do executável tal como aparece no sistema de ficheiros. Este elemento especifica o critério principal que UE-V utiliza para avaliar se um modelo se aplica ou não a um processo. Este elemento tem de ser especificado no XML do modelo de localização de definições.

Os nomes de ficheiro válidos não podem corresponder à expressão regular [^\\\?\*\|<>/:]+, ou seja, podem não conter carateres de barra invertida, asterisco ou pontos de interrogação card carateres, o caráter de pipe, o sinal maior ou menor que, barra ou dois pontos (os carateres \ ? * | <> / ou : ).

Dica

Para testar uma cadeia com este regex, utilize uma janela de comandos do PowerShell e substitua o nome do executável por YourFileName:

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

Um valor de Verdadeiro indica que a cadeia contém carateres ilegais. Eis alguns exemplos de valores ilegais:

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

Observação

O gerador de modelos UE-V codifica os carateres maiores e inferiores > a e < respetivamente.

Em circunstâncias raras, o valor FileName não inclui necessariamente a extensão .exe, mas deve ser especificado 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 ficheiro executável for "MyApplication.exe".

Arquitetura

Obrigatório: Tipo Falso: Arquitetura (Cadeia)

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

Se este elemento estiver ausente, o modelo de localização de definições ignora a arquitetura do processo e aplica-se a processos de 32 bits e de 64 bits se o nome do ficheiro e outros atributos se aplicarem.

Observação

O UE-V não suporta processadores ARM nesta versão.

ProductName

Obrigatório: Tipo Falso: Cadeia

ProductName é um elemento opcional utilizado para identificar um produto para fins administrativos ou relatórios. O ProductName difere do Nome de ficheiro, uma vez que não existem restrições de expressão regulares no respetivo valor. Esta 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

FileDescription é uma etiqueta opcional que permite uma descrição administrativa do ficheiro executável. Esta etiqueta é um campo de texto livre e pode ser útil para distinguir vários executáveis num pacote de software onde é necessário identificar a função do executável.

Por exemplo, numa aplicação adequada, 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

ProductVersion refere-se às versões principais e secundárias dos produtos de um ficheiro, bem como a um nível de criação e patch. ProductVersion é um elemento opcional, mas, se especificado, tem de conter, pelo menos, o elemento subordinado Principal. O valor tem de expressar um intervalo no formulário Minimum="X" Maximum="Y" em que X e Y são números inteiros. Os valores Mínimo e Máximo podem ser idênticos.

Os elementos da versão do produto e do ficheiro podem não ser especificados. Ao fazê-lo, torna o modelo "versão agnóstico", o que significa que o modelo será aplicado a todas as versões do executável especificado.

Exemplo 1:

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

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

Exemplo 2:

Versão do ficheiro: 5.0.2.1000 especificado no gerador de modelos 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 1 Incorreto - intervalo incompleto:

Apenas o atributo Mínimo está presente. O máximo também tem de ser incluído num intervalo.

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

Exemplo 2 Incorreto - Menor especificado sem o elemento Principal:

Apenas o elemento Menor está presente. Major também tem de ser incluído.

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

FileVersion

Obrigatório: Tipo Falso: Cadeia

FileVersion diferencia entre a versão de lançamento de uma aplicação publicada e os detalhes de compilação internos de um componente executável. Para a maioria das aplicações comerciais, estes números são idênticos. Quando variam, a versão do produto de um ficheiro indica uma identificação de versão genérica de um ficheiro, enquanto a versão do ficheiro indica uma compilação específica de um ficheiro (como no exemplo de uma correção ou atualização). Esta versão de ficheiro identifica exclusivamente ficheiros sem quebrar a lógica de deteção.

Para determinar a versão do produto e a versão do ficheiro de um determinado executável, clique com o botão direito do rato no ficheiro no Windows Explorer, selecione Propriedades e, em seguida, clique no separador Detalhes.

Incluir um elemento FileVersion para uma aplicação permite uma lógica de deteção de otimização mais granular, mas não é necessário para a maioria das aplicações. As definições do elemento ProductVersion são verificadas primeiro e, em seguida, FileVersion é verificado. A definição mais restritiva será aplicada.

Os elementos subordinados 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 da Aplicação

A aplicação é um contentor para definições que se aplicam a uma determinada aplicação. É uma coleção dos seguintes campos/tipos.

Campo/Tipo Descrição
Name Especifica um nome exclusivo para o modelo de localização de definições. Este nome é utilizado para fins de apresentação ao referenciar o modelo no WMI, PowerShell, Visualizador de Eventos e registos de depuração. Para obter mais informações, consulte Nome.
ID Preenche um identificador exclusivo para um modelo específico. Esta etiqueta torna-se o identificador principal que o serviço UE-V utiliza para referenciar o modelo no runtime. Para obter mais informações, veja ID.
Descrição Uma descrição opcional do modelo.
Nomes Localizados Um nome opcional apresentado na IU, localizado por uma região de idioma.
LocalizedDescriptions Uma descrição de modelo opcional localizada por uma região de idioma.
Versão Identifica a versão do modelo de localização das definições para controlo administrativo das alterações. Para obter mais informações, consulte Versão.
DeferToMSAccount Controla se este modelo está ativado em conjunto com uma conta Microsoft ou não. Se a sincronização MSA estiver ativada para um utilizador num computador, este modelo será automaticamente desativado.
DeferToOffice365 Semelhante ao MSA, este tipo controla se este modelo está ativado em conjunto com o Office361. Se Office 365 estiver a ser utilizado para sincronizar as definições, este modelo será automaticamente desativado.
FixedProfile Especifica que este modelo só pode ser associado ao perfil especificado neste elemento e não pode ser alterado através do WMI ou do PowerShell.
Processos Um contentor para uma coleção de um ou mais elementos de Processo. Para obter mais informações, veja Processos.
Configurações Um contentor para todas as definições que se aplicam a um modelo específico. Contém instâncias das definições Registo, Ficheiro, SystemParameter e CustomAction. Para obter mais informações, veja Definições em Tipos de dados".

Elemento Comum

Comum é semelhante a um elemento da Aplicação, mas está sempre associado a dois ou mais elementos da Aplicação. A secção Comum representa o conjunto de definições que são partilhadas entre essas instâncias da Aplicação. É uma coleção dos seguintes campos/tipos.

Campo/Tipo Descrição
Name Especifica um nome exclusivo para o modelo de localização de definições. Este nome é utilizado para fins de apresentação ao referenciar o modelo no WMI, PowerShell, Visualizador de Eventos e registos de depuração. Para obter mais informações, consulte Nome.
ID Preenche um identificador exclusivo para um modelo específico. Esta etiqueta torna-se o identificador principal que o serviço UE-V utiliza para referenciar o modelo no runtime. Para obter mais informações, veja ID.
Descrição Uma descrição opcional do modelo.
Nomes Localizados Um nome opcional apresentado na IU, localizado por uma região de idioma.
LocalizedDescriptions Uma descrição de modelo opcional localizada por uma região de idioma.
Versão Identifica a versão do modelo de localização das definições para controlo administrativo das alterações. Para obter mais informações, consulte Versão.
DeferToMSAccount Controla se este modelo está ativado em conjunto com uma conta Microsoft ou não. Se a sincronização MSA estiver ativada para um utilizador num computador, este modelo será automaticamente desativado.
DeferToOffice365 Semelhante ao MSA, este tipo controla se este modelo está ativado em conjunto com o Office361. Se Office 365 estiver a ser utilizado para sincronizar as definições, este modelo será automaticamente desativado.
FixedProfile Especifica que este modelo só pode ser associado ao perfil especificado neste elemento e não pode ser alterado através do WMI ou do PowerShell.
Configurações Um contentor para todas as definições que se aplicam a um modelo específico. Contém instâncias das definições Registo, Ficheiro, SystemParameter e CustomAction. Para obter mais informações, veja Definições em Tipos de dados.

SettingsLocationTemplate Element

Este elemento define as definições para uma única aplicação ou um conjunto de aplicações.

Campo/Tipo Descrição
Name Especifica um nome exclusivo para o modelo de localização de definições. Este tipo é utilizado para fins de apresentação ao referenciar o modelo no WMI, PowerShell, Visualizador de Eventos e registos de depuração. Para obter mais informações, consulte Nome.
ID Preenche um identificador exclusivo para um modelo específico. Esta etiqueta torna-se o identificador principal que o serviço UE-V utiliza para referenciar o modelo no runtime. Para obter mais informações, veja ID.
Descrição Uma descrição opcional do modelo.
Nomes Localizados Um nome opcional apresentado na IU, localizado por uma região de idioma.
LocalizedDescriptions Uma descrição de modelo opcional localizada por uma região de idioma.

Apêndice: SettingsLocationTemplate.xsd

Eis o ficheiro SettingsLocationTemplate.xsd que mostra os respetivos elementos, elementos subordinados, 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>

Trabalhar com Modelos UE-V Personalizados e Referência Técnica do Gerador de Modelos UE-Vpara UE-V