The eml-software module contains general information that
              describes software resources.  This module is intended to fully
              document software that is needed in order to view a resource
              (such as a dataset) or to process a dataset.  The software
              module is also imported into the eml-methods module in order to
              document what software was used to process or perform quality
              control procedures on a dataset.
            
            
              The eml-software module, like other modules, may be
              "referenced" via the <references> tag.  This
              allows a software resource to be described once, and then used
              as a reference in other locations within the EML document via
              its ID.
            
          
        
| Element Definitions: | 
| software  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | The software element contains general information
        about a software resource that is being documented. This field is
        intended to give information for software tools that are needed to
        interpret a dataset, software that was written to process a resource,
        or software as a resource in itself. It is based on eml-resource and
        Open Software Description (OSD) a W3C submission. There can be multiple
        implementations within a software package because a physical software
        package can run on multiple hardware and/or operating systems. See
        implementation element documentation for a more thorough
        explanation. | 
| implementation  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | Implementation describes the hardware, operating
              system resources a package runs on. Note, a package can have
              multiple implementations. So for example, a package may be
              written in java and the package may run on numerous hardware
              and/or operating systems like Pentium/Linux, Pentium/NT and so
              on. Hardware and Software descriptions that have different
              requirements can be placed here.Example(s):
 Please see the examples for each sub-element of the
              implementation type.
 
 | 
| distribution  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | This field provides information on how the
                   resource is distributed online and offline. Connections to
                   online systems can be described as URLs and as a list of
                   relevant connection parameters. | 
| size  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | The physical size of an implementation on
                    disk.Example(s):
 100 Megabytes
 
 | 
| language  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | The International Language of the software
                    implementation. | 
| LanguageValue  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | The actual value for the language or
                          a code for the language.Example(s):
 english
 eng
 
 | 
| LanguageCodeStandard  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | The International Language Code being
                          used in the field languageValue. See
                          http://www.loc.gov/standards/iso639-2/Example(s):
 ISO639-2
 
 | 
| operatingSystem  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | The operating system(s) an implementation runs
                    on.Example(s):
 Linux
 Windows 95
 Windows NT4
 Windows XP
 Sun Solaris 2.8
 Mac OS X
 
 | 
| machineProcessor  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | The Machine Processor required for
                    executing the implementation.Example(s):
 Pentium II
 Intel 486
 SUN Sparc
 Motorola
 
 | 
| virtualMachine  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | The virtual machine that the implementation
                    requires.Example(s):
 Java Virtual Machine 1.2
 
 | 
| diskUsage  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | The minimum amount of Disk Space required to
                    install this implementation.Example(s):
 220 Megabytes
 15 MB
 100 kB
 
 | 
| runtimeMemoryUsage  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | The minimum amount of memory required to run
                    an implementation.Example(s):
 32 Megabytes
 128 MB
 
 | 
| programmingLanguage  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | The computer programming language the software
                    package was programmed in.Example(s):
 C++
 Java
 C
 C#
 Perl
 Cobol
 Fortran
 Lisp
 Visual Basic
 VBA
 Bourne Shell Script
 
 | 
| checksum  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | The generated checksum value of a software
                    package that is a self-contained module.Example(s):
 $sum software.jar 27021 22660
 
 | 
| licenseURL  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | URL where the license can be found | 
| license  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | Text of the license | 
| version  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | String value corresponding to the major, minor,
              custom, and build version. | 
| project  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | This field is a description of the project with
           which this software product is related.  Please see the eml-project
           module for more information. | 
| dependency  | This element has no default value. | 
| Content of this field: | Description of this field: | 
| 
| Elements: | Use: | How many: |  
| A sequence of ( |  
| action | required |  |  
| software | required |  |  
| ) |  | The dependency element is recursive. It is a
        sub-element of the software Element but it also has as a sub-element
        its parent element Software Package. Dependency has been made optional
        because to make it mandatory does not allow the recursion to end.
        Dependency has also been made a sub-element of implementation because
        there can be both implementation and package level dependencies within
        a package. | 
| action  | This element has no default value. | 
| Content of this field: | Description of this field: | 
|  | This element and its enumerations of assert and
           install can be used as commands by a software application to carry
           out these actions on software package dependencies. This is a change
           from how we have used all previous elements within eml. Up until now
           all other elements have been simply metadata designed to describe
           data, literature citations, etc... with the Action element we can
           use this module as a command to carry out the action.
            | 
| Attribute Definitions: | 
| id | 
| 
Type: res:IDType
 
Use: optional
 | 
| system | 
| 
Type: res:SystemType
 
Use: optional
 | 
| scope | 
| 
Type: res:ScopeType
 
Use: optional
 
Default value: document
 | 
| Complex Type Definitions: | 
| SoftwareType  |  | 
| Content of this field: | Description of this field: | 
|  | 
| Simple Type Definitions: | 
| 
Action | 
| 
Derived from: xs:string (by xs:restriction)  
Allowed values: 
 | This element and its enumerations of assert and
        install can be used as commands by a software application to carry out
        these actions on software package dependencies. This is a change from
        how we have used all previous elements within eml. Up until now all
        other elements have been simply metadata designed to describe data,
        literature citations, etc... with the Action element we can use this
        module as a command to carry out the action. | 
| Group Definitions: |