Project

General

Profile

Bug #493 » eml-softwarePackage.xsd

Owen Eddins, 05/24/2002 02:15 PM

 
1
<?xml version="1.0"?>
2
<xs:schema targetNamespace="eml:softwarePackage-2.0.0beta8" xmlns="eml:softwarePackage-2.0.0beta8" xmlns:res="eml:resource-2.0.0beta8" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:doc="eml:documentation-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-softwarePackage.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: berkley $'
12
          '$Date: 2002/04/21 22:45:30 $'
13
      '$Revision: 1.6 $'
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 dependency at either
47
          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
        <doc:lineage>
60
           The Action Element was introduced in 2.0.0 beta 9.          
61
		</doc:lineage>
62
      </xs:appinfo>
63
    </xs:annotation>
64
    <xs:restriction base="xs:string">
65
      <xs:enumeration value="install"/>
66
      <xs:enumeration value="assert"/>
67
    </xs:restriction>
68
  </xs:simpleType>
69
  <xs:element name="dependency">
70
    <xs:annotation>
71
      <xs:appinfo>
72
        <doc:tooltip>
73
			Dependency
74
		</doc:tooltip>
75
        <doc:summary>
76
        Dependency describes the software package(s) that the software package 
77
        is dependent upon.	
78
		</doc:summary>
79
        <doc:description>
80
			The dependency element is recursive.  It is a sub-element of the 
81
			SoftwarePackage Element but it also has as a sub-element its 
82
			parent element Software Package.  Dependecy has been
83
			made optional because to make it mandatory does not allow 
84
			the recursion to end.
85
									
86
			Dependency has also been made a sub-element of 
87
			implementation because there can be both implementation 
88
			and package level dependencies within a package.										</doc:description>
89
        <doc:example/>
90
        <doc:lineage>
91
		  The implementation Element was introduced in 2.0.0 beta 9.          
92
		</doc:lineage>
93
      </xs:appinfo>
94
    </xs:annotation>
95
    <xs:complexType>
96
      <xs:sequence>
97
        <xs:element name="action" type="Action"/>
98
        <xs:element ref="softwarePackage"/>
99
      </xs:sequence>
100
    </xs:complexType>
101
  </xs:element>
102
  <xs:element name="softwarePackage" type="SoftwarePackage">
103
    <xs:annotation>
104
      <xs:appinfo>
105
        <doc:tooltip>
106
          	Software Package
107
        </doc:tooltip>
108
        <doc:summary>
109
			Defines a software distribution and all of its dependent software.
110
        </doc:summary>
111
        <doc:description>
112
          	The 'softwarePackage' element contains general information about a 
113
          	software resource that is being documented.  This field is
114
          	intended to give information for software tools that are needed 
115
          	to interpret a dataset, software that was written to process a
116
         	resource, or software as a resource in itself.
117
          
118
         	It is based on eml-resource and Open Software Description (OSD) 
119
            a W3C submission.
120
         				 
121
         	There can be multiple implementations within a software package 
122
         	because a physical software package can run on multiple hardware 
123
         	and/or operating systems.  See implementation element documentation 
124
         	for a more thorough explanation.	
125
        </doc:description>
126
        <doc:example>
127
         	 Please see the examples for each subelement of the 
128
         	 'softwarePackage' type.
129
        </doc:example>
130
        <doc:lineage>
131
			The softwarePackage Element was introduced in 2.0.0 beta 9.  It replaces 
132
			the software element.  The 'software' element was introduced into EML 2.0, 
133
			however it was derived from the eml-software module in EML 1.4.
134
      </doc:lineage>
135
      </xs:appinfo>
136
    </xs:annotation>
137
  </xs:element>
138
  <xs:complexType name="SoftwarePackage">
139
    <xs:complexContent>
140
      <xs:extension base="res:ResourceBase">
141
        <xs:sequence>
142
          <xs:element name="implementation" maxOccurs="unbounded">
143
            <xs:annotation>
144
              <xs:appinfo>
145
                <doc:tooltip>
146
					Implementation
147
				</doc:tooltip>
148
                <doc:summary>
149
					Describes the hardware and/or operating system requirementsfor one 
150
					implementation of a package.
151
				</doc:summary>
152
                <doc:description>
153
					Implementation describes the hardware, operating system
154
					resources a package runs on.  Note, a package can have multiple
155
					implementations.  So for example, a package may be written in
156
					java and the package may run on numerous hardware and/or 
157
					operating systems like Pentium/Linux, Pentium/NT and so on...
158
				    Hardware and Software descriptions that have different
159
			        requirements can be placed here.
160
				</doc:description>
161
                <doc:example>
162
         			Please see the examples for each subelement of the 
163
         			'implementation' type.
164
        		</doc:example>
165
                <doc:lineage>
166
					The implementation Element was introduced in 2.0.0 beta 9.          
167
			  </doc:lineage>
168
              </xs:appinfo>
169
            </xs:annotation>
170
            <xs:complexType>
171
              <xs:sequence>
