Application Packaging Standard

Last updated 14-Nov-2018

Feeds

The subsections of this section describe the XML structure of an APS Catalog feed.

Main Feed URLs

Each feed is available at one of the following URLs:

Feed name Feed URL
RSS <ROOT_URL>/ feed.atom
Repository <ROOT_URL>/<APSver> .atom
Vendor <ROOT_URL>/<APSver>/<VendorName> .atom
Application <ROOT_URL>/<APSver>/<VendorName>/<AppName> .atom
Application Version <ROOT_URL>/<APSver>/<VendorName>/<AppName>/<AppVer> .atom
Package updates <ROOT_URL>/<APSver>/<VendorName>/<AppName>/<AppVer>/ updates.atom
Master packages for add-on package <ROOT_URL>/<APSver>/<VendorName>/<AppName>/<AppVer>/ masters.atom
All add-ons for a package <ROOT_URL>/<APSver>/<VendorName>/<AppName>/<AppVer>/ addons.atom

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.

Sample

This section provides a sample of an APS Catalog feed. For description of a specific feed element, refer to Elements Reference.

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">
  <id>http://apscatalog.com/1.atom</id>
  <title>{}</title>
  <updated>2008-04-07T10:35:34Z</updated>
  <!-- Derived from Opensearch 1.1 -->
  <opensearch:totalResults>73</opensearch:totalResults>
  <opensearch:startIndex>1</opensearch:startIndex>
  <opensearch:itemsPerPage>10</opensearch:itemsPerPage>
  <link rel="search" type="application/opensearchdescription+xml" href=""/>
  <!-- Derived from RFC5005 -->
  <link rel="self" href="http://apscatalog.com/1.atom"/>
  <link rel="first" href="http://apscatalog.com/1.atom" />
  <link rel="last" href="http://apscatalog.com/1.atom?page=8" />
  <link rel="next" href="http://apscatalog.com/1.atom?page=2" />
  <!-- Atom elements and APS Catalog extensions -->
  <entry xmlns:a="http://apstandard.com/ns/repo/1"
        xmlns="http://www.w3.org/2005/Atom">
   <!-- Package ID that conforms to RFC4287 and RFC4151  -->
   <id>
    tag:example.org,2008-02-27:/1/opensource/tikiwiki/1.9.7-34/parallels
   </id>
   <!-- Package name. sa:name value -->
   <title>tikiwiki</title>
   <!-- Summary. sa:summary value -->
   <summary>tikiwiki</summary>
   <!-- The moment the package was added -->
    <updated>2003-12-13T18:30:02Z</updated>
   <!-- Application category. Multiple categories are permitted -->
   <category term="Web/Wiki" />
   <author a:author-type="vendor">
    <!-- Application vendor name -->
    <name>opensource</name>
    <!-- Application vendor URI -->
    <uri>http://info.tikiwiki.org/tiki-index.php</uri>
   </author>
   <author a:author-type="packager">
    <name>Parallels</name>
    <uri>urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6</uri>
   </author>
  <!-- Application description. sa:description content -->
   <content type="html">TikiWiki enable administrators and users...</content>
  <!-- URI of APS package bits -->
   <link rel="http://apstandard.com/ns/repo/1#bits' type='application/zip'
    href="http://example.org/1/opensource/tikiwiki/1.9.7-34.aps?packager=parallels"
    length="439144">
   <!-- any number of a:checksum elements is allowed -->
    <a:checksum algorithm=”MD5”>md5 digest</a:checksum>
    <a:checksum algorithm=”SHA1”>sha1 digest</a:checksum>
   </link>
   <!-- Link to Version index -->
   <link rel="alternate"
  href="http://example.org/1/opensource/tikiwiki/1.9.7-34/?packager=parallels"
   <link/>
   <!-- APP-META link -->
   <link rel="http://apstandard.com/ns/repo/1#meta" type="application/xml"
  href="http://example.org/1/opensource/tikiwiki/1.9.7-34.meta?packager=parallels"
   <link/>
   <!-- Self link -->
   <link rel="self" type="application/xml"
  href="http://example.org/1/opensource/tikiwiki/1.9.7-34.atom?packager=parallels"
   <link/>
   <!-- Direct screen shot links -->
   <link rel="http://apstandard.com/ns/repo/1#screenshot" type="image/png"
