Project

General

Profile

Bug #493 » eml-software.xsd

Owen Eddins, 05/29/2002 08:16 AM

 
1
<?xml version="1.0"?>
2
<xs:schema targetNamespace="eml:softwarePackage-2.0.0beta8" xmlns:doc="eml:documentation-2.0.0beta8" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:res="eml:resource-2.0.0beta8" xmlns="eml:softwarePackage-2.0.0beta8">
3
  <xs:import namespace="eml:documentation-2.0.0beta8" schemaLocation="eml-documentation.xsd"/>
4
  <xs:annotation>
5
    <xs:documentation>
6
       '$RCSfile: eml-software.xsd,v $'
7
       Copyright: 2000 Regents of the University of California and the
8
                  National Center for Ecological Analysis and Synthesis
9
     For Details: http://knb.ecoinformatics.org/
10
  
11
        '$Author: jones $'
12
          '$Date: 2002/05/24 21:46:41 $'
13
      '$Revision: 1.8 $'
14
    
15
    This program is free software; you can redistribute it and/or modify
16
    it under the terms of the GNU General Public License as published by
17
    the Free Software Foundation; either version 2 of the License, or
18
    (at your option) any later version.
19
  
20
    This program is distributed in the hope that it will be useful,
21
    but WITHOUT ANY WARRANTY; without even the implied warranty of
22
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23
    GNU General Public License for more details.
24
  
25
    You should have received a copy of the GNU General Public License
26
    along with this program; if not, write to the Free Software
27
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
28
    </xs:documentation>
29
    <xs:appinfo>
30
      <doc:moduleName>eml-software</doc:moduleName>
31
      <doc:moduleDescription>
32
        The eml-softwarePackage module contains general information that describes
33
        software resources.
34
      </doc:moduleDescription>
35
    </xs:appinfo>
36
  </xs:annotation>
37
  <!-- import the elements from eml-resource -->
38
  <xs:import namespace="eml:resource-2.0.0beta8" schemaLocation="eml-resource.xsd"/>
39
  <xs:simpleType name="Action">
40
    <xs:annotation>
41
      <xs:appinfo>
42
        <doc:tooltip>
43
	    Action				
44
	  </doc:tooltip>
45
        <doc:summary>
46
          Describes what action needs to	be undertaken (if any) for a software 
47
          dependency at either the software package or implementation level.  
48
		</doc:summary>
49
        <doc:description>
50
           This element and its enumerations of assert and install can be used 
51
           as commands by a software application to carry out these actions 
52
           on software package dependencies.   This is a change from how 
53
           we have used all previous elements within eml.  Up until now all 
54
           other elements have been simply metadata designed to describe 
55
           data,  literature citations, etc... with the Action element we can use 
56
           this module as a command to carry out the action.
57
		</doc:description>
58
        <doc:example>
59
          "install" or "assert"
60
          </doc:example>
61
        <doc:lineage>
62
           The Action Element was introduced in 2.0.0 beta 9.          
63
		</doc:lineage>
64
      </xs:appinfo>
65
    </xs:annotation>
66
    <xs:restriction base="xs:string">
67
      <xs:enumeration value="install"/>
68
      <xs:enumeration value="assert"/>
69
    </xs:restriction>
70
  </xs:simpleType>
71
  <xs:element name="dependency">
72
    <xs:annotation>
73
      <xs:appinfo>
74
        <doc:tooltip>
75
			Dependency
76
		</doc:tooltip>
77
        <doc:summary>
78
        Dependency describes the software package(s) that the software package 
79
        is dependent upon.	
80
		</doc:summary>
81
        <doc:description>
82
			The dependency element is recursive.  It is a sub-element of the 
83
			SoftwarePackage Element but it also has as a sub-element its 
84
			parent element Software Package.  Dependecy has been
85
			made optional because to make it mandatory does not allow 
86
			the recursion to end.
87
									
88
			Dependency has also been made a sub-element of 
89
			implementation because there can be both implementation 
90
			and package level dependencies within a package.										</doc:description>
91
        <doc:example>
92
        See sub-elements for examples
93
        </doc:example>
