Share via


Add-on Package Schema XML Reference

Add-on packages are used by RemoteAgent and DownloadPackage to copy files to a device and, optionally, start an executable. For general information see, Overview of Add-on Packages. Use the following example as a reference for authoring add-on packages.

Code

<?xml version="1.0" standalone="no"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="/">
    <ADDONCONTAINER>
      <ADDON>
        <PACKAGECONTAINER>
          <PACKAGE ID="F85E57BA-5AE9-4FF7-8433-6AB7D991D033" NAME="Example">
            <PROPERTYCONTAINER />
            <PACKAGETYPECONTAINER>
              <PACKAGETYPE Name="ARMV4I" ID="ARMV4I" Protected="True">
                <PROPERTYCONTAINER>
                  <PROPERTY ID="RemotePath" Protected="True">%CSIDL_WINDOWS%</PROPERTY>
                  <PROPERTY ID="RootPath" Protected="True"> %CSIDL_PROGRAM_FILES% </PROPERTY>
                  <PROPERTY ID="CommandLine" Protected="True">/ServiceIds:F85E57BA-5AE9-4FF7-8433-6AB7D991D033</PROPERTY>
                  <PROPERTY ID="Host" Protected="True">Trial1.exe</PROPERTY>
                </PROPERTYCONTAINER>
                <FILECONTAINER>
                  <FILE ID="Trial1.exe" />
                  <FILE ID="Trial2.exe" />
                </FILECONTAINER>
              </PACKAGETYPE>
            </PACKAGETYPECONTAINER>
          </PACKAGE>
        </PACKAGECONTAINER>
      </ADDON>
    </ADDONCONTAINER>
  </xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="ISO-8859-1"?>

Remarks

The example creates an add-on package named Example. The following table describes each element in the previous example.

Tags

Description

<ADDONCONATINER>

Contains one addon tag.

<ADDON>

Contains one PackageContainer tag.

<PACKAGECONTAINER>

Contains one or more Packages.

<PACKAGE ID="F85E57BA-5AE9-4FF7-8433-6AB7D991D033" NAME="Example">

Defines a package and specifies the Name and ID of the package. The ID is a globally unique identifier (GUID).

<PACKAGETYPECONTAINER>

Contains one or more Package Types. Each package type specifies a different CPU architecture that the device application can run on.

<PACKAGETYPECONTAINER>

PACKAGETYPE Name="ARMV4I" ID="ARMV4I" Protected="True">

Defines a package type and specifies the type of processor supported by this package type. The following are valid processor types:

  • ARMV4

  • ARMV4I

  • SH4

  • MIPSII

  • MIPSII_FP

  • MIPSIV

  • MIPSIV_FP

  • X86

<PROPERTY ID="RemotePath" Protected="True">%CSIDL_WINDOWS%</PROPERTY>

Specifies one of the following properties:

  • RootPath - The folder of the files that will be deployed to the device. All files to be deployed as part of this package must be present in this folder on the desktop computer. The path can contain constant special item ID list (CSIDL) macros.

    NoteNote:
    CSIDL values provide a unique system-independent way to identify special folders used frequently by applications, but which may not have the same name or location on any given system.
  • RemotePath - The folder on the device where the files will be deployed. The path can contain CSIDL macros.

  • Host - The binary that is executed after all files in the package have been deployed from the desktop to the device.

  • CommandLine - The command-line arguments to be supplied when the host binary is executed on the device. This property is optional.

<FILECONTAINER>

Contains one or more file tags.

<FILE ID="Trial1.exe" />

Specifies a file to be deployed. The ID attribute indicates the file name. The file is deployed from the RootPath folder on the desktop to the RemotePath folder on the device.

When you deploy the package by using either Start or DownloadPackage, the Smart Device Connectivity API copies trial1.exe and trial2.exe from the Program Files folder on the desktop computer to the Windows folder on the device. It then executes trial1.exe /ServiceIds:F85E57BA-5AE9-4FF7-8433-6AB7D991D033 on the device.

See Also

Concepts

Overview of Add-on Packages

Other Resources

Smart Device Connectivity API Samples