<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT gpt_package_metadata (Aging_Version, 
                                Description, 
                                Functional_Group, 
                                Version_Stability, 
                                VersionLabel, 
                                PackagingTool, 
                                (data_pkg       | 
                                 dev_pkg        | 
                                 doc_pkg        | 
                                 pgm_pkg        | 
                                 pgm_static_pkg | 
                                 rtl_pkg        | 
                                 src_pkg        | 
                                 virtual_pkg))>
<!ATTLIST gpt_package_metadata
	Name CDATA #REQUIRED
	Format_Version CDATA #REQUIRED
>
<!ELEMENT Aging_Version EMPTY>
<!ATTLIST Aging_Version
	Major CDATA #REQUIRED
	Minor CDATA #REQUIRED
	Age CDATA #REQUIRED
>
<!ELEMENT Description (#PCDATA)>
<!ELEMENT Functional_Group (#PCDATA)>
<!ELEMENT Version_Stability EMPTY>
<!ATTLIST Version_Stability
	Release (Experimental | 
                 Alpha        | 
                 Alpha1       |
                 Alpha2       |
                 Beta         |
                 Beta1        |
                 Beta2        | 
                 Production) #REQUIRED
>
<!ELEMENT VersionLabel (#PCDATA)>
<!ELEMENT ComponentInformation (VersionLabel, Description)>
<!ATTLIST ComponentInformation
	ComponentName CDATA #REQUIRED
>
<!ELEMENT PackagingTool EMPTY>
<!ATTLIST PackagingTool
	ToolName CDATA #REQUIRED
	ToolVersion CDATA #REQUIRED
>
<!ELEMENT src_pkg (Version_Label,
                   With_Flavors, 
                   Source_Dependencies*, 
                   Source_Setup_Dependency*, 
                   Build_Instructions, 
                   Environment, 
                   Post_Install_Message, 
                   Post_Install_Program, 
                   Setup)>
<!ELEMENT pgm_pkg (Version_Label,
                   Flavor, 
                   Binary_Dependencies*, 
                   Setup_Dependency*, 
                   Post_Install_Message*, 
                   Post_Install_Program*, 
                   Setup*)>
<!ELEMENT pgm_static_pkg (Version_Label,
                          Flavor, 
                          Binary_Dependencies*, 
                          Setup_Dependency*, 
                          Post_Install_Message*, 
                          Post_Install_Program*, 
                          Setup*)>
<!ELEMENT dev_pkg (Version_Label,
                   Flavor, 
                   Binary_Dependencies*, 
                   Environment?)>
<!ELEMENT rtl_pkg (Version_Label,
                   Flavor, 
                   Binary_Dependencies*, 
                   Setup_Dependency*)>
<!ELEMENT data_pkg (Version_Label,
                    Binary_Dependencies*, 
                    Setup_Dependency*)>
<!ELEMENT doc_pkg (Version_Label,
                   Binary_Dependencies*, 
                   Setup_Dependency*)>
<!ELEMENT Flavor (#PCDATA)>
<!ATTLIST Flavor
	ColocateLibraries (yes | no) #REQUIRED
>
<!ELEMENT Version (Simple_Version*, 
                   Version_Range*)>
<!ELEMENT Simple_Version EMPTY>
<!ATTLIST Simple_Version
	Major CDATA #REQUIRED
>
<!ELEMENT Version_Range EMPTY>
<!ATTLIST Version_Range
	Lower_Major CDATA #REQUIRED
	Lower_Minor CDATA #REQUIRED
	Upper_Major CDATA #REQUIRED
	Upper_Minor CDATA #REQUIRED
>
<!ELEMENT Version_Label (#PCDATA)>
<!ELEMENT With_Flavors EMPTY>
<!ATTLIST With_Flavors
	build (yes | no) #REQUIRED
	ColocateLibraries (yes | no) #REQUIRED
>
<!ELEMENT Dependency (Version)>
<!ATTLIST Dependency
	Name CDATA #REQUIRED
	Package (auto | 
                 data | 
                 dev  | 
                 doc  | 
                 pgm  | 
                 rtl) "auto"
>
<!ELEMENT Source_Dependencies (Dependency+)>
<!ATTLIST Source_Dependencies
	Type (compile      | 
              pgm_link     | 
              lib_link     | 
              data_runtime | 
              doc_runtime  | 
              pgm_runtime  | 
              lib_runtime) #REQUIRED
>
<!ELEMENT Binary_Dependencies (Dependency+)>
<!ATTLIST Binary_Dependencies
	Type (Compile      | 
              Build_Link   | 
              Regeneration | 
              Runtime_Link | 
              Runtime) #REQUIRED
>
<!ELEMENT Setup_Dependency (Version)>
<!ATTLIST Setup_Dependency
	Name CDATA #REQUIRED
>
<!ELEMENT Source_Setup_Dependency (Setup_Dependency)>
<!ATTLIST Source_Setup_Dependency
	PkgType (data | 
                 doc  | 
                 pgm  | 
                 rtl) #REQUIRED
>
<!ELEMENT Environment (Cflags?, 
                             PackageLibs?, 
                             ExternalLibs?, 
                             ExternalIncludes?
                             Variable?
                             SourcedFile?
                      )>
<!ELEMENT Cflags (#PCDATA)>
<!ELEMENT ExternalIncludes (#PCDATA)>
<!ELEMENT PackageLibs (#PCDATA)>
<!ELEMENT ExternalLibs (#PCDATA)>
<!ELEMENT Variable EMPTY>
<!ATTLIST Variable Name CDATA #REQUIRED Value CDATA #REQUIRED>
<!ELEMENT SourcedFile (#PCDATA)>
<!ATTLIST SourcedFile Shell (sh | csh) #REQUIRED>

<!ELEMENT Build_Instructions (Build_Step*, flavor_choice*)>
<!ATTLIST Build_Instructions SrcDir CDATA>

<!ELEMENT Build_Step (#PCDATA)>
<!ATTLIST Build_Step
	Macro_Args CDATA #REQUIRED
>
<!ELEMENT Setup (Aging_Version)>
<!ATTLIST Setup
	Name CDATA #REQUIRED
>
<!ELEMENT Post_Install_Message (#PCDATA)>
<!ELEMENT Post_Install_Program (#PCDATA)>
<!ELEMENT File (#PCDATA)>
<!ELEMENT Filelist (File+)>
<!ATTLIST Filelist
	Dir CDATA #REQUIRED
	Flavored (programs  | 
                  libraries | 
                  headers   | 
                  no) #REQUIRED
	Package_Type (data | 
                      doc  | 
                      pgm  | 
                      rtl  | 
                      dev) #REQUIRED
>
<!ELEMENT flavor_choice (config+)>
<!ELEMENT config EMPTY>
<!ATTLIST config
	switch NMTOKEN #REQUIRED
	label NMTOKEN #REQUIRED
	nolabel NMTOKEN #REQUIRED
	invalid NMTOKEN #REQUIRED
>
