]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/XMLSchema/FrameworkDataElements.xsd
Added More Comments and started doing data type checking so that if a ModuleName...
[mirror_edk2.git] / Tools / XMLSchema / FrameworkDataElements.xsd
index 8579d790b6a5990bb7fe23aeb045d4f130824744..67fd6a893d191d14dc34dd6b6729b9ec605a0284 100644 (file)
         <xs:complexType>\r
             <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="PackageName"/>\r
+                <!-- remove Arch element, start using the Arch attribute for the PackageName element above. -->\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
                     <xs:complexType>\r
                         <xs:sequence minOccurs="1">\r
     <xs:element name="InstalledDate" type="DateType"/>\r
     <xs:element name="Libraries">\r
         <xs:annotation>\r
-            <xs:documentation xml:lang="en">Different Instances of Libraries</xs:documentation>\r
+            <xs:documentation xml:lang="en">Different (Module)  Instances of Libraries used ONLY in FPD Files.</xs:documentation>\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1">\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Library">\r
                     <xs:complexType>\r
                         <xs:simpleContent>\r
-                            <xs:extension base="BaseNameConvention">\r
+                            <xs:extension base="xs:NCName">\r
                                 <xs:attributeGroup ref="LibraryAttributes"/>\r
                             </xs:extension>\r
                         </xs:simpleContent>\r
                     </xs:complexType>\r
                 </xs:element>\r
+                <!-- remove Arch Element HERE, start using the Arch attribute in Library element above. -->\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
                     <xs:complexType>\r
                         <xs:choice minOccurs="1" maxOccurs="unbounded">\r
                         <xs:attribute name="ArchType" type="SupportedArchitectures"/>\r
                     </xs:complexType>\r
                 </xs:element>\r
+                <!-- /remove Arch Element -->\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="LibraryClass">\r
         <xs:annotation>\r
-            <xs:documentation xml:lang="en">Used in MSA files.  This defines what class of library is being supported = produced  (library module) or consumed by a  module.</xs:documentation>\r
+            <xs:documentation xml:lang="en">Used in MSA files. This defines what class of library is being supported = produced (library module) or consumed by a module.</xs:documentation>\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:simpleContent>\r
                 <xs:extension base="BaseNameConvention">\r
                     <xs:attribute name="Usage" type="LibraryUsage" use="required"/>\r
-                    <xs:attribute name="RecommendedInstance" type="BaseNameConvention" use="optional"/>\r
+                    <xs:attribute name="RecommendedInstance" type="xs:NCName" use="optional"/>\r
                     <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>\r
                 </xs:extension>\r
             </xs:simpleContent>\r
             <xs:sequence minOccurs="0">\r
                 <xs:element minOccurs="1" maxOccurs="1" name="LibraryClass">\r
                     <xs:annotation>\r
-                        <xs:documentation xml:lang="en">Used in MSA and SPD files.  This defines what class of library is being supported = produced  (library module) or consumed by a  module.</xs:documentation>\r
+                        <xs:documentation xml:lang="en">Used in MSA and SPD files. This defines what class of library is being supported = produced (library module) or consumed by a module.</xs:documentation>\r
                     </xs:annotation>\r
                     <xs:complexType>\r
                         <xs:simpleContent>\r
                             <xs:extension base="BaseNameConvention">\r
-                                <xs:attribute name="RecommendedInstance" type="BaseNameConvention" use="optional"/>\r
+                                <xs:attribute name="RecommendedInstance" type="xs:NCName" use="optional"/>\r
                                 <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>\r
                             </xs:extension>\r
                         </xs:simpleContent>\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:simpleContent>\r
-                <xs:extension base="BaseNameConvention">\r
+                <xs:extension base="xs:NCName">\r
                     <xs:attributeGroup ref="ModuleNameAttributes"/>\r
                 </xs:extension>\r
             </xs:simpleContent>\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:sequence>\r