94
        <doc:lineage>
95
		  The dependency Element was introduced in 2.0.0 beta 9.          
96
		</doc:lineage>
97
      </xs:appinfo>
98
    </xs:annotation>
99
    <xs:complexType>
100
      <xs:sequence>
101
        <xs:element name="action" type="Action"/>
102
        <xs:element ref="softwarePackage"/>
103
      </xs:sequence>
104
    </xs:complexType>
105
  </xs:element>
106
  <xs:element name="softwarePackage" type="SoftwarePackage">
107
    <xs:annotation>
108
      <xs:appinfo>
109
        <doc:tooltip>
110
          	Software Package
111
        </doc:tooltip>
112
        <doc:summary>
113
			Defines a software distribution and all of its dependent software.
114
        </doc:summary>
115
        <doc:description>
116
          	The 'softwarePackage' element contains general information about a 
117
          	software resource that is being documented.  This field is
118
          	intended to give information for software tools that are needed 
119
          	to interpret a dataset, software that was written to process a
120
         	resource, or software as a resource in itself.
121
          
122
         	It is based on eml-resource and Open Software Description (OSD) 
123
            a W3C submission.
124
         				 
125
         	There can be multiple implementations within a software package 
126
         	because a physical software package can run on multiple hardware 
127
         	and/or operating systems.  See implementation element documentation 
128
         	for a more thorough explanation.	
129
        </doc:description>
130
        <doc:example>
131
         	 Please see the examples for each subelement of the 
132
         	 'softwarePackage' type.
133
        </doc:example>
134
        <doc:lineage>
135
			The softwarePackage Element was introduced in 2.0.0 beta 9.  It replaces 
136
			the software element.  The 'software' element was introduced into EML 2.0, 
137
			however it was derived from the eml-software module in EML 1.4.
138
      </doc:lineage>
139
      </xs:appinfo>
140
    </xs:annotation>
141
  </xs:element>
142
  <xs:complexType name="SoftwarePackage">
143
    <xs:complexContent>
144
      <xs:extension base="res:ResourceBase">
145
        <xs:sequence>
146
          <xs:element name="implementation" maxOccurs="unbounded">
147
            <xs:annotation>
148
              <xs:appinfo>
149
                <doc:tooltip>
150
					Implementation
151
				</doc:tooltip>
152
                <doc:summary>
153
					Describes the hardware and/or operating system requirements for one 
154
					implementation of a package.
155
				</doc:summary>
156
                <doc:description>
157
					Implementation describes the hardware, operating system
158
					resources a package runs on.  Note, a package can have multiple
159
					implementations.  So for example, a package may be written in
160
					java and the package may run on numerous hardware and/or 
161
					operating systems like Pentium/Linux, Pentium/NT and so on...
162
				    Hardware and Software descriptions that have different
163
			        requirements can be placed here.
164
				</doc:description>
165
                <doc:example>
166
         			Please see the examples for each subelement of the 
167
         			'implementation' type.
168
        		</doc:example>
169
                <doc:lineage>
170
					The implementation Element was introduced in 2.0.0 beta 9.          
171
			  </doc:lineage>
172
              </xs:appinfo>
173
            </xs:annotation>
174
            <xs:complexType>
175
              <xs:sequence>
176
                <xs:element name="distribution" type="res:DistributionType" minOccurs="0" maxOccurs="unbounded">
177
                  <xs:annotation>
178
                    <xs:appinfo>
179
                      <doc:tooltip>Distribution Information
180
            </doc:tooltip>
181
                      <doc:summary>
182
              Information on how the resource is distributed online and offline
183
            </doc:summary>
184
                      <doc:description>
185
              This element provides information on how the resource is 
186
              distributed online and offline.  Connections to online 
187
              systems can be described as URLs and as a list of relevant
188
              connection parameters.
189
            </doc:description>
190
                      <doc:example/>
191
                      <doc:lineage>
192
              Derived from distribution elements in the FGDC standard.
193
            </doc:lineage>
194
                    </xs:appinfo>
195
                  </xs:annotation>
196
                </xs:element>
197
                <xs:element name="size" type="xs:string" minOccurs="0">