href="http://media.example.org/1/opensource/tikiwiki/1.9.7-34/resources/images/screenshot1.png" />
   <!-- Link to Application resources index -->
   <link rel="http://apstandard.com/ns/repo/1#resources" type="application/xhtml+xml"
href="http://example.org/1/opensource/tikiwiki/1.9.7-34/resources/?packager=parallels"/>
   <!-- Link to Package updates index. -->
   <link rel="http://apstandard.com/ns/repo/1#updates" type="application/atom+xml"
href="http://example.org/1/opensource/tikiwiki/1.9.7-34/updates.atom?packager=parallels"/>
   <a:name>tikiwiki</a:name>
   <a:version>1.9.7</a:version>
   <a:release>34</a:release>
   <a:description>
    TikiWiki enables administrators and users to create, display ...
   </a:description>
   <a:summary>tikiwiki</a:summary>
   <a:vendor>opensource</a:vendor>
   <a:packager>parallels</a:packager>
   <a:categories>
    <a:category>Web/Wiki</a:category>
   </a:categories>
<a:tags><a:tag>Featured</a:tag><a:tag>Gold Package</a:tag></a:tags>
 </entry>
</feed>

Elements Reference

This section contains description of elements nested in an APS Catalog feed.

OpenSearch 1.1 elements nested in a feed:

Element Description
//opensearch:totalResults Total number of entries in a feed
//opensearch:startIndex Index of the first entry in the current feed page
//opensearch:itemsPerPage Number of entries per feed page
//link[@rel='search'] Link to a search description

[RFC5005] elements nested in a feed:

Element Description
//link[@rel='self'] Link to the current feed page
//link[@rel='first'] Link to the first feed page
//link[@rel='last'] Link to the last feed page
//link[@rel='next'] Link to the next feed page

Other feed elements are divided into three groups:

  • Native Atom elements that represent APS package metadata
  • APS Catalog elements that represent APS package metadata
  • APS Catalog service elements

For description of APS package metadata, see Metadata Descriptor (APP-META.xml)

Native Atom elements mapping:

//id Package ID generated by APS Catalog
//title //sa:name
//summary //sa:summary
//category/@term //sa:categories/sa:category
//author[@a:author-type=’vendor’]/name //sa:vendor/sa:name[not(@xml:lang)]
//author[@a:author-type=’vendor’]/uri //sa:vendor/sa:homepage[not(@xml:lang)]
//author[@a:author-type=’packager’]/name //sa:packager/sa:name[not(@xml:lang)]
//author[@a:author-type=’packager’]/uri //sa:packager/sa:homepage[not(@xml:lang)]
//content //sa:description[not(@xml:lang)]
//link[@rel=’http://apstandard.com/ns/repo/1#icon’] //sa:icon
//link[@rel=’http://apstandard.com/ns/repo/1#screenshot’] //sa:screenshot
//link[@rel=’http://apstandard.com/ns/repo/1#description’]/a:description //sa:screenshot/sa:description[not(@xml:lang)]
//a:admin-privilege n/a (optional element, administrative privilege requirement)
//a:name //sa:name
//a:master-package/a:package/@id //sa:master-package/sa:package/@id
//a:summary //sa:summary[not(@xml:lang)]
//a:categories //sa:categories
//a:version //sa:version
//a:rating n/a (average Package rating)
//a:rating-counter n/a (number of votes for the Package)
//a:release //sa:release
//a:description //sa:description[not(@xml:lang)]
//a:recommended //sa:recommended
//a:upgradable-from //sa:upgradable-from
//a:patchable-from //sa:patchable-from
//a:patches //sa:patches
//a:upgrades //sa:upgrades
//a:licenses //sa:license-agreement
//a:licenses/a:license/a:name //sa:license-agreement/sa:text/sa:name`` (license name)
//a:licenses/a:license/a:type/text() “commercial” if //sa:license-agreement/sa:commercial, “free” if //sa:license-agreement/sa:free and “other” otherwise (whether a license is commercial, free or other)

APS Catalog service elements:

