-
Notifications
You must be signed in to change notification settings - Fork 2
/
marketplace.xsd
447 lines (403 loc) · 19.5 KB
/
marketplace.xsd
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
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation>
This schema defines the format for the Pentaho Marketplace Metadata.
Pentaho Marketplace Metadata is maintained here:
https://github.com/pentaho/marketplace-metadata/raw/master/marketplace.xml
Community contributors can add their contribution to the marktet place by forking
https://github.com/pentaho/marketplace-metadata
They can then modify marketplace.xml to add or update market_entry
elements that correspond to their contribution.
The contribution can then be submitted to the marketplace by sending a pull request to
pentaho's marketplace repository. Once the pull request is merged, pentaho users can
review, obtain, install, upgrade and uninstall the contribution via the marketplace ui.
The market place does not only allow users to easily obtain third party contributions;
third parties can also use the marketplace to offer support for their contribution.
</xsd:documentation>
</xsd:annotation>
<xsd:element name="market">
<xsd:annotation>
<xsd:documentation>
The market element is the root element of marketplace.xml. It is simply
a container for all market_place elements.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="market_entry" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
Each market_entry element represents a piece of functionality offered by a third party.
In many cases, a market entry is a single plugin.
However, it can also consist of a collection of plugins.
Currently, the marketplace provides items for the biserver and
pentaho data integration.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:all>
<xsd:element name="id" minOccurs="1" maxOccurs="1" type="market_entry_id_type">
<xsd:annotation>
<xsd:documentation>
A string that uniquely identifies each marketplace entry. (mandatory)
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="name" minOccurs="1" maxOccurs="1" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
A human-readable name to identify this marketplace entry. (mandatory)
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="type" minOccurs="1" maxOccurs="1" type="market_entry_type">
<xsd:annotation>
<xsd:documentation>
A string that identifies what type of marketplace entry this is. (mandatory)
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- category is temporarily not mandatory -->
<xsd:element name="category" minOccurs="0" maxOccurs="1" type="category">
<xsd:annotation>
<xsd:documentation>
At the moment a maximum of 2 levels of nesting are used for categorization.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="img" minOccurs="0" maxOccurs="1" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>
A uri for an image that illustrates this marketplace entry. (optional)
This image may appear in the marketplace ui.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="small_img" minOccurs="0" maxOccurs="1" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>
A uri for an small image that illustrates marketplace entry plugin. (optional)
This image may appear in the marketplace ui.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="documentation_url" minOccurs="0" maxOccurs="1" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>
A uri for documentation that describes this. (optional)
The marketplace ui may use this to produce a hyperlink to provide access to the documentation.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="description" minOccurs="0" maxOccurs="1" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
A description of this plugin. (optional)
The marketplace ui uses this text to let the user know what this marketplace entry is about..
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="author" minOccurs="0" maxOccurs="1" type="xsd:normalizedString">
<xsd:annotation>
<xsd:documentation>
A string that identifies the author of this marketplace entry. (optional)
This could be the name of a person, or a company name.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="author_url" minOccurs="0" maxOccurs="1" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>
A uri that links to a document with more information about this author. (optional)
This could be a blog home page, a user profile on some social medium like github,
twitter or facebook, or a company homepage.
The marketplace ui may produce a link to this page.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="author_logo" minOccurs="0" maxOccurs="1" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>
A uri that links to a logo to describe this author. (optional)
For example, if the author is a company, this would link to an image of the company logo.
The marketplace ui may display this logo together with the market place entry.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="installation_notes" minOccurs="0" maxOccurs="1" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
If applicable, any extra info required to install this plugin . (optional)
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="dependencies" minOccurs="0" maxOccurs="1" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
A comma separated list of plugin ids which are required to use this plugin . (optional)
For example, the community dashboard editor (CDE) depends on both
the community dashboard framework (CDF) and community data access (CDA).
Therefore CDE lists "CDF, CDA" as dependencies.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="license" minOccurs="0" maxOccurs="1" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
A string that identifies the license that applies to this marketplace entry. (optional)
The marketplace may use this to produce a hyperlink to the license.
If you're contribution is distributed under a known open source license, then
please consider using the list of OSI approved licenses for the exact spelling
of the license name or abbreviation:
http://opensource.org/licenses/alphabetical
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="license_name" minOccurs="0" maxOccurs="1" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Typically not used. If you decide to use it please consider using the "license" element
for the abbreviation and the license_name field for the full name.
A list of OSI approved licenses is here:
http://opensource.org/licenses/alphabetical
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="license_text" minOccurs="0" maxOccurs="1" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Full license text. You can use this if your license is a custom license. (optional)
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="support_level" minOccurs="0" maxOccurs="1" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
A code that indicates the level of support offered for this contribution. (optional)
Here's a list of suggested codes
* COMMUNITY_SUPPORTED
* PROFESSIONALLY_SUPPORTED
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="support_message" minOccurs="0" maxOccurs="1" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
A short human-readable message to further clarify the support level, or more detailed support options if applicable.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="support_organization" minOccurs="0" maxOccurs="1" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
If applicable, the name of the organization providing the support.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="support_url" minOccurs="0" maxOccurs="1" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>
A uri that provides access to the support channel.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="versions" minOccurs="0" maxOccurs="1" type="versionList">
<xsd:annotation>
<xsd:documentation>
A list of available versions.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="forum_url" minOccurs="0" maxOccurs="1" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>
Use this to advertise the url of a particular forum or community support site for this marketplace entry.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="cases_url" minOccurs="0" maxOccurs="1" type="xsd:anyURI"/>
<xsd:element name="screenshots" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
A list of screenshots to further illustrate this marketplace entry.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="screenshot" minOccurs="0" maxOccurs="3" type="xsd:anyURI"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:key name="market_entry_type_id">
<xsd:annotation>
<xsd:documentation>
Id and type must be unique throughout the marketplace.
</xsd:documentation>
</xsd:annotation>
<xsd:selector xpath="market_entry"/>
<xsd:field xpath="type"/>
<xsd:field xpath="id"/>
</xsd:key>
<xsd:key name="market_entry_type_name">
<xsd:annotation>
<xsd:documentation>
Name and type should be unique throughout the marketplace.
</xsd:documentation>
</xsd:annotation>
<xsd:selector xpath="market_entry"/>
<xsd:field xpath="type"/>
<xsd:field xpath="name"/>
</xsd:key>
</xsd:element>
<xsd:simpleType name="market_entry_type">
<xsd:restriction base="xsd:normalizedString">
<xsd:enumeration value="Platform">
<xsd:annotation>
<xsd:documentation>
This market entry is a bi platform plugin, such as a content generator plugin.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="Database">
<xsd:annotation>
<xsd:documentation>
This market entry is a database connection plugin for pentaho data integration.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="Step">
<xsd:annotation>
<xsd:documentation>
This market entry is a transformation step plugin for pentaho data integration.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="JobEntry">
<xsd:annotation>
<xsd:documentation>
The market entry is a job entry plugin for pentaho data integration.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="Mixed">
<xsd:annotation>
<xsd:documentation>
Mixed type. If the market entry could comprise a number of plugins.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="Partitioner">
<xsd:annotation>
<xsd:documentation>
This market entry is a row partitioner plugin for pentaho data integration.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="HadoopShim">
<xsd:annotation>
<xsd:documentation>
This market entry is a big data shim - an abstraction of a typical hadoop distro - for use in the pentaho big data plugin.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="SpoonPlugin">
<xsd:annotation>
<xsd:documentation>
This market entry is a Spoon plugin, possibly a perspective or something that adds to the PDI UI.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="versionList">
<xsd:sequence>
<xsd:element name="version" type="version" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="version">
<xsd:annotation>
<xsd:documentation>
A descriptor of a particular version of a plugin.
</xsd:documentation>
</xsd:annotation>
<xsd:all>
<xsd:element name="branch" minOccurs="1" maxOccurs="1" type="xsd:normalizedString"/>
<xsd:element name="version" minOccurs="1" maxOccurs="1" type="version_data_type"/>
<xsd:element name="build_id" minOccurs="0" maxOccurs="1" type="xsd:string"/>
<xsd:element name="development_stage" minOccurs="0" maxOccurs="1" type="development_stage"/>
<xsd:element name="name" minOccurs="0" maxOccurs="1" type="xsd:normalizedString"/>
<xsd:element name="package_url" minOccurs="0" maxOccurs="1" type="xsd:anyURI"/>
<xsd:element name="samples_url" minOccurs="0" maxOccurs="1" type="xsd:anyURI"/>
<xsd:element name="source_url" minOccurs="0" maxOccurs="1" type="xsd:anyURI"/>
<xsd:element name="description" minOccurs="0" maxOccurs="1" type="xsd:string"/>
<xsd:element name="min_parent_version" minOccurs="0" maxOccurs="1" type="xsd:string"/>
<xsd:element name="max_parent_version" minOccurs="0" maxOccurs="1" type="xsd:string"/>
<xsd:element name="changelog" minOccurs="0" maxOccurs="1" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="development_stage">
<xsd:annotation>
<xsd:documentation>
The stage of development the version of the market entry is at.
</xsd:documentation>
</xsd:annotation>
<xsd:all>
<xsd:element name="lane" minOccurs="1" maxOccurs="1" type="development_stage_lane">
</xsd:element>
<xsd:element name="phase" minOccurs="1" maxOccurs="1" type="development_stage_phase"/>
</xsd:all>
</xsd:complexType>
<xsd:simpleType name="development_stage_lane">
<xsd:restriction base="xsd:normalizedString">
<xsd:enumeration value="Customer"/>
<xsd:enumeration value="Community"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="development_stage_phase">
<xsd:restriction base="xsd:unsignedInt">
<xsd:minInclusive value="1"/>
<xsd:maxInclusive value="4"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="category">
<xsd:annotation>
<xsd:documentation>
The category the market entry is belongs to.
A category can have a parent category.
</xsd:documentation>
</xsd:annotation>
<xsd:all>
<xsd:element name="parent" minOccurs="0" maxOccurs="1" type="category"/>
<xsd:element name="name" minOccurs="1" maxOccurs="1" type="xsd:normalizedString"/>
</xsd:all>
</xsd:complexType>
<xsd:simpleType name="version_data_type">
<xsd:annotation>
<xsd:documentation>
A version data must have at least one character.
The allowed characters are letters, numbers, "_", "-", ".", and whitespaces.
The first character cannot be a whitespace.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:token">
<xsd:pattern value='[\p{L}\p{N}\.\s_-]+'/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="market_entry_id_type">
<xsd:annotation>
<xsd:documentation>
A market entry id must have at least one character and start with a letter.
The remaining character must either be a letter, number, "_", "-" or ".".
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:token">
<xsd:pattern value='\p{L}{1}[\p{L}\p{N}\._-]*'/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>