Profile Management

Application definition file structure

This article describes the XML structure of Profile Management application definition files. This structure applies to both application profiler and cross-platform settings.

Architecture Chart

Architecture chart

  • XML Declaration and Encoding Attribute

    The XML declaration must specify the attribute, <?xml version=”1.0”>.

    Encoding=”UTF-8” is a recommended attribute.

  • GroupDefinitions

    A container of collections of groups. It acts as the root element of the XML document. Its attributes include version and GUID. They are mandatory attributes.

  • Group

    Defines settings of a subapplication. Its attributes are name and GUID. They are mandatory attributes.

  • Object

    Defines one setting of a subapplication. Its attributes are name and GUID. They are mandatory attributes.

  • Platform

    Platform provides different definitions in different operating systems. It can use an optional attribute OSVersionNumber to specify the operating system. When there is no attribute, all platforms accept the inner definition of the setting. Platform must contain one of the following elements: RegKey, RegValue, File, Folder, and Wallpaper.

  • RegKey

    Defines a setting as a key in the registry. It must contain the Key element. It includes two optional subelements, Recurse and Merge. Recurse and Merge define the performance when Profile Management roams the key. Another optional subelement is ExcludeValues. ExcludeValues defines the registry values that can be excluded.

  • RegValue

    Defines a setting as a value in the registry. It must contain Key to specify the path of its parent key.

  • Folder

    Defines a setting as a folder. It must contain Path to specify the path of the folder. It has optional subelements, Recurse and Merge. Recurse and Merge define the performance when Profile Management roams the folder. Another optional subelement is ExcludeFiles, which defines the files that can be excluded.

  • File

    Defines a setting as a file. It must contain Path to specify the path of its parent folder, and FileName to specify the name of a file.

  • Wallpaper

    Defines all wallpaper settings. No attributes or subelements are required. Profile Management roams these settings automatically.

  • Key

    Specifies the path of the registry key or the path of the parent registry key. Key is the subelement of RegKey and RegValue.

  • ValueName

    Specifies the name of the registry value. It is a subelement of RegValue.

  • Path

    Specifies the path of the folder or the path of the parent folder. It is a subelement of Folder and File. Profile Management variables can be adopted.

  • FileName

    Specifies the name of a file. It is s subelement of File.

  • Recurse

    Optional subelement of RegKey and Folder. If this element exists, Profile Management roams the key and the folder recursively.

  • Merge

    Optional subelement of RegKey and Folder. If this element exists, Profile Management merges (but does not substitute) the key and the folder.

  • ExcludeValues

    Optional subelement of RegKey. Specifies the values that can be excluded when roaming the key.

  • ExcludeFiles

    Optional subelement of Folder. Specifies the files that can be excluded when roaming the folder.

  • Exclude

    Subelement of ExcludeValues and ExcludeFiles. Specifies the excluded items of files or registry values.

Note

Make sure that your document contains a correct syntax format. Profile Management checks these files by using the CPSValidationSchema.xsd validation file when these files load. You can find the validation file under the installation path of Profile Management. Profile Management ignores incorrect files and record error messages in the log.

Sample

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

<!-- Copyright 2011 Citrix Systems, Inc. All Rights Reserved. -->

<GroupDefinitions GUID="748E63D3-426E-4796-9C32-420B25DB2D9F" Version="4.0.0.0">

<!-- Application Settings -->

<Group GUID="0FCCCF29-0A0E-482d-A77E-3F39A8A854A6" Name="Application Settings">

<!-- Registry Key Setting Example -->

<Object GUID="637EC13C-2D47-4142-A8EB-3CEA6D53522A" Name="Software\Application\certain key">

<Platform>

<RegKey>

<Key>Software\Microsoft\Office\certain key</Key>

<Merge/>

<Recurse/>

<ExcludeValues>

<Exclude>excluded value 1</Exclude>

<Exclude>excluded value 2</Exclude>

<Exclude>excluded value 3</Exclude>

</ExcludeValues>

</RegKey>

</Platform>

</Object>

<!-- Registry Value Setting Example -->

<Object GUID="3C896310-10C4-4e5f-90C7-A79F4E653F81" Name="Software\Application\certain value">

<!-- Folder Setting Example -->

<Object GUID="7F8615D0-5E63-4bd0-982D-B7740559C6F9" Name="!CTX_ROAMINGAPPDATA!\Application\setting folder">

<Platform>

<Folder>

<!-- We can use Citrix variable if necessary -->

<Path>!CTX_ROAMINGAPPDATA!\Application\setting folder</Path>

<Merge/>

<Recurse/>

<ExcludeFiles>

<Exclude>excluded file 1</Exclude>

<Exclude>excluded file 2</Exclude>

<Exclude>excluded file 3</Exclude>

</ExcludeFiles>

</Folder>

</Platform>

</Object>

<!-- File Setting Example -->

<Object GUID="7F8615D0-5E63-4bd0-982D-B7740559C6F9" Name="!CTX_ROAMINGAPPDATA!\Application\file.txt">

<Platform>

<File>

<!-- We can use Citrix variable if necessary -->

<Path>!CTX_ROAMINGAPPDATA!\Application</Path>

<FileName>file.txt</FileName>

</File>

</Platform>

</Object>

<!-- Setting based on different OS -->

<Object GUID="1B43DE3F-EC9C-463c-AC19-CD01D00219B6" Name="!CTX_ROAMINGAPPDATA!\Application\%osname%\folder">

<!-- Assuming that the folder locates differently when in different platforms -->

<Platform OSVersionNumber="6.1">

<!-- Win7 -->

<Folder>

<Path>!CTX_ROAMINGAPPDATA!\Application\Win7\folder</Path>

<Recurse/>

</Folder>

</Platform>

<Platform OSVersionNumber="10.0">

<!-- Win10 -->

<Folder>

<Path>!CTX_ROAMINGAPPDATA!\Application\Win10\folder</Path>

<Recurse/>

</Folder>

</Platform>

</Object>

</Group>

</GroupDefinitions>
Application definition file structure