Application definition file structure
This article describes the XML structure of Profile Management application definition files. The structure applies to both application profiler and cross-platform settings.
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
andMerge
.Recurse
andMerge
define the performance when Profile Management roams the folder. Another optional subelement isExcludeFiles
, 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, andFileName
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>