198
                  <xs:annotation>
199
                    <xs:appinfo>
200
                      <doc:tooltip>
201
						 Size
202
					  </doc:tooltip>
203
                      <doc:summary>
204
						Physical size of an implemetation in Kilo, Mega .... bytes.									          </doc:summary>
205
                      <doc:description>
206
                       Physical size of an implemetation in Kilo, Mega .... bytes.
207
                      </doc:description>
208
                      <doc:example>
209
						 100 Megabytes
210
					  </doc:example>
211
                    </xs:appinfo>
212
                  </xs:annotation>
213
                </xs:element>
214
                <xs:element name="language" minOccurs="0" maxOccurs="unbounded">
215
                  <xs:annotation>
216
                    <xs:appinfo>
217
                      <doc:tooltip>
218
						 International Language
219
					  </doc:tooltip>
220
                      <doc:summary>
221
						 The International Language of the software implementation 								              </doc:summary>
222
                      <doc:description>
223
                      The International Language of the software implementation
224
                      </doc:description>
225
                      <doc:example>
226
                      See sub-elements for examples
227
                      </doc:example>
228
                    </xs:appinfo>
229
                  </xs:annotation>
230
                  <xs:complexType>
231
                    <xs:sequence>
232
                      <xs:element name="LanguageValue" type="xs:string">
233
                        <xs:annotation>
234
                          <xs:appinfo>
235
                            <doc:tooltip>
236
								Language Value
237
							</doc:tooltip>
238
                            <doc:summary>
239
							  The actual value for the language or code												            </doc:summary>
240
                            <doc:description>
241
								The value could be just a text string like english or french or it 
242
								could be an International Language code like ISO 639-2.
243
							</doc:description>
244
                            <doc:example>'english' or 'en'	</doc:example>
245
                          </xs:appinfo>
246
                        </xs:annotation>
247
                      </xs:element>
248
                      <xs:element name="LanguageCodeStandard" type="xs:string" minOccurs="0">
249
                        <xs:annotation>
250
                          <xs:appinfo>
251
                            <doc:tooltip>
252
								Language Code Standard
253
							</doc:tooltip>
254
                            <doc:summary>
255
								The International Language Code being used											            </doc:summary>
256
                            <doc:description>
257
								See www.loc.gov/standards/iso639-2/													            </doc:description>
258
                            <doc:example>'que' for Quechua, 'eng' for English and so on...												</doc:example>
259
                          </xs:appinfo>
260
                        </xs:annotation>
261
                      </xs:element>
262
                    </xs:sequence>
263
                  </xs:complexType>
264
                </xs:element>
265
                <xs:element name="operatingSystem" type="xs:string" minOccurs="0" maxOccurs="unbounded">
266
                  <xs:annotation>
267
                    <xs:appinfo>
268
                      <doc:tooltip>
269
						Operating System																					      </doc:tooltip>
270
                      <doc:summary>
271
						 Operating System(s) an implementation runs on 												  </doc:summary>
272
                      <doc:description>
273
						 Operating System(s) an implementation runs on 												  </doc:description>
274
                      <doc:example>
275
						  Windows 95, Window NT, Windows XP, Sun Solaris 2.8											 </doc:example>
276
                    </xs:appinfo>
277
                  </xs:annotation>
278
                </xs:element>
279
                <xs:element name="machineProcessor" type="xs:string" minOccurs="0" maxOccurs="unbounded">
280
                  <xs:annotation>
281
                    <xs:appinfo>
282
                      <doc:tooltip>
283
						 Machine Processor																					  </doc:tooltip>
284
                      <doc:summary>
285
						  The Machine Processor required for implementation 									              </doc:summary>
286
                      <doc:description>
287
						The Machine Processor required for implementation 												  </doc:description>
288
                      <doc:example>
289
							Pentium II, Intel 486, SUN Sparc					  </doc:example>
290
                    </xs:appinfo>
291
                  </xs:annotation>
292
                </xs:element>
293
                <xs:element name="virtualMachine" type="xs:string" minOccurs="0">
294
                  <xs:annotation>
295
                    <xs:appinfo>