Feed element Description
//link[@type='http://apstandard.com/ns/repo/1#bits']/a:checksum Package digest. Digesting algorithm is specified by the /entry/link/a:checksum/@algorithm attribute. Recommended algorithm values are SHA1 and MD5.
//link[@rel='http://apstandard.com/ns/repo/1#meta']/@href Link to package metadata.
//link[@rel='http://apstandard.com/ns/repo/1#bits']/@href Link to package bits.
//link[@rel='http://apstandard.com/ns/repo/1#updates']/@href Link to Package Updates feed.
//link[@rel='http://apstandard.com/ns/repo/1#resources']/@href Link to Package Resources index.
//link[@rel='http://apstandard.com/ns/repo/1#screenshot']/a:width Screenshot width.
//link[@rel='http://apstandard.com/ns/repo/1#screenshot']/a:height Screenshot height.
//link[@rel='alternate']/@href Link to index document.
//link[@rel='http://apstandard.com/ns/repo/1#meta']/@href Link to package metadata (APP META).
//link[@rel='http://apstandard.com/ns/repo/1#certificate']/@href Link to package certificate (if any).
//link[@rel='related' and @type='text/plain' and @a:type='eula']/@a:service

Service EULA.

Attention a:service attribute is available starting from APS 1.1 only.

//link[@rel='related' and @type='text/plain' and @a:type='eula']/@href

Link to application EULA. It can point to:

  • APS Catalog URL, if EULA content is in text file and it exists in application package.
  • Corresponding URL, if the one is provided in APP-META.xml file and points to external resource.
//link[@rel='related' and @type='text/plain' and @a:type='eula']/@xml:lang Optional attribute representing EULA language.
//link[@rel='replies' and @type='application/atom+xml' and @a:type='addons']/@href Feed URI of the add-on APS Package
//link[@rel='replies' and @type='application/atom+xml' and @a:type='updates']/@href Feed URI for APS package updates index.
//link[@rel='http://apstandard.com/ns/repo/1#meta']/@a:featured Featured rating defines the position of the application in the list of applications registered in the Catalog. This value is assigned by the Catalog administrator and can only be changed in the Packager Administration Panel.
//link[@rel='http://apstandard.com/ns/repo/1#meta']/@a:tags Tags used for more detailed classification of APS Packages.
//link[@rel='replies' and @type='application/atom+xml' and @a:type='masters']/@href URI of master feed for APS package.

Additional Feed URLs

There is only one additional feed for now that is available at the following URL:

Feed name Feed URL
Application reviews for all its versions <ROOT_URL>/<APSver>/<VendorName>/<AppName>/ reviews.atom

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;

Sample

This section provides a sample of additional APS Catalog feed. For description of a specific feed element, refer to Elements Reference.

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"
xmlns:a="http://apstandard.com/ns/repo/1">
  <id>http://catalog.apsstandard.org/all/www.4homepages.de/4images/reviews.atom</id>
  <title>4images</title>
  <updated>2009-05-21T18:15:35Z</updated>
  <!-- Derived from Opensearch 1.1 -->
  <opensearch:totalResults>1</opensearch:totalResults>
  <opensearch:startIndex>1</opensearch:startIndex>
  <opensearch:itemsPerPage>10</opensearch:itemsPerPage>
  <!-- Derived from RFC5005 -->
  <link rel="self" href="http://catalog.apsstandard.org/all/www.4homepages.de/4images/reviews.atom"/>
  <link rel="first" href="http://catalog.apsstandard.org/all/www.4homepages.de/4images/reviews.atom" />
  <link rel="last" href="http://catalog.apsstandard.org/all/www.4homepages.de/4images/reviews.atom?page=3" />
  <link rel="next" href="http://catalog.apsstandard.org/all/www.4homepages.de/4images/reviews.atom?page=2" />
  <!-- Atom elements and APS Catalog extensions -->
 <entry xmlns="http://www.w3.org/2005/Atom"  xmlns:a="http://apstandard.com/ns/repo/1">
  <!-- Review URI -->
  <id>tag:catalog.apsstandard.org,2009-05-21:/1/www.4homepages.de/4images/reviews/181535/44</id>
  <!-- Review rating -->
  <title>5 </title>
  <!-- Review date -->
  <updated>2009-05-21T18:15:35Z</updated>
  <published>2009-05-21T18:15:35Z</published>
  <!-- Review author -->
  <author>
   <name>Anonymous</name>
  </author>
  <!-- Review content -->
  <content type="html">
   I liked this application very much, it is really useful.
  </content>
 </entry>
</feed>

Elements Reference

This section contains description of elements nested in additional APS Catalog feed.

Element Description
id URI.
title Application name.
updated Date of last review.
entry/id Review unique ID.
entry/title Review rating.
entry/updated Date of the review.
entry/author/name Review author name, must be “Anonymous”.
entry/content Review text.