Application Packaging Standard

Last updated 18-Mar-2019

Indexes

The subsections of this section describe the XML structure of APS Catalog indexes. Each description includes a sample of index and reference of index elements. The sample index elements that present in the reference are bold.

Index URLs

Each index is available at one of the following URLs:

Index name Index URL
Service <ROOT_URL>/
Repository <ROOT_URL>/<APSver>/
Vendor <ROOT_URL>/<APSver>/<VendorName>/
Application <ROOT_URL>/<APSver>/<VendorName>/<AppName>/
Application Version <ROOT_URL>/<APSver>/<VendorName>/<AppName>/<AppVer>/
Package <ROOT_URL>/<APSver>/<VendorName>/<AppName>/<AppVer>/?packager=<Packager>
Package Resources <ROOT_URL>/<APSver>/<VendorName>/<AppName>/<AppVer>/resources

Note

If a package does not provide additional resources, the Package Resources index does not exist.

The placeholder strings mean the following:

  • <ROOT_URL> - the APS Catalog URL;
  • <APSver> - the APS version. Allowed values: 1, 1.1, 1.2, 2.0, all;
  • <VendorName> - the name of a specific vendor;
  • <AppName> - the name of a specific application;
  • <AppVer> - the version of a specific application;
  • <Packager> - the name of a packager.

URL Arguments

You can add the additional arguments to the index URL to narrow the results set. If the requested resources are not found, APS Catalog will respond with error code 404. For the list of available arguments return to Search Description Arguments.

Service Index

Sample

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
 <head> <title>APS repositories</title> </head>
  <body>
   <p> <a href="apsRepo.atom" id="feedLink">Repositories feed</a> </p>
   <p class="repositoryList">
    <a href="1/" class="repository">APS version 1</a>
    <a href="1.1/" class="repository">APS version 1.1</a>
    <a href="all/" class="repository">APS all versions</a>
   </p>
  </body>
</html>

Elements Reference

Element Description
/html/body/p/a[@id='feedLink'] Service feed link
/html/body/p[@class='repositoryList']/a[@class='repository'] Link to Repository index

Repository Index

Sample

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
 <head>
  <title>APS Catalog</title>
 </head>
 <body>
  <p><a href="../" id="parentLink">Service Index</a></p>
  <p><a href="../1.atom" id="feedLink">Repository feed</a></p>
  <p class="vendorList">
   <a href="www.parallels.com/" class="vendor">www.parallels.com</a><br/>
   <a href="www.proxy2.de/" class="vendor">www.proxy2.de</a><br/>
   <a href="www.phpwcms.de/" class="vendor">www.phpwcms.de</a><br/>
  </p>
  <form id="filterForm" action="../1.atom" method="get">
   <label for="name">Application name:</label>
   <input type="text" id="name" name="name" value="" /><br />
  <label for="category">Category</label>
    <select id="category" name="category">
     <optgroup label="Web">
      <option value="Web/Wiki">Wiki</option>
     </optgroup>
    </select>
  <br />
   <label for="packager">Packager</label>
    <select id="packager" name="packager">
     <option>www.parallels.com</option>
    </select>
  <br />
<label for="admin-privilege">Administrative privilege required</label>
  <select id="admin-privilege" name="admin-privilege">
 <option value="">Any</option>
    <option value="yes">Yes</option>
    <option value="no">No</option>
  </select>
  <br />
   <label for="type">Package type</label>
    <select id="type" name="type">
     <option value="">Any</option>
     <option value="APS">APS</option>
     <option value="PVT">Parallels Container Templates</option>
    </select>
  <br/>
   <label for="arch">Architecture</label>
    <select id="arch" name="arch">
     <option value="">Any</option>
     <option value="x86">x86</option>
     <option value="x86_64">x86_64</option>
    </select>
  <br/>
   <label for="platform">Platform</label>
    <select id="platform" name="platform">
     <option value="">Any</option>
     <option value="linux">Linux</option>
     <option value="windows">Windows</option>
    </select>
  <br/>
    <label for="framework">Framework</label>
    <select id="framework" name="framework" multiple="">
     <option value="php">PHP</option>
     <option value="apache">Apache server</option>
     <option value="web">Web server</option>
     <option value="asp.net">ASP.NET</option>
     <option value="virtual-container">Virtual container</option>