172
                <xs:element name="distribution" type="xs:string" maxOccurs="unbounded">
173
                  <xs:annotation>
174
                    <xs:appinfo>
175
                      <doc:tooltip>
176
						Distribution
177
					  </doc:tooltip>
178
                      <doc:summary>
179
						 Currently under construction in resource module. 												</doc:summary>
180
                      <doc:description/>
181
							work in progress
182
						<doc:example>
183
							filename.jar										
184
					   </doc:example>
185
                    </xs:appinfo>
186
                  </xs:annotation>
187
                </xs:element>
188
                <xs:element name="size" type="xs:string" minOccurs="0">
189
                  <xs:annotation>
190
                    <xs:appinfo>
191
                      <doc:tooltip>
192
						 Size
193
					  </doc:tooltip>
194
                      <doc:summary>
195
						Physical size of an implemetation in Kilo, Mega .... bytes.									          </doc:summary>
196
                      <doc:description/>
197
                      <doc:example>
198
						 100 Megabytes
199
					  </doc:example>
200
                    </xs:appinfo>
201
                  </xs:annotation>
202
                </xs:element>
203
                <xs:element name="language" minOccurs="0" maxOccurs="unbounded">
204
                  <xs:annotation>
205
                    <xs:appinfo>
206
                      <doc:tooltip>
207
						 International Language
208
					  </doc:tooltip>
209
                      <doc:summary>
210
						 The International Language of the software implementation 								              </doc:summary>
211
                      <doc:description/>
212
                      <doc:example/>
213
                    </xs:appinfo>
214
                  </xs:annotation>
215
                  <xs:complexType>
216
                    <xs:sequence>
217
                      <xs:element name="LanguageValue" type="xs:string">
218
                        <xs:annotation>
219
                          <xs:appinfo>
220
                            <doc:tooltip>
221
								Language Value
222
							</doc:tooltip>
223
                            <doc:summary>
224
							  The actual value for the language or code												            </doc:summary>
225
                            <doc:description>
226
								The value could be just a text string like english or french or it 
227
								could be an International Language code like ISO 639-2.
228
							</doc:description>
229
                            <doc:example>'english' or 'en'	</doc:example>
230
                          </xs:appinfo>
231
                        </xs:annotation>
232
                      </xs:element>
233
                      <xs:element name="LanguageCodeStandard" type="xs:string" minOccurs="0">
234
                        <xs:annotation>
235
                          <xs:appinfo>
236
                            <doc:tooltip>
237
								Language Code Standard
238
							</doc:tooltip>
239
                            <doc:summary>
240
								The International Language Code being used											            </doc:summary>
241
                            <doc:description>
242
								See www.loc.gov/standards/iso639-2/													            </doc:description>
243
                            <doc:example>'que' for Quechua, 'eng' for English and so on...												</doc:example>
244
                          </xs:appinfo>
245
                        </xs:annotation>
246
                      </xs:element>
247
                    </xs:sequence>
248
                  </xs:complexType>
249
                </xs:element>
250
                <xs:element name="operatingSystem" type="xs:string" minOccurs="0" maxOccurs="unbounded">
251
                  <xs:annotation>
252
                    <xs:appinfo>
253
                      <doc:tooltip>
254
						Operating System																					      </doc:tooltip>
255
                      <doc:summary>
256
						 Operating System(s) an implementation runs on 												  </doc:summary>
257
                      <doc:description>
258
						 see summary																				                  </doc:description>
259
                      <doc:example>
260
						  Windows 95, Window NT, Windows XP, Sun Solaris 2.8											 </doc:example>
261
                    </xs:appinfo>
262
                  </xs:annotation>
263
                </xs:element>
264
                <xs:element name="machineProcessor" type="xs:string" minOccurs="0" maxOccurs="unbounded">
265
                  <xs:annotation>
266
                    <xs:appinfo>
267
                      <doc:tooltip>
268
						 Machine Processor																					  </doc:tooltip>
269
                      <doc:summary>
270
						  The Machine Processor required for implementation 									              </doc:summary>
271
                      <doc:description>
272
							see summary																	                  </doc:description>
273
                      <doc:example>
274
							Pentium II, Intel 486, SUN Sparc					  </doc:example>
275
                    </xs:appinfo>
276
                  </xs:annotation>
277
                </xs:element>
278
                <xs:element name="virtualMachine" type="xs:string" minOccurs="0">
279
                  <xs:annotation>
280
                    <xs:appinfo>
281
                      <doc:tooltip>
282
                         Virtual Machine																					          </doc:tooltip>
283
                      <doc:summary>
284
                         Virtual Machine implementation requires 														  </doc:summary>
285
                      <doc:description>
286
                         see summary																				                  </doc:description>
287
                      <doc:example>
288
                         Java Virtual Machne	1.2																		    </doc:example>
289
                    </xs:appinfo>
290
                  </xs:annotation>
291
                </xs:element>
292
                <xs:element name="diskUsage" type="xs:string" minOccurs="0">
