summaryrefslogtreecommitdiff
path: root/docs/Pack/html/packIndexFile.html
blob: cbcf5ffc6a5a8d355d43dd462f6bc46dae924fc9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
<!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">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>CMSIS-Pack Index Files</title>
<title>CMSIS-Pack: CMSIS-Pack Index Files</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="cmsis.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="printComponentTabs.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 46px;">
  <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">CMSIS-Pack
   &#160;<span id="projectnumber">Version 1.6.0</span>
   </div>
   <div id="projectbrief">Delivery Mechanism for Software Packs</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<div id="CMSISnav" class="tabs1">
    <ul class="tablist">
      <script type="text/javascript">
		<!--
		writeComponentTabs.call(this);
		//-->
      </script>
	  </ul>
</div>
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('packIndexFile.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">CMSIS-Pack Index Files </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>CMSIS-Pack is designed as a web-based distribution network. Each provider of a CMSIS-Pack (also referred to as <em>vendor</em>) is responsible for hosting, maintaining and publishing unique versions of a CMSIS-Pack.</p>
<p>A CMSIS-Pack is uniquely identified by &lt;vendor&gt;.&lt;pack name&gt;.&lt;version&gt;.pack. All published versions of a pack and the PDSC file need to be available in the same web folder specified by &lt;url&gt;. Multiple different packs may be located in the same web folder.</p>
<h1><a class="anchor" id="pidxFile"></a>
Package Index File (pidx)</h1>
<p>The package index file lists all CMSIS-Packs hosted and maintained by a vendor. The file is hosted by the vendor and has the name &lt;vendor&gt;.pidx. The &lt;vendor&gt; tag needs to match the file name. The file also contains the &lt;url&gt; to it's origin, as well as a &lt;timestamp&gt; of it's last update.</p>
<p>It is the vendor's obligation to update this file whenever:</p>
<ul>
<li>a new pack is added.</li>
<li>a new version of a pack is added.</li>
<li>a pack is deprecated.</li>
<li>a replacement for a pack becomes available.</li>
</ul>
<p><b>Example</b> MyVendor.pidx: </p>
<div class="fragment"><div class="line">&lt;?xml version=<span class="stringliteral">&quot;1.0&quot;</span> encoding=<span class="stringliteral">&quot;UTF-8&quot;</span> ?&gt;</div>
<div class="line"></div>
<div class="line">&lt;index schemaVersion=<span class="stringliteral">&quot;1.0.0&quot;</span> xs:noNamespaceSchemaLocation=<span class="stringliteral">&quot;PackIndex.xsd&quot;</span> xmlns:xs=<span class="stringliteral">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span>&gt;</div>
<div class="line">  &lt;vendor&gt;MyVendor&lt;/vendor&gt;</div>
<div class="line">  &lt;url&gt;http:<span class="comment">//www.MyVendor.com/pack/&lt;/url&gt;</span></div>
<div class="line">  &lt;timestamp&gt;2017-01-25T15:00:10.7300074+00:00&lt;/timestamp&gt;</div>
<div class="line">  &lt;pindex&gt;</div>
<div class="line">    &lt;pdsc url=<span class="stringliteral">&quot;http://www.MyVendor.com/pack/mypack/&quot;</span> vendor=<span class="stringliteral">&quot;MyVendor&quot;</span> name=<span class="stringliteral">&quot;MyPack&quot;</span> version=<span class="stringliteral">&quot;1.1.0&quot;</span>/&gt;</div>
<div class="line">    ...</div>
<div class="line">  &lt;/pindex&gt;</div>
<div class="line">&lt;/index&gt;</div>
</div><!-- fragment --><p>Each individual pack is referenced by the attributes:</p>
<ul>
<li><code>url</code> = web folder where the PDSC and packs reside.</li>
<li><code>vendor</code> = vendor of the pack.</li>
<li><code>name</code> = the name of the pack.</li>
<li><code>version</code> = the version number of the latest available release for the pack.</li>
</ul>
<p>The package index file for the CMSIS-Pack compliant packs, hosted on www.keil.com can be found here: <a href="http://www.keil.com/pack/Keil.pidx">www.keil.com/pack/Keil.pidx</a></p>
<p>The benefit of a single package index file is, that this file only needs to be exchanged once and can be polled for updates and additions of packs by a vendor. To add a vendor's packs to the public list maintained on www.keil.com, send an email to <a href="#" onclick="location.href='mai'+'lto:'+'CMS'+'IS'+'@ar'+'m.'+'com'; return false;">CMSIS@arm.com</a> attaching a version of the &lt;vendor&gt;.pidx file.</p>
<h1><a class="anchor" id="vidxFile"></a>
Vendor Index File (vidx)</h1>
<p>A vendor index file lists package index files from different vendors. This information can be used to compile a list of known packs.</p>
<p><b>Example</b> MyVendor.vidx: </p>
<div class="fragment"><div class="line">&lt;?xml version=<span class="stringliteral">&quot;1.0&quot;</span> encoding=<span class="stringliteral">&quot;UTF-8&quot;</span> ?&gt;</div>
<div class="line"></div>
<div class="line">&lt;index schemaVersion=<span class="stringliteral">&quot;1.0&quot;</span> xmlns:xs=<span class="stringliteral">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span> xs:noNamespaceSchemaLocation=<span class="stringliteral">&quot;PackIndex.xsd&quot;</span>&gt;</div>
<div class="line">  &lt;vendor&gt;MyVendor&lt;/vendor&gt;</div>
<div class="line">  &lt;url&gt;www.MyVendor.com/pack&lt;/url&gt;</div>
<div class="line">  &lt;timestamp&gt;2017-01-08T10:30:00&lt;/timestamp&gt;</div>
<div class="line">  &lt;vindex&gt;</div>
<div class="line">    &lt;pidx url=<span class="stringliteral">&quot;http://www.othervendor.com/MyPacks/&quot;</span> vendor=<span class="stringliteral">&quot;OtherVendor&quot;</span> /&gt;</div>
<div class="line">    ...</div>
<div class="line">  &lt;/vindex&gt;</div>
<div class="line">  &lt;!-- the section below is only intended <span class="keywordflow">for</span> the transition until all vendors use the &lt;vendor&gt;.pidx file</div>
<div class="line">  &lt;pindex&gt;</div>
<div class="line">    &lt;pdsc url=<span class="stringliteral">&quot;http://www.othervendor2.com/packs/&quot;</span> vendor=<span class="stringliteral">&quot;OtherVendor2&quot;</span> name=<span class="stringliteral">&quot;MyPack&quot;</span> version=<span class="stringliteral">&quot;2.3.0&quot;</span>/&gt;</div>
<div class="line">    ...</div>
<div class="line">    &lt;/pindex&gt;</div>
<div class="line">&lt;/index&gt;</div>
</div><!-- fragment --><p>The latest index file of CMSIS-Packs belonging to vendor="ARM" and vendor="Keil" that are hosted on www.keil.com/pack is maintained here: <a href="http://www.keil.com/pack/Keil.pidx">www.keil.com/pack/Keil.pidx</a></p>
<p>ARM also maintains a flat list of all CMSIS-Pack compliant packs reported to ARM here: <a href="http://www.keil.com/pack/index.pidx">www.keil.com/pack/index.pidx</a></p>
<p>The vendor index file containing references to the package index files (or optionally PDSC files) used for compiling this summary index file are listed in the Keil.vidx file and can be downloaded from here: <a href="http://www.keil.com/pack/Keil.vidx">www.keil.com/pack/Keil.vidx</a></p>
<p>Based on these publicly available index files, everyone is equally positioned to create an index of available packs and their latest versions.</p>
<h1><a class="anchor" id="packIndexSchema"></a>
CMSIS-Pack Index Schema File</h1>
<pre class="fragment">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!-- 
 
  Copyright (c) 2013-2017 ARM Limited. All rights reserved.
 
  SPDX-License-Identifier: Apache-2.0
 
  Licensed under the Apache License, Version 2.0 (the License); you may
  not use this file except in compliance with the License.
  You may obtain a copy of the License at
 
  http://www.apache.org/licenses/LICENSE-2.0
 
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an AS IS BASIS, WITHOUT
  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
 
  $Date:        23. Januar 2017
  $Revision:    1.1.0

  $Project: Schema File for Package Index File Format Specification

  Package Index file naming convention &lt;vendor&gt;.pidx
  Vendor  Index file naming convention &lt;vendor&gt;.vidx
  SchemaVersion=1.1.0
--&gt;

&lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified" version="1.1.0"&gt;

  &lt;!-- semantic versioning (semver.org) &lt;major&gt;.&lt;minor&gt;.&lt;patch&gt;-&lt;quality&gt; --&gt; 
  &lt;xs:simpleType name="SemanticVersionType"&gt;
    &lt;xs:restriction  base="xs:string"&gt;
      &lt;!--               &lt;major&gt;         . &lt;minor&gt;        . &lt;patch&gt;        - &lt;quality&gt;                                                                                       + &lt;build meta info&gt;               --&gt;
      &lt;xs:pattern value="(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-(0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?"/&gt;
    &lt;/xs:restriction&gt;
  &lt;/xs:simpleType&gt;

  &lt;!-- some strings are used to construct filenames (e.g. package name). Such names can contain only subset of characters and must not contain neither spaces nor dots. --&gt;
  &lt;xs:simpleType name="RestrictedString"&gt;
    &lt;xs:restriction base="xs:string"&gt;
      &lt;xs:pattern value="[\-_A-Za-z0-9]+"/&gt;
      &lt;xs:pattern value="\S(.*\S)?"&gt;&lt;/xs:pattern&gt;
    &lt;/xs:restriction&gt;
  &lt;/xs:simpleType&gt;

  &lt;!-- Vendor index file Description Type --&gt;
  &lt;xs:complexType name="VidxType"&gt;
    &lt;xs:attribute name="url"             type="xs:anyURI"           use="required"/&gt;
    &lt;xs:attribute name="vendor"          type="RestrictedString"    use="required"/&gt;
    &lt;xs:attribute name="date"            type="xs:date"             use="optional"/&gt;
  &lt;/xs:complexType&gt;

  &lt;!-- Package Description Type --&gt;
  &lt;xs:complexType name="PdscType"&gt;
    &lt;xs:attribute name="url"             type="xs:anyURI"           use="required"/&gt;
    &lt;xs:attribute name="vendor"          type="RestrictedString"    use="required"/&gt;
    &lt;xs:attribute name="name"            type="RestrictedString"    use="required"/&gt;
    &lt;xs:attribute name="version"         type="SemanticVersionType" use="required"/&gt;
    &lt;xs:attribute name="date"            type="xs:date"             use="optional"/&gt;
    &lt;xs:attribute name="deprecated"      type="xs:date"             use="optional"/&gt;
    &lt;xs:attribute name="replacement"     type="RestrictedString"    use="optional"/&gt;
    &lt;xs:attribute name="size"            type="xs:unsignedInt"      use="optional"/&gt;
  &lt;/xs:complexType&gt;

  &lt;!-- Package Description file Type --&gt;
  &lt;xs:complexType name="PindexType"&gt;
    &lt;xs:sequence&gt;
      &lt;xs:element name="pdsc"            type="PdscType"            maxOccurs="unbounded"/&gt;
    &lt;/xs:sequence&gt;
  &lt;/xs:complexType&gt;

  &lt;!-- Vendor vendor's package index file tag --&gt;
  &lt;xs:complexType name="VindexType"&gt;
    &lt;xs:sequence&gt;
      &lt;xs:element name="pidx"            type="VidxType"            maxOccurs="unbounded"/&gt;
    &lt;/xs:sequence&gt;
  &lt;/xs:complexType&gt;

  &lt;!-- Index description root point (Vendor Index file, Package Index file --&gt;
  &lt;xs:element name="index" nillable="true"&gt;
    &lt;xs:complexType&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="vendor"        type="RestrictedString"/&gt;
        &lt;xs:element name="url"           type="xs:anyURI"/&gt;
        &lt;xs:element name="timestamp"     type="xs:dateTime"         minOccurs="0"/&gt;
        &lt;xs:choice minOccurs="1" maxOccurs="2"&gt;
          &lt;!-- index/list of packs --&gt;
          &lt;xs:element name="pindex"      type="PindexType"/&gt;
          &lt;!-- index/list of vendor index files --&gt;
          &lt;xs:element name="vindex"      type="VindexType"/&gt;
        &lt;/xs:choice&gt;
      &lt;/xs:sequence&gt;
      &lt;xs:attribute name="schemaVersion" type="SemanticVersionType" use="required"/&gt;
    &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
&lt;/xs:schema&gt;
</pre> </div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Wed Jul 10 2019 15:21:01 for CMSIS-Pack Version 1.6.0 by Arm Ltd. All rights reserved.
	<!--
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 
	-->
	</li>
  </ul>
</div>
</body>
</html>