296
                      <doc:tooltip>
297
                         Virtual Machine																					          </doc:tooltip>
298
                      <doc:summary>
299
                         Virtual Machine implementation requires 														  </doc:summary>
300
                      <doc:description>
301
                         Virtual Machine implementation requires														</doc:description>
302
                      <doc:example>
303
                         Java Virtual Machne	1.2																		    </doc:example>
304
                    </xs:appinfo>
305
                  </xs:annotation>
306
                </xs:element>
307
                <xs:element name="diskUsage" type="xs:string" minOccurs="0">
308
                  <xs:annotation>
309
                    <xs:appinfo>
310
                      <doc:tooltip>
311
                         Disk Usage																						          </doc:tooltip>
312
                      <doc:summary>
313
                          The minimum amount of Disk Space required to install an 
314
                          lmplementation in Kilo, Mega bytes etc...					
315
					  </doc:summary>
316
                      <doc:description>
317
                          The minimum amount of Disk Space required to install an 
318
                          lmplementation in Kilo, Mega bytes etc...														  </doc:description>
319
                      <doc:example>
320
                         220 Megabytes		
321
                    </doc:example>
322
                    </xs:appinfo>
323
                  </xs:annotation>
324
                </xs:element>
325
                <xs:element name="runtimeMemoryUsage" type="xs:string" minOccurs="0">
326
                  <xs:annotation>
327
                    <xs:appinfo>
328
                      <doc:tooltip>
329
                         Runtime Memory Usage									   
330
                      </doc:tooltip>
331
                      <doc:summary>
332
                         The minimum amount of memory required to run an 
333
                         lmplementation in Kilo, Mega b ytes etc...					
334
                     </doc:summary>
335
                      <doc:description> 
336
                         The minimum amount of memory required to run an 
337
                         lmplementation in Kilo, Mega b ytes etc...	                         										 	  </doc:description>
338
                      <doc:example>
339
                         32 Megabytes		
340
                     </doc:example>
341
                    </xs:appinfo>
342
                  </xs:annotation>
343
                </xs:element>
344
                <xs:element name="programmingLanguage" type="xs:string" minOccurs="0" maxOccurs="unbounded">
345
                  <xs:annotation>
346
                    <xs:appinfo>
347
                      <doc:tooltip>
348
                        Programming Language					 														 </doc:tooltip>
349
                      <doc:summary>
350
	                     The Computer Programming Language the Software Package 
351
	                     was programmed in.				
352
					  </doc:summary>
353
                      <doc:description>
354
						The Computer Programming Language the Software Package 
355
	                     was programmed in.			 																	      </doc:description>
356
                      <doc:example>
357
					     C++, Java, C, C#, Perl, Cobol, Fortran, Lisp, Visual Basic, VBA, 
358
						 Bourne Shell Script etc....	
359
					 </doc:example>
360
                    </xs:appinfo>
361
                  </xs:annotation>
362
                </xs:element>
363
                <xs:element name="checksum" type="xs:string" minOccurs="0">
364
                  <xs:annotation>
365
                    <xs:appinfo>
366
                      <doc:tooltip>
367
                         Checksum																						              </doc:tooltip>
368
                      <doc:summary>
369
                         The generated checksum value of a software package 
370
                         that is a self-contained module.				
371
					  </doc:summary>
372
                      <doc:description>
373
	                     The generated checksum value of a software package 
374
                         that is a self-contained module.																  </doc:description>
375
                      <doc:example>
376
							$sum software.jar
377
							27021 22660	
378
					  </doc:example>
379
                    </xs:appinfo>
380
                  </xs:annotation>
381
                </xs:element>
382
                <xs:element ref="dependency" minOccurs="0" maxOccurs="unbounded"/>
383
              </xs:sequence>
384
            </xs:complexType>
385
          </xs:element>
386
          <xs:element ref="dependency" minOccurs="0" maxOccurs="unbounded">
387
            <xs:annotation>
388
              <xs:appinfo>
389
                <doc:tooltip>
390
	              Dependency
391
                </doc:tooltip>
392
                <doc:summary>
393
					Dependency describes the software packages that the software package is 