293
                  <xs:annotation>
294
                    <xs:appinfo>
295
                      <doc:tooltip>
296
                         Disk Usage																						          </doc:tooltip>
297
                      <doc:summary>
298
                          The minimum amount of Disk Space required to install an 
299
                          lmplementation in Kilo, Mega bytes etc...					
300
					  </doc:summary>
301
                      <doc:description>
302
                          see summary																				              </doc:description>
303
                      <doc:example>
304
                         220 Megabytes		
305
                    </doc:example>
306
                    </xs:appinfo>
307
                  </xs:annotation>
308
                </xs:element>
309
                <xs:element name="runtimeMemoryUsage" type="xs:string" minOccurs="0">
310
                  <xs:annotation>
311
                    <xs:appinfo>
312
                      <doc:tooltip>
313
                         Runtime Memory Usage									   
314
                      </doc:tooltip>
315
                      <doc:summary>
316
                         The minimum amount of memory required to run an 
317
                         lmplementation in Kilo, Mega b ytes etc...					
318
                     </doc:summary>
319
                      <doc:description> 
320
                         see summary										 										                  </doc:description>
321
                      <doc:example>
322
                         32 Megabytes		
323
                     </doc:example>
324
                    </xs:appinfo>
325
                  </xs:annotation>
326
                </xs:element>
327
                <xs:element name="programmingLanguage" type="xs:string" minOccurs="0" maxOccurs="unbounded">
328
                  <xs:annotation>
329
                    <xs:appinfo>
330
                      <doc:tooltip>
331
                        Programming Language					 														 </doc:tooltip>
332
                      <doc:summary>
333
	                     The Computer Programming Language the Software Package 
334
	                     was programmed in.				
335
					  </doc:summary>
336
                      <doc:description>
337
						 see summary																	                 </doc:description>
338
                      <doc:example>
339
					     C++, Java, C, C#, Perl, Cobol, Fortran, Lisp, Visual Basic, VBA, 
340
						 Bourne Shell Script etc....	
341
					 </doc:example>
342
                    </xs:appinfo>
343
                  </xs:annotation>
344
                </xs:element>
345
                <xs:element name="checksum" type="xs:string" minOccurs="0">
346
                  <xs:annotation>
347
                    <xs:appinfo>
348
                      <doc:tooltip>
349
                         Checksum																						              </doc:tooltip>
350
                      <doc:summary>
351
                         The generated checksum value of a software package 
352
                         that is a self-contained module.				
353
					  </doc:summary>
354
                      <doc:description>
355
	                    see summary																				                  </doc:description>
356
                      <doc:example>
357
							$sum software.jar
358
							27021 22660	
359
					  </doc:example>
360
                    </xs:appinfo>
361
                  </xs:annotation>
362
                </xs:element>
363
                <xs:element ref="dependency" minOccurs="0" maxOccurs="unbounded"/>
364
              </xs:sequence>
365
            </xs:complexType>
366
          </xs:element>
367
          <xs:element ref="dependency" minOccurs="0" maxOccurs="unbounded">
368
            <xs:annotation>
369
              <xs:appinfo>
370
                <doc:tooltip>
371
	              Dependency
372
                </doc:tooltip>
373
                <doc:summary>
374
									Dependency describes the software packages that the software 
375
									package is dependent upon.	
376
				</doc:summary>
377
                <doc:description>
378
					The dependency element is recursive.  It is a sub-element of the 
379
					SoftwarePackage Element but it also has as a sub-element its parent 
380
					element Software Package.  Dependecy has been made optional because 
381
					to make it mandatory does not allow the recursion to end.
382
									
383
					Dependency has also been made a sub-element of implementation because 
384
					there can be both implementation and package level dependencies within a 
385
					package.												
386
				</doc:description>
387
                <doc:example/>
388
                <doc:lineage>
389
				  The implementation Element was introduced in 2.0.0 beta 9.          
390
				</doc:lineage>
391
              </xs:appinfo>
392
            </xs:annotation>
393
          </xs:element>
394
          <xs:choice minOccurs="0" maxOccurs="unbounded">
395
            <xs:element name="licenseURL" type="xs:string"/>
396
            <xs:element name="license" type="xs:string"/>
397
          </xs:choice>
398
          <xs:element name="version" type="xs:string">
399
            <xs:annotation>
400
              <xs:appinfo>
401
                <doc:tooltip/>
402
                <doc:summary>
403
                   Version of the software being packaged.
404
                </doc:summary>
405
                <doc:description>
406
                   String value corresponding to the major, minor, custom, and 
407
                   build version.
408
				</doc:description>
409
                <doc:example/>
410
                <doc:lineage>
411
					The Version element was introduced in 2.0.0 beta 9.          
412
				</doc:lineage>
413
              </xs:appinfo>
414
            </xs:annotation>
415
          </xs:element>
416
        </xs:sequence>
417
      </xs:extension>
418
    </xs:complexContent>
419
  </xs:complexType>
420
</xs:schema>
(4-4/5)