<!-- @BRIEF : root element of a description of a software package -->
<!-- It's the root element of a description of a software package, in Perl
Package Distribution (PPD) format which is an XML application. -->
<!-- HISTORY : v0.1 - Initial release -->
<!-- SEE ALSO : OSD Specification http://www.microsoft.com/standards/osd/ -->
<!ELEMENT SOFTPKG (ABSTRACT | AUTHOR | IMPLEMENTATION | LICENSE | TITLE)*>
<!-- Name of the package (e.g. ``Foobar''). -->
<!ATTLIST SOFTPKG NAME CDATA #REQUIRED>
<!-- Version number of the package, in comma-delimited format (e.g. ``1,0,0,0''). -->
<!ATTLIST SOFTPKG VERSION CDATA #IMPLIED>
<!-- @BRIEF : state the title of the Perl Package -->
<!-- Used to state the title of the Perl Package. Only one instance should be present. -->
<!ELEMENT TITLE (#PCDATA)>
<!-- Used to provide a short description outlining the nature and purpose of
the Perl Package. Only one instance should be present. -->
<!ELEMENT ABSTRACT (#PCDATA)>
<!-- Used to provide information about the author(s) of the Perl Package.
Multiple instances are valid. -->
<!ELEMENT AUTHOR (#PCDATA)>
<!-- Indicating the location of the appropriate license agreement or copyright
notice for the Perl Package. Only one instance should be present. -->
<!ELEMENT LICENSE EMPTY>
<!-- Required attribute. A reference to the location of the license agreement
or copyright notice for this package. -->
<!ATTLIST LICENSE HREF CDATA #REQUIRED>
<!-- @BRIEF : describe a particular implementation of the Perl Package -->
<!-- Used to describe a particular implementation of the Perl Package. Multiple
instances are valid, and should be used to describe different implementations/ports
for different operating systems or architectures. -->
<!ELEMENT IMPLEMENTATION (CODEBASE | DEPENDENCY | LANGUAGE | OS |
OSVERSION | PERLCORE | PROCESSOR | INSTALL |
UNINSTALL )* >
<!-- Indicating a location where an archive of the Perl Package can be retrieved.
Multiple instances are valid, and can be used to indicate multiple possible
locations where the same version of the Perl Package can be retrieved. -->
<!ELEMENT CODEBASE EMPTY>
<!-- ??? -->
<!ATTLIST CODEBASE FILENAME CDATA #IMPLIED>
<!-- A reference to the location of the Perl Package distribution. -->
<!ATTLIST CODEBASE HREF CDATA #REQUIRED>
<!-- Used to indicate a dependency this Perl Package has on another Perl Package.
Multiple instances are valid. -->
<!ELEMENT DEPENDENCY EMPTY>
<!-- Version number of the dependency, in comma-delimited format (e.g. ``1,0,0,0''). -->
<!ATTLIST DEPENDENCY VERSION CDATA #IMPLIED>
<!-- Name of the package that this implementation is dependant upon. -->
<!ATTLIST DEPENDENCY NAME CDATA #REQUIRED>
<!-- Used to specify the language used within the given implementation of the
Perl Package. Only one instance should be present. -->
<!ELEMENT LANGUAGE EMPTY>
<!ATTLIST LANGUAGE VALUE CDATA #REQUIRED>
<!-- @BRIEF : the operating system required for this implementation -->
<!-- Used to outline the operating system required for this implementation of
the Perl Package. Multiple instances are valid. Valid values can be taken
from the OSD Specification and it's OS element. -->
<!ELEMENT OS EMPTY>
<!-- The name of the operating system required for this implementation of the
Perl Package. This value should be obtained from Config.pm as 'osname'. -->
<!ATTLIST OS VALUE CDATA #REQUIRED>
<!-- @BRIEF : the required version of the operating system -->
<!-- Used to outline the required version of the operating system required for
this implementation of the Perl Package. Only one instance should be present. -->
<!ELEMENT OSVERSION EMPTY>
<!-- The version of the operating system required for installation of this
implementation of the package, in a comma-delimited format (e.g. ``3,1,0,0''). -->
<!ATTLIST OSVERSION VALUE CDATA #REQUIRED>
<!-- @BRIEF : the minimum version of the Perl core distribution -->
<!-- Used to specify the minimum version of the Perl core distribution that
this Perl Package is to be used with. Only one instance should be present. -->
<!ELEMENT PERLCORE EMPTY>
<!-- Version of the Perl core that is required for this implementation of the
Perl Package. -->
<!ATTLIST PERLCORE VERSION CDATA #REQUIRED>
<!-- Outlining the cpu required for this implementation of the Perl Package.
Only one instance should be present. -->
<!ELEMENT PROCESSOR EMPTY>
<!-- CPU required for the installation of this implementation of the Perl Package.
The following values are all valid according to the OSD Specification:
x86 alpha mips sparc 680x0 -->
<!ATTLIST PROCESSOR VALUE CDATA #REQUIRED>
<!-- @BRIEF : provide either a reference to an installation script -->
<!-- Used to provide either a reference to an installation script or a series
of commands which can be used to install the Perl Package once it has been
retrieved. If the EXEC attribute is not specified, the value is assumed to be
one or more commands, separated by `;;'. Each such command will be executed
by the Perl `system()'function. Only one instance should be present. -->
<!ELEMENT INSTALL (#PCDATA)>
<!-- Reference to an external script which should be retrieved and run as part of
the installation process. Both filenames and URLs should be considered valid. -->
<!ATTLIST INSTALL HREF CDATA #IMPLIED>
<!-- Name of interpreter/shell used to execute the installation script. If the
value of EXEC is `PPM_PERL', the copy of Perl that is executing PPM itself ($^X)
is used to execute the install script. -->
<!ATTLIST INSTALL EXEC CDATA #IMPLIED>
<!-- @BRIEF : provide either a reference to an uninstallation script -->
<!-- Used to provide either a reference to an uninstallation script or a raw
Perl script which can be used to uninstall the Perl Package at a later point.
Only one instance should be present. -->
<!ELEMENT UNINSTALL (#PCDATA)>
<!-- Reference to an external script which should be retrieved and run as part
of the removal process. Both filenames and URLs should be considered valid. -->
<!ATTLIST UNINSTALL HREF CDATA #IMPLIED>
<!-- Name of interpreter/shell used to execute the uninstallation script. If the
value of EXEC is `PPM_PERL', the copy of Perl that is executing PPM itself ($^X)
is used to execute the install script. -->
<!ATTLIST UNINSTALL EXEC CDATA #IMPLIED>