394
					dependent upon.	
395
				</doc:summary>
396
                <doc:description>
397
					The dependency element is recursive.  It is a sub-element of the 
398
					SoftwarePackage Element but it also has as a sub-element its parent 
399
					element Software Package.  Dependecy has been made optional because 
400
					to make it mandatory does not allow the recursion to end.
401
									
402
					Dependency has also been made a sub-element of implementation because 
403
					there can be both implementation and package level dependencies within a 
404
					package.												
405
				</doc:description>
406
                <doc:example>
407
                  See sub-elements for examples
408
                </doc:example>
409
                <doc:lineage>
410
				  The implementation Element was introduced in 2.0.0 beta 9.          
411
				</doc:lineage>
412
              </xs:appinfo>
413
            </xs:annotation>
414
          </xs:element>
415
          <xs:choice minOccurs="0" maxOccurs="unbounded">
416
            <xs:element name="licenseURL" type="xs:string">
417
              <xs:annotation>
418
                <xs:appinfo>
419
                  <doc:tooltip>
420
                    Online URL for license
421
                  </doc:tooltip>
422
                  <doc:summary>
423
                   Online URL for license                
424
                   </doc:summary>
425
                  <doc:description>
426
                     Online URL for license 		
427
                  </doc:description>
428
                  <doc:example>
429
                    http://www.softwareVendor.com/software1.0/license.html
430
                  </doc:example>
431
                  <doc:lineage>
432
					The license URL element was introduced in 2.0.0 beta 9.          
433
				</doc:lineage>
434
                </xs:appinfo>
435
              </xs:annotation>
436
            </xs:element>
437
            <xs:element name="license" type="xs:string">
438
              <xs:annotation>
439
                <xs:appinfo>
440
                  <doc:tooltip>
441
                    License information
442
                  </doc:tooltip>
443
                  <doc:summary>
444
                   Licensing information as text within the metadata                
445
                   </doc:summary>
446
                  <doc:description>
447
                    Licensing information as text within the metadata
448
                  </doc:description>
449
                  <doc:example><![CDATA[
450
     '$RCSfile: eml-software.xsd,v $'
451
       Copyright: 2000 Regents of the University of California and the
452
                  National Center for Ecological Analysis and Synthesis
453
     For Details: http://knb.ecoinformatics.org/
454
  
455
        '$Author: jones $'
456
          '$Date: 2002/05/24 21:46:41 $'
457
      '$Revision: 1.8 $'
458
    
459
    This program is free software; you can redistribute it and/or modify
460
    it under the terms of the GNU General Public License as published by
461
    the Free Software Foundation; either version 2 of the License, or
462
    (at your option) any later version.
463
  
464
    This program is distributed in the hope that it will be useful,
465
    but WITHOUT ANY WARRANTY; without even the implied warranty of
466
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
467
    GNU General Public License for more details.
468
  
469
    You should have received a copy of the GNU General Public License
470
    along with this program; if not, write to the Free Software
471
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
472
    ]]></doc:example>
473
                  <doc:lineage>
474
					The license element was introduced in 2.0.0 beta 9.          
475
				</doc:lineage>
476
                </xs:appinfo>
477
              </xs:annotation>
478
            </xs:element>
479
          </xs:choice>
480
          <xs:element name="version" type="xs:string">
481
            <xs:annotation>
482
              <xs:appinfo>
483
                <doc:tooltip>
484
                 Version
485
                </doc:tooltip>
486
                <doc:summary>
487
                   Version of the software being packaged.
488
                </doc:summary>
489
                <doc:description>
490
                   String value corresponding to the major, minor, custom, and 
491
                   build version.
492
				</doc:description>
493
                <doc:example>
494
                  Version 1.0
495
                </doc:example>
496
                <doc:lineage>
497
					The Version element was introduced in 2.0.0 beta 9.          
498
				</doc:lineage>
499
              </xs:appinfo>
500
            </xs:annotation>
501
          </xs:element>
502
        </xs:sequence>
503
      </xs:extension>
504
    </xs:complexContent>
505
  </xs:complexType>
506
</xs:schema>
(5-5/5)