</select>
  </select>
  <br/>
  <label for="tag">TAG</label>
     <select id="tag" name="tag">
  <option value="">Any</option>
  </select>
  <br/>
    <label for="os">Operating system</label>
    <select id="os" name="os">
     <option value="">Any</option>
     <option value="suse-10.2">SuSE 10.2</option>
     <option value="fedora-core-6">Fedora Core 6</option>
     <option value="Windows 2003 Server">Windows 2003 server</option>
    </select>
   <input type="submit" value="Filter" />
  </form>
  <form id="packageSubmitForm" action="." method="post"
        enctype="multipart/form-data">
   <label for="name">Application package:</label>
    <input type="file" id="package" name="package" /><br />
    <input type="submit" value="Submit package" />
  </form>
 </body>
</html>

Elements Reference

Element Description
/html/body/p/a[@id=’parentLink’] Link to System index
/html/body/p/a[@id=’feedLink’] Repository feed link
/html/body/p[@class=’vendorList’]/a Link to Vendor index
/html/body/form[@id=’filterForm’] If this form is submitted with specific arguments (category, or packager, or cert), the APS Catalog returns one of the feed (details on each package of a specific packager, or details on each package pertaining to a specific APS category)
/html/body/form[@id=’filterForm’]/label/select[@id=’category’] Element that nests APS categories
/html/body/form[@id=’filterForm’]/label/select[@id=’category’]/optgroup/option/@value/text() Category name
/html/body/form[@id=’filterForm’]/label/select[@id=’packager’]/option/text() Packager name
/html/body/form[@id=’filterForm’]/label/select[@id=’admin-privilege’ Parent element that nests options for administrative privilege requirement
/html/body/form[@id=’filterForm’]/label/select[@id=’admin-privilege’]/option/text() Administrative privilege option value
/html/body/form[@id=’filterForm’]/label/select[@id=’type’]/option/@value/text() Package type
/html/body/form[@id=’filterForm’]/label/select[@id=’arch’]/option/@value/text() Defines target architectures supported by a certain repository
/html/body/form[@id=’filterForm’]/label/select[@id=’platform’]/option/@value/text() Defines target platforms supported by a certain repository
/html/body/form[@id=’filterForm’]/label/select[@id=’framework’]/option/@value/text() Envelope (mediator) where the application is executed
/html/body/form[@id=’filterForm’]/label/select[@id=’os’]/option/@value/text() Defines target OS supported by a certain repository
/html/body/form[@id=’packageSubmitForm’] Form for adding package to repository
/html/body/form[@id=’filterForm’]/label/select[@id=’tag’] Application tags extending the basic categories of APS Packages
/html/body/select/[@id=’tag’]/tag/option/text() Tags assigned to the application for easier search in the Catalog. Tags may be assigned to applications which come in different versions, some of which may display license download links to ISV website or Parallels (subject to specific licensing terms)
Element Description
/html/body/p/a[@id='parentLink'] Link to System index
/html/body/p/a[@id='feedLink'] Repository feed link
/html/body/p[@class='vendorList']/a Link to Vendor index
/html/body/form[@id='filterForm']

If this form is submitted with specific arguments (category, packager, or cert), APS Catalog returns one of the following:

  • Feed with details on each package of a specific packager
  • Feed with details on each package pertaining to a specific APS category
/html/body/form[@id='filterForm']/label/select[@id='category'] Element that nests APS categories
/html/body/form[@id='filterForm']/label/select[@id='category']/optgroup/option/@value/text() Category name
/html/body/form[@id='filterForm']/label/select[@id='packager']/option/text() Packager name
/html/body/form[@id='filterForm']/label/select[@id='admin-privilege' Parent element that nests options for administrative privilege requirement.
/html/body/form[@id='filterForm']/label/select[@id='admin-privilege']/option/text() Administrative privilege option value
/html/body/form[@id='filterForm']/label/select[@id='type']/option/@value/text() Package type
/html/body/form[@id='filterForm']/label/select[@id='arch']/option/@value/text() Defines target architectures supported by a certain repository
/html/body/form[@id='filterForm']/label/select[@id='platform']/option/@value/text() Defines target platforms supported by a certain repository
/html/body/form[@id='filterForm']/label/select[@id='framework']/option/@value/text() Envelope (mediator) where the application is executed.
/html/body/form[@id='filterForm']/label/select[@id='os']/option/@value/text() Defines target OS supported by a certain repository
/html/body/form[@id='packageSubmitForm'] Form for adding package to repository
/html/body/form[@id='filterForm']/label/select[@id='tag'] Application tags extending the basic categories of APS Packages.
/html/body/select/[@id='tag']/tag/option/text() Tags assigned to the application for easier search in the Catalog. Tags may be assigned to applications which come in different versions, some of which may display license download links to ISV website or Parallels (subject to specific licensing terms).

Vendor Index

Sample

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
 <head>
  <title>www.proxy2.de - APS Version 1</title>
 </head>
 <body>
  <p><a href="../" class="repository" id="parentLink">APS version 1</a></p>
  <p><a href="../www.proxy2.de.atom" id="feedLink">www.proxy2.de package feed
     </a>
  </p>
  <p class="applicationList">
   <a href="advancedguestbook/" class="application">advancedguestbook</a>
   <a href="AdvancedPoll/" class="application">AdvancedPoll</a>
  </p>
  <form id="filterForm" action="../www.proxy2.de.atom" method="get">
   <label for="name">Application name</label>
   <input type="text" id="name" name="name" /><br />
   <label for="category">Category</label>
   <select id="category" name="category">
    <optgroup label="Web">
     <option value="Web/Wiki">Wiki</option>
    </optgroup>
   </select>
  <br />
   <label for="packager">Packager</label>
   <select id="packager" name="packager">
    <option>www.parallels.com</option>
   </select>
  <br />
   <input type="submit" value="Filter" />
  </form>
 </body>
</html>

Elements Reference

Elements Description
/html/body/p/a[@id=’parentLink’] Link to Repository index
/html/body/p/a[@id=’feedLink’] Vendor feed link
/html/body/p[@class=’applicationList’]/a Link to Application index
/html/body/form[@id=’filterForm’]
If this form is submitted with specific arguments (category, packager, or cert), APS Catalog returns the corresponding data about packages of a specific vendor:
- Feed with details on each package of a specific packager
- Feed with details on each package pertaining to a specific APS category
/html/body/form[@id=’filterForm’]/label/select[@id=’category’] Element that nests APS categories
/html/body/form[@id=’filterForm’]/label/select[@id=’category’]/optgroup/@label/text() Category name
/html/body/form[@id=’filterForm’]/label/select[@id=’packager’]/option/text() Packager name

Application Index

Sample

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
 <head>
  <title>advancedguesbook - www.proxy2.de - APS Version 1</title>
 </head>
 <body>
  <p><a href="../" class="vendor" id="parentLink">www.proxy2.de</a></p>
  <p><a href="../advancedguestbook.atom" id="feedLink">
      advancedguestbook versions feed</a></p>
  <p class="versionList">
   <a href="2.4.3-3/" class="version">2.4.3-3</a>
  </p>
  <form id="filterForm" action="../advancedguestbook.atom" method="get">
   <label for="category">Category</label>
    <select id="category" name="category">
     <optgroup label="Web">
      <option value="Web/Wiki">Wiki</option>
     </optgroup>
    </select>
  <br />
   <label for="packager">Packager</label>
   <select id="packager" name="packager">
    <option>www.parallels.com</option>
   </select>
  <br />
   <input type="submit" value="Filter" />
  </form>
 </body>
</html>

Elements Reference

Elements Description
/html/body/p/a[@id=’parentLink’] Link to Vendor index
/html/body/p/a[@id=’feedLink’] Application feed link
/html/body/p[@class=’versionList’]/a Link to Application Version index
/html/body/form[@id=’filterForm’]
If this form is submitted with specific arguments (category, packager, or cert), APS Catalog returns the following data about packages of a specific application version:
- Feed with details on each package of a specific packager
- Feed with details on each package pertaining to a specific APS category
/html/body/form[@id=’filterForm’]/label/select[@id=’category’] Element that nests APS categories
/html/body/form[@id=’filterForm’]/label/select[@id=’category’]/optgroup/@label/text() Category name
/html/body/form[@id=’filterForm’]/label/select[@id=’packager’]/option/text() Packager name

Application Version Index

Sample

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
 <head>
  <title>2.4.3-3 - advancedguesbook - www.proxy2.de - APS Version 1</title>
 </head>
 <body>
  <p><a href="../" class="application" id="parentLink">advancedguesbook
     </a>
  </p>
  <p><a href="../2.4.3-3.atom" id="feedLink">
       advancedguestbook 2.4.3-3 packagers</a></p>
 <p class="packagerList">
   <a href="?packager=www.parallels.com" class="packager">
     www.parallels.com</a>
   <a href="?packager=www.swsoft.com" class="packager">
     www.parallels.com</a>
  </p>
 </body>
</html>

Elements Reference

Element Description
/html/body/p/a[@id='parentLink'] Link to Application Version index
/html/body/p/a[@id='feedLink'] Application Version feed link
/html/body/p[@class='packagerList']//a Links to Package indexes
/html/body/p[@class='packagerList']/a/abbr[@class='type']/text() Package type
/html/body/p[@class='packagerList']/a/abbr[@class='packager']/text() Packager name
/html/body/p[@class='packagerList']/a/abbr[@class='platform']/text() Target platform
/html/body/p[@class='packagerList']/a/abbr[@class='os']/text() Target OS
/html/body/p[@class='packagerList']/a/abbr[@class='arch']/text() Target architecture
/html/body/p[@class='packagerList']/a/[id="addons"]/a/@href Add-ons (if available)
/html/body/p[@class='packagerList']/a/[id="masters"]/a/@href Master packages (for add-ons only)

Package Index

Sample

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
 <title>www.parallels.com - 2.4.3 - advancedguesbook - www.proxy2.de</title>
</head>
<body>
  <p><a href="./" class="version" id="parentLink">2.4.3-3</a></p>
  <a id="aps" href="../2.4.3-3.aps?packager=www.parallels.com">
   Application package</a>
  <a id="meta" href="../2.4.3-3.meta?packager=www.parallels.com">
   APP-META</a>
  <a id="certificate" href="../2.4.3-3.certificate?packager=www.parallels.com">
    Application certificate</a>
  <a id="updates" href="updates.atom?packager=www.parallels.com">
    Package updates</a>
  <a id="resources" href="resources/?packager=www.parallels.com">
    Package resources</a>
  <form id="certificateSubmitForm" action="." method="post"
    enctype=”multipart/form-data”>
    <label for="certificate">Application certificate:</label>
     <input type="file" id="certificate" name="certificate" /><br />
     <input type="hidden" id="packageID" name="packageID" value="42" /><br />
     <input type="submit" value="Submit certificate" />
  </form>
</body>
</html>

Elements Reference

Element Description
/html/body/p/a[@id=’parentLink’] Link to Application Version index
/html/body/a[@id=’aps’] Link to package bits
/html/body/a[@id=’meta’] Link to package metadata
/html/body/a[@id=’certificate’] Link to package certificate
/html/body/a[@id=’updatesFeed’] Link to Updates feed
/html/body/a[@id=’resources’] Link to Package Resource index
/html/body/form[@id=’certificateSubmitForm’] Form for adding package certificate
/html/body/form[@id=’certificateSubmitForm’]/input[@id=’packageID’]/@value/text() Package ID

Package Resources Index

Sample

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
 <title>www.parallels.com - 2.4.3 - advancedguesbook - www.proxy2.de</title>
</head>
<body>
  <p><a href="../?packager=www.parallels.com" class="packager"
        id="parentLink">2.4.3-3</a></p>
  <a class="screenshot" href="screenshot1.png">Admin panel</a>
  <a class="screenshot" href="screenshot2.png">Guest view</a>
  <a class="icon" href="icon.png">Application icon</a>
  <a class="eula" href="www.parallels.com/advancedguesbook/eula"> EULA</a>
</body>
</html>

Elements Reference

Element Description
/html/body/p/a[@id='parentLink'] Link to Package index.
/html/body/a[@class='screenshot'] Screenshot of an application wrapped in the package.
/html/body/a[@id='icon'] Icon of an application wrapped in the package.
/html/body/a[@class='eula'] Application EULA, applicable for applications packed with APS 1.0 only.
/html/body/a[@class='eula']/@xml:lang EULA text language.
/html/body/a[@class='eula']/@service EULA of service with specified ID, applicable for applications packed with APS 1.1 and higher.
/html/body/a[@class='eula']/@href Link to application version EULA.
/html/body/a[@class='infolink']/@href Link to application guide

Note

APS catalog exposes infolinks from APP-META.xml with class=”deployment-guide” and class=”user-guide”. Labels for these links are taken from “//infolinks/link/text()”, for example: “Provider’s integration guide” and “Subscriber’s guide” respectively.

Feeds