-                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename">\r
-                     <xs:complexType>\r
-                         <xs:simpleContent>\r
-                             <xs:extension base="xs:anyURI">\r
-                                 <xs:attributeGroup ref="ModuleNameSaAttributes"/>\r
-                             </xs:extension>\r
-                         </xs:simpleContent>\r
+                <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename">\r
+                    <xs:complexType>\r
+                        <xs:simpleContent>\r
+                            <xs:extension base="xs:anyURI">\r
+                                <xs:attributeGroup ref="ModuleNameSaAttributes"/>\r
+                            </xs:extension>\r
+                        </xs:simpleContent>\r
                     </xs:complexType>\r
                 </xs:element>\r
             </xs:sequence>\r
                         <xs:sequence>\r
                             <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
                             <xs:element minOccurs="1" maxOccurs="1" name="Token" type="HexDoubleWordDataType"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
                             <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
                             <xs:element default="false" minOccurs="0" maxOccurs="1" name="HiiEnable" type="xs:boolean"/>\r
                             <xs:element default="false" minOccurs="0" maxOccurs="1" name="VpdEnable" type="xs:boolean"/>\r
     </xs:element>\r
     <xs:element name="PackageList">\r
         <xs:annotation>\r
-            <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track all packages installed in a workspace.</xs:documentation>\r
+            <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track all packages installed in a workspace. (Database)</xs:documentation>\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:sequence maxOccurs="unbounded">\r
                     <xs:complexType>\r
                         <xs:sequence maxOccurs="unbounded">\r
                             <xs:element minOccurs="0" maxOccurs="1" ref="PackageName"/>\r
-                            <xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>\r
-                            <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>\r
+                            <xs:choice minOccurs="1">\r
+                                <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
+                                <!-- DO NOT USE Guid should be removed, use PackageGuid instead -->\r
+                                <xs:element minOccurs="0" maxOccurs="1" name="PackageGuid" type="GuidType"/>\r
+                            </xs:choice>\r
+                            <xs:choice minOccurs="1">\r
+                                <xs:element minOccurs="0" maxOccurs="1" ref="Version"/>\r
+                                <xs:element minOccurs="0" maxOccurs="1" name="PackageVersion" type="VersionDataType"/>\r
+                            </xs:choice>\r
                             <xs:element minOccurs="1" maxOccurs="1" ref="Path"/>\r
                             <xs:element minOccurs="1" maxOccurs="1" ref="InstalledDate"/>\r
                         </xs:sequence>\r
     </xs:element>\r
     <xs:element name="PackageName">\r
         <xs:annotation>\r
-            <xs:documentation xml:lang="en">This tag is used in the Package Surface Area Description File to track package dependencies for a module</xs:documentation>\r
+            <xs:documentation xml:lang="en">This tag is used in the Package Surface Area Description File to track package dependencies for a module (SPD) </xs:documentation>\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:simpleContent>\r
                                     </xs:simpleContent>\r
                                 </xs:complexType>\r
                             </xs:element>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
                             <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes">\r
                                 <xs:annotation>\r
                                     <xs:documentation xml:lang="en">This specifies the size of the Pcd Datum. It is either 8, 16, 32 or 64 bits for values, 1 bit for BOOLEAN and variable length for elements defined as VOID*</xs:documentation>\r
                                     </xs:simpleContent>\r
                                 </xs:complexType>\r
                             </xs:element>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
                             <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes">\r
                                 <xs:annotation>\r
                                     <xs:documentation xml:lang="en">This specifies the size of the Pcd Datum. It is either 8, 16, 32 or 64 bits for values, 1 bit for BOOLEAN and variable length for elements defined as VOID*</xs:documentation>\r
                         <xs:sequence>\r
                             <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
                             <xs:element minOccurs="1" maxOccurs="1" name="Token" type="Token"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
                             <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
                             <xs:element default="false" minOccurs="0" maxOccurs="1" name="HiiEnable" type="xs:boolean"/>\r
                             <xs:element default="false" minOccurs="0" maxOccurs="1" name="VpdEnable" type="xs:boolean"/>\r