]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Added More Comments and started doing data type checking so that if a ModuleName...
authorlhauch <lhauch@6f19259b-4bc3-4df7-8a09-765794883524>
Sat, 3 Jun 2006 00:46:59 +0000 (00:46 +0000)
committerlhauch <lhauch@6f19259b-4bc3-4df7-8a09-765794883524>
Sat, 3 Jun 2006 00:46:59 +0000 (00:46 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@404 6f19259b-4bc3-4df7-8a09-765794883524

Tools/XMLSchema/FDPManifest.xsd
Tools/XMLSchema/FrameworkDataAttributes.xsd
Tools/XMLSchema/FrameworkDataElements.xsd

index f6b3715426680ddf86eb2d0f48cdb7cb2085d257..7730742b7fb2bef98a826e83f3c6d0ed3e9e5b17 100644 (file)
@@ -234,7 +234,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                 <xs:element 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
@@ -284,7 +284,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                     </xs:documentation></xs:annotation>\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
index 778d339e1550e8a52975042272096bff0059ea17..5cf392284703d4f19d718b59333b56d6e01f59c0 100644 (file)
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="BootModeName" type="BootModeNames" use="required"/>\r
         <xs:attribute name="Usage" type="BootModeUsage" use="required"/>\r
+        <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="ConvertAttributeString">\r
         <xs:attribute name="SourceString" type="xs:string" use="optional"/>\r
     <xs:attributeGroup name="DataHubAttributes">\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="Usage" type="DataHubUsage" use="optional"/>\r
+        <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="DirectoryAttributes">\r
         <xs:attribute name="Separator" type="ToothPick"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="EventAttributes">\r
+        <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="Usage" type="EventUsage" use="optional"/>\r
         <xs:attribute name="EventGroup" type="EventTypes" use="optional"/>\r
+        <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="ExternAttributes">\r
+        <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="Usage" type="ExternUsage" use="optional"/>\r
+        <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="FilenameAttributes">\r
         <xs:attribute name="Usage" type="FileNameUsage" use="optional"/>\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
-        <xs:attribute name="GuidValue" type="GuidType" use="optional"/>\r
         <xs:attribute name="Path" type="DirectoryNamingConvention" use="optional"/>\r
         <xs:attribute name="FileType" type="xs:string" use="optional"/>\r
         <xs:attribute name="ToolChain" type="ToolChains" use="optional"/>\r
+        <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="FormsetAttributes">\r
-        <xs:attribute name="Usage" type="FormSetUsage" use="optional"/>\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
+        <xs:attribute name="Usage" type="FormSetUsage" use="optional"/>\r
+        <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="GuidAttributes">\r
         <xs:attribute name="Usage" type="GuidUsage" use="optional"/>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="HobAttributes">\r
+        <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="Usage" type="HobUsage" use="optional"/>\r
         <xs:attribute name="HobType" type="HobTypes" use="required"/>\r
         <xs:attribute default="true" name="HobEnabled" type="xs:boolean" use="optional"/>\r
+        <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="IncludeAttributes">\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="Path" type="DirectoryNamingConvention" use="optional"/>\r
-        <xs:attribute name="Class" type="xs:normalizedString" use="optional"/>\r
+        <xs:attribute name="Class" type="BaseNameConvention" use="optional"/>\r
         <xs:attribute name="Version" type="VersionDataType" use="optional"/>\r
+        <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="ModuleType" type="ModuleTypeDef" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="LibraryAttributes">\r
+        <!-- LibraryAttributes is used for Libraries -> Library elements in FPD files -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
+        <!-- DO NOT USE remove Guid from use, Start using LibraryGuid instead -->\r
+        <xs:attribute name="LibraryGuid" type="GuidType" use="optional"/>\r
+        <xs:attribute name="Version" type="VersionDataType" use="optional"/>\r
+        <!-- DO NOT USE remove Version from use, Start using LibraryVersion instead -->\r
+        <xs:attribute name="ModuleVersion" type="VersionDataType" use="optional"/>\r
         <xs:attribute name="LibraryClass" type="BaseNameConvention" use="optional"/>\r
         <xs:attribute name="ClassGuid" type="GuidType" use="optional"/>\r
-        <xs:attribute name="Version" type="VersionDataType" use="optional"/>\r
         <xs:attribute name="Usage" type="LibraryUsage" use="optional"/>\r
         <xs:attribute name="Package" type="xs:string" use="optional"/>\r
+        <!-- DO NOT USE remove Package from use, Start using PackageName instead -->\r
+        <xs:attribute name="PackageName" type="BaseNameConvention" use="optional"/>\r
+        <xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>\r
+        <xs:attribute name="PackageGuid" type="GuidType" use="optional"/>\r
+        <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
+        <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="ModuleNameAttributes">\r
         <xs:attribute name="Guid" type="GuidType" use="required"/>\r
         <xs:attribute name="Version" type="VersionDataType" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="ModuleNameSaAttributes">\r
+        <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="ModuleName" type="xs:NCName" use="required"/>\r
-        <xs:attribute name="Guid" type="GuidType" use="required"/>\r
         <xs:attribute name="Version" type="VersionDataType" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="MsaAttributes">\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
         <xs:attribute name="FvBinding" type="xs:string" use="optional"/>\r
-        <xs:attribute name="ModuleName" type="C_Name" use="optional"/>\r
+        <xs:attribute name="ModuleName" type="xs:NCName" use="optional"/>\r
         <xs:attribute name="ModuleGuid" type="GuidType" use="optional"/>\r
-        <xs:attribute name="PackageName" type="C_Name" use="optional"/>\r
+        <xs:attribute name="PackageName" type="BaseNameConvention" use="optional"/>\r
         <xs:attribute name="PackageGuid" type="GuidType" use="optional"/>\r
         <xs:attribute name="BuildSequence" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
         <xs:attribute name="Platform" type="PlatformNamingConvention" use="optional"/>\r
         <xs:attribute name="ToolChain" type="ToolChains" use="optional"/>\r
         <xs:attribute name="BuildTarget" type="BuildTargets" use="optional"/>\r
+        <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="PackageAttributes">\r
+        <xs:attribute name="PackageGuid" type="GuidType" use="optional"/>\r
+        <xs:attribute name="PackageVersion" type="xs:string" use="optional"/>\r
         <xs:attribute name="Usage" type="PackageUsage" use="optional"/>\r
         <xs:attribute name="PackageType" type="PackageType" use="optional"/>\r
         <xs:attribute name="UpdatedDate" type="DateType" use="optional"/>\r
+        <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
     </xs:attributeGroup>\r
+    <!-- PackageNameAttributres are only used in the Package Dependencies section of an SPD file. -->\r
     <xs:attributeGroup name="PackageNameAttributes">\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
+        <!-- DO NOT USE remove Guid and start using PackageGuid instead -->\r
+        <xs:attribute name="PackageGuid" type="GuidType" use="optional"/>\r
         <xs:attribute name="Version" type="VersionDataType" use="optional"/>\r
+        <!-- DO NOT USE remove Version and start using PackageVersion instead -->\r
+        <xs:attribute name="PackageVersion" type="xs:string" use="optional"/>\r
+        <!-- PackageTypeDepencency is used to identify if a SOURCE or BINARY PackageType is required, in case PackageGuid and/or PackageVersion are not tracked. -->\r
+        <xs:attribute name="PackageTypeDependency" type="PackageType" use="optional"/>\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="PcdAttributes">\r
         </xs:annotation>\r
         <xs:attribute name="ItemType" type="PcdItemTypes" use="required"/>\r
         <xs:attribute name="PcdUsage" type="PcdUsage" use="optional"/>\r
+        <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="PlatformAttributes">\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
+        <!-- DO NOT USE remove Guid from use -->\r
         <xs:attribute name="Version" type="VersionDataType" use="optional"/>\r
         <xs:attribute name="AlternateName" type="FileNameConvention" use="optional"/>\r
-        <xs:attribute name="PlatformName" type="BaseNameConvention" use="optional"/>\r
+        <!-- DO NOT USE remove AlternateName from use -->\r
+        <xs:attribute name="PlatformName" type="PlatformNamingConvention" use="optional"/>\r
         <xs:attribute name="PlatformGuid" type="GuidType" use="optional"/>\r
         <xs:attribute name="PlatformVersion" type="xs:string" use="optional"/>\r
     </xs:attributeGroup>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="PpiNotifyAttributes">\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="ProtocolAttributes">\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="ProtocolNotifyAttributes">\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="Usage" type="ProtocolNotifyUsage" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="SectionAttributes">\r
         <xs:annotation>\r
         <xs:attribute name="SectionType" type="EfiSectionType" use="optional"/>\r
         <xs:attribute default="true" name="Compressible" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="BindingOrder" type="xs:int" use="optional"/>\r
+        <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="SectionsAttributes">\r
         <xs:annotation>\r
-            <xs:documentation xml:lang="en">Attributes for Sections, EncapsulationTag, EncapsulationType and OverrideID</xs:documentation>\r
+            <xs:documentation xml:lang="en">Attributes for Sections, EncapsulationTag, EncapsulationType and FeatureFlag</xs:documentation>\r
         </xs:annotation>\r
         <xs:attribute name="EncapsulationType" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="EncapsulationTag" type="xs:string" use="optional"/>\r
+        <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="SystemTableAttributes">\r
+        <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="Usage" type="SystemTableUsage" use="optional"/>\r
+        <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="UrlAttribute">\r
         <xs:attribute name="Url" type="xs:anyURI"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="VariableAttributes">\r
+        <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="Usage" type="VariableUsage" use="optional"/>\r
+        <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
 </xs:schema>\r
index f0c34663da03b2a9915e369c43da40945cd31bd5..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: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