Sync BaseTool trunk (version r2599) into EDKII BaseTools.
authorLiming Gao <liming.gao@intel.com>
Fri, 23 Aug 2013 02:18:16 +0000 (02:18 +0000)
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 23 Aug 2013 02:18:16 +0000 (02:18 +0000)
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Heshen Chen <chen.heshen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14591 6f19259b-4bc3-4df7-8a09-765794883524

136 files changed:
BaseTools/Bin/Win32/BPDG.exe
BaseTools/Bin/Win32/BootSectImage.exe
BaseTools/Bin/Win32/Common.PyUtility.pyd
BaseTools/Bin/Win32/EfiCompressor.pyd
BaseTools/Bin/Win32/EfiLdrImage.exe
BaseTools/Bin/Win32/EfiRom.exe
BaseTools/Bin/Win32/Eot.EfiCompressor.pyd
BaseTools/Bin/Win32/Eot.LzmaCompressor.pyd
BaseTools/Bin/Win32/GenBootSector.exe
BaseTools/Bin/Win32/GenCrc32.exe
BaseTools/Bin/Win32/GenDepex.exe
BaseTools/Bin/Win32/GenFds.exe
BaseTools/Bin/Win32/GenFfs.exe
BaseTools/Bin/Win32/GenFv.exe
BaseTools/Bin/Win32/GenFw.exe
BaseTools/Bin/Win32/GenPage.exe
BaseTools/Bin/Win32/GenPatchPcdTable.exe
BaseTools/Bin/Win32/GenSec.exe
BaseTools/Bin/Win32/GenVtf.exe
BaseTools/Bin/Win32/LzmaCompress.exe
BaseTools/Bin/Win32/PatchPcdValue.exe
BaseTools/Bin/Win32/Split.exe
BaseTools/Bin/Win32/TargetTool.exe
BaseTools/Bin/Win32/TianoCompress.exe
BaseTools/Bin/Win32/Trim.exe
BaseTools/Bin/Win32/UPT.exe
BaseTools/Bin/Win32/VfrCompile.exe
BaseTools/Bin/Win32/VolInfo.exe
BaseTools/Bin/Win32/_ctypes.pyd
BaseTools/Bin/Win32/_hashlib.pyd
BaseTools/Bin/Win32/_socket.pyd
BaseTools/Bin/Win32/_sqlite3.pyd
BaseTools/Bin/Win32/_ssl.pyd
BaseTools/Bin/Win32/build.exe
BaseTools/Bin/Win32/pyexpat.pyd
BaseTools/Bin/Win32/python25.dll [deleted file]
BaseTools/Bin/Win32/python27.dll [new file with mode: 0644]
BaseTools/Bin/Win32/select.pyd
BaseTools/Bin/Win32/sqlite3.dll
BaseTools/Conf/XMLSchema/DistributionPackage.xsd
BaseTools/Conf/build_rule.template
BaseTools/Conf/target.template
BaseTools/Conf/tools_def.template
BaseTools/Contributions.txt [new file with mode: 0644]
BaseTools/GNUmakefile
BaseTools/License.txt [new file with mode: 0644]
BaseTools/ReadMe.txt
BaseTools/Scripts/gcc4.4-ld-script
BaseTools/Source/C/BootSectImage/GNUmakefile
BaseTools/Source/C/Common/BasePeCoff.c
BaseTools/Source/C/Common/GNUmakefile
BaseTools/Source/C/Common/PeCoffLoaderEx.c
BaseTools/Source/C/EfiLdrImage/GNUmakefile
BaseTools/Source/C/EfiRom/GNUmakefile
BaseTools/Source/C/GNUmakefile
BaseTools/Source/C/GenBootSector/GenBootSector.c
BaseTools/Source/C/GenCrc32/GNUmakefile
BaseTools/Source/C/GenCrc32/GenCrc32.c
BaseTools/Source/C/GenFfs/GNUmakefile
BaseTools/Source/C/GenFv/GNUmakefile
BaseTools/Source/C/GenFv/GenFvInternalLib.c
BaseTools/Source/C/GenFw/Elf64Convert.c
BaseTools/Source/C/GenFw/GNUmakefile
BaseTools/Source/C/GenFw/elf_common.h
BaseTools/Source/C/GenPage/GNUmakefile
BaseTools/Source/C/GenPage/GenPage.c
BaseTools/Source/C/GenSec/GNUmakefile
BaseTools/Source/C/GenVtf/GNUmakefile
BaseTools/Source/C/GnuGenBootSector/GNUmakefile
BaseTools/Source/C/Include/AArch64/ProcessorBind.h [new file with mode: 0644]
BaseTools/Source/C/Include/Arm/ProcessorBind.h [new file with mode: 0644]
BaseTools/Source/C/Include/Common/BuildVersion.h
BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h
BaseTools/Source/C/Include/Common/UefiMultiPhase.h
BaseTools/Source/C/Include/Ia32/ProcessorBind.h
BaseTools/Source/C/Include/IndustryStandard/PeImage.h
BaseTools/Source/C/Include/X64/ProcessorBind.h
BaseTools/Source/C/LzmaCompress/GNUmakefile
BaseTools/Source/C/Makefiles/header.makefile
BaseTools/Source/C/Split/GNUmakefile
BaseTools/Source/C/TianoCompress/GNUmakefile
BaseTools/Source/C/VfrCompile/EfiVfr.h
BaseTools/Source/C/VfrCompile/GNUmakefile
BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
BaseTools/Source/C/VfrCompile/VfrCompiler.h
BaseTools/Source/C/VfrCompile/VfrError.cpp
BaseTools/Source/C/VfrCompile/VfrError.h
BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp
BaseTools/Source/C/VfrCompile/VfrFormPkg.h
BaseTools/Source/C/VfrCompile/VfrSyntax.g
BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
BaseTools/Source/C/VfrCompile/VfrUtilityLib.h
BaseTools/Source/C/VolInfo/GNUmakefile
BaseTools/Source/Python/AutoGen/AutoGen.py
BaseTools/Source/Python/AutoGen/GenC.py
BaseTools/Source/Python/AutoGen/UniClassObject.py
BaseTools/Source/Python/Common/BuildVersion.py
BaseTools/Source/Python/Common/DataType.py
BaseTools/Source/Python/Common/EdkIIWorkspaceBuild.py
BaseTools/Source/Python/Common/Expression.py
BaseTools/Source/Python/Common/FdfParserLite.py
BaseTools/Source/Python/Common/MigrationUtilities.py
BaseTools/Source/Python/Common/Misc.py
BaseTools/Source/Python/Common/PyUtility.pyd
BaseTools/Source/Python/Common/String.py
BaseTools/Source/Python/CommonDataClass/CommonClass.py
BaseTools/Source/Python/CommonDataClass/ModuleClass.py
BaseTools/Source/Python/CommonDataClass/PlatformClass.py
BaseTools/Source/Python/Ecc/Check.py
BaseTools/Source/Python/Eot/EfiCompressor.pyd
BaseTools/Source/Python/Eot/LzmaCompressor.pyd
BaseTools/Source/Python/GNUmakefile
BaseTools/Source/Python/GenFds/Fd.py
BaseTools/Source/Python/GenFds/FdfParser.py
BaseTools/Source/Python/GenFds/FfsFileStatement.py
BaseTools/Source/Python/GenFds/FfsInfStatement.py
BaseTools/Source/Python/GenFds/GenFds.py
BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
BaseTools/Source/Python/GenFds/VerSection.py
BaseTools/Source/Python/Makefile
BaseTools/Source/Python/TargetTool/TargetTool.py
BaseTools/Source/Python/UPT/BuildVersion.py
BaseTools/Source/Python/UPT/Library/DataType.py
BaseTools/Source/Python/UPT/Library/GlobalData.py
BaseTools/Source/Python/UPT/Library/String.py
BaseTools/Source/Python/UPT/Object/Parser/InfUserExtensionObject.py
BaseTools/Source/Python/UPT/Parser/InfAsBuiltProcess.py
BaseTools/Source/Python/UPT/Parser/InfLibrarySectionParser.py
BaseTools/Source/Python/Workspace/MetaFileParser.py
BaseTools/Source/Python/Workspace/WorkspaceCommon.py [new file with mode: 0644]
BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
BaseTools/Source/Python/build/BuildReport.py
BaseTools/Source/Python/build/build.py
BaseTools/Tests/GNUmakefile
BaseTools/building-gcc.txt
BaseTools/toolsetup.bat

index 9f387620844d0abde02c5edd5420d915f1f6b024..09137b60370a09924c893c2098ba959c9d29d950 100644 (file)
Binary files a/BaseTools/Bin/Win32/BPDG.exe and b/BaseTools/Bin/Win32/BPDG.exe differ
index 72bb94f3ccacb0bd5320fd1a59a5645674668742..a37e779ae73cc20303e782dc7b0c43924c087d35 100755 (executable)
Binary files a/BaseTools/Bin/Win32/BootSectImage.exe and b/BaseTools/Bin/Win32/BootSectImage.exe differ
index 5bb57d91e0bf0a81cd78423634b6e41a83fb43b0..856b508e4ea39a806fbe52264ac5e4db0956a2de 100644 (file)
Binary files a/BaseTools/Bin/Win32/Common.PyUtility.pyd and b/BaseTools/Bin/Win32/Common.PyUtility.pyd differ
index e0d0ae60be94b344f2b065d4716e7407707875c2..9de9beb4026a8a1fe8a7d89613ef80ef2670f77b 100755 (executable)
Binary files a/BaseTools/Bin/Win32/EfiCompressor.pyd and b/BaseTools/Bin/Win32/EfiCompressor.pyd differ
index f4a0ef8f9f206ba6481563fb611f86f2acb49a85..29db3e2f416cb4f266c074542de94e680ef70973 100755 (executable)
Binary files a/BaseTools/Bin/Win32/EfiLdrImage.exe and b/BaseTools/Bin/Win32/EfiLdrImage.exe differ
index 86ec6bb4cf55715c822ae6d4a5f0a299e1588b3b..6aefa0d41ade149d902fb2ceb875e081a240c67a 100755 (executable)
Binary files a/BaseTools/Bin/Win32/EfiRom.exe and b/BaseTools/Bin/Win32/EfiRom.exe differ
index 0729100b997577d4d531f947e693698ad916e19b..9de9beb4026a8a1fe8a7d89613ef80ef2670f77b 100644 (file)
Binary files a/BaseTools/Bin/Win32/Eot.EfiCompressor.pyd and b/BaseTools/Bin/Win32/Eot.EfiCompressor.pyd differ
index d792a7e9fb2073071b085076bfb15f99567e1aba..337c055e2062e16d469436efff3b9460be19e1ef 100644 (file)
Binary files a/BaseTools/Bin/Win32/Eot.LzmaCompressor.pyd and b/BaseTools/Bin/Win32/Eot.LzmaCompressor.pyd differ
index 2b8ebe60e2809e11d4b5305427dc48535d9f9de5..8bb35ac8357f17b7ec8459a8515828d98240ac41 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenBootSector.exe and b/BaseTools/Bin/Win32/GenBootSector.exe differ
index 14b0677c9ec70df9a7d074b91295d117b59f67d7..a6009cd72aa8828721689c21fc8ccf805e7d1c84 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenCrc32.exe and b/BaseTools/Bin/Win32/GenCrc32.exe differ
index d4d56965e8ff919d98a965d4740b09e0cb62c581..3d05e761366ddcdccbe6876777d5c4195b0641ea 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenDepex.exe and b/BaseTools/Bin/Win32/GenDepex.exe differ
index 88b88d63be1b5d25aa92549e3f4ce0a224532949..9bc45a846a2391ebcf0fd07e238679d147b9d9fd 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFds.exe and b/BaseTools/Bin/Win32/GenFds.exe differ
index 7d33a46a1b9fa0e7d8ab494665b54865e5261c11..632f7f3bb374120795ee56673d84125903e76ec1 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFfs.exe and b/BaseTools/Bin/Win32/GenFfs.exe differ
index 633cac7028fe6dfea0c8f50c2a11d21629fc69e0..b87331335e35332bfe3ae8cc65f97807af59346e 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFv.exe and b/BaseTools/Bin/Win32/GenFv.exe differ
index 2b1fd01f9c9a739031f08ac72319d8e14d09eac0..d47991f919b9be4ecfb99c81e931158bd9a88838 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFw.exe and b/BaseTools/Bin/Win32/GenFw.exe differ
index 3449ba54575de51e2e1f005f6776097637ce78e2..50806487c9e350cfba36cf5c618ddbbc2453af28 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenPage.exe and b/BaseTools/Bin/Win32/GenPage.exe differ
index 512134c08ded221916aac982639c18803f4af769..a3ce036d43621c4f90577eac3af42d6782892d71 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenPatchPcdTable.exe and b/BaseTools/Bin/Win32/GenPatchPcdTable.exe differ
index 40fbe7ab02e30ae69eaafc4e5b65bc49b3a2044b..a79833599d17e6580ed878527605f190e222ef6d 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenSec.exe and b/BaseTools/Bin/Win32/GenSec.exe differ
index 1448486c8975f9e73460d0f0dc59362650f93308..a248c31f7a69abfb9cc44da35d61eb9092091fd3 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenVtf.exe and b/BaseTools/Bin/Win32/GenVtf.exe differ
index c5b07a40cace25d2a39d48d3e981d10809405876..456d67326838303c92d85e1169b3b005408bffa2 100755 (executable)
Binary files a/BaseTools/Bin/Win32/LzmaCompress.exe and b/BaseTools/Bin/Win32/LzmaCompress.exe differ
index d77b67a7792cb9b9ad5537a2a4c5c93fb78ccca8..48b24e22cb48627c6a282933954441d715f65dad 100755 (executable)
Binary files a/BaseTools/Bin/Win32/PatchPcdValue.exe and b/BaseTools/Bin/Win32/PatchPcdValue.exe differ
index e50d48dfdf955f70ad34b26882da6fac8565617d..00000ac73932017895eed3ef1307c17d2c1ac978 100755 (executable)
Binary files a/BaseTools/Bin/Win32/Split.exe and b/BaseTools/Bin/Win32/Split.exe differ
index f5eeef9281543f51e85fd0d752d6b970e8a4db8b..bdaaf07260a167807691403c26d342b10ee0fde7 100755 (executable)
Binary files a/BaseTools/Bin/Win32/TargetTool.exe and b/BaseTools/Bin/Win32/TargetTool.exe differ
index da6b82cfa2bee88a2b712f0135ab67e5be263243..a65ba046b571321ef050708837ab239dd496123a 100755 (executable)
Binary files a/BaseTools/Bin/Win32/TianoCompress.exe and b/BaseTools/Bin/Win32/TianoCompress.exe differ
index 418818b1b6dd866874a2acb317587069977e763f..44edbab30d579b4f57de779a4b43f3fa6c53e632 100755 (executable)
Binary files a/BaseTools/Bin/Win32/Trim.exe and b/BaseTools/Bin/Win32/Trim.exe differ
index 03d6679fe3eb6e1e11c266d2fd4fa61c0a7617b6..a7060c7447223b16374d46a3e9a1d653ba527c88 100644 (file)
Binary files a/BaseTools/Bin/Win32/UPT.exe and b/BaseTools/Bin/Win32/UPT.exe differ
index 91681d800ee2a41472cab2058cddbf8a04d35e2b..20e1b43c93dfdcbb652b0648b46240ec5bdf82e7 100755 (executable)
Binary files a/BaseTools/Bin/Win32/VfrCompile.exe and b/BaseTools/Bin/Win32/VfrCompile.exe differ
index 9655614239aae0ca8f3683be233b4624d159056c..593784de3a78ce43cbb11ef1b9bb89a625b9f9e3 100755 (executable)
Binary files a/BaseTools/Bin/Win32/VolInfo.exe and b/BaseTools/Bin/Win32/VolInfo.exe differ
index 06d1ed14c09aa963c9d3d46f860a637f3674ddeb..ae456be8063dc5776e31bda4300a9c04304a2511 100644 (file)
Binary files a/BaseTools/Bin/Win32/_ctypes.pyd and b/BaseTools/Bin/Win32/_ctypes.pyd differ
index 3690e54853dc75ffd3461be70f82dded1fef4cb4..5efea4ac7366e80f01d857462a066a1bbb74adfa 100755 (executable)
Binary files a/BaseTools/Bin/Win32/_hashlib.pyd and b/BaseTools/Bin/Win32/_hashlib.pyd differ
index 707853bd33d02bb09d3017125be2d4f4c3757190..b4b3b1fe60899deb850110a1aacd46e956722ab0 100755 (executable)
Binary files a/BaseTools/Bin/Win32/_socket.pyd and b/BaseTools/Bin/Win32/_socket.pyd differ
index 907de8ab4796d183664079ff46cd8f6298427de4..b86f5527a41d61fc30395e6253da82117e50bb1f 100755 (executable)
Binary files a/BaseTools/Bin/Win32/_sqlite3.pyd and b/BaseTools/Bin/Win32/_sqlite3.pyd differ
index 428b51b008b1dcfdf1eca76b58d7847143e260df..c054f240d67ff88e4fb9f6745858b0365099829e 100755 (executable)
Binary files a/BaseTools/Bin/Win32/_ssl.pyd and b/BaseTools/Bin/Win32/_ssl.pyd differ
index fc43d62866687cfbeb728f5f51da41a47a3a4bf0..2b74c9948f6fe9127c6490c6aa4995c56b7fdb5a 100755 (executable)
Binary files a/BaseTools/Bin/Win32/build.exe and b/BaseTools/Bin/Win32/build.exe differ
index 9914173a532d6eefe38b5b93adef7718b924ef16..03c607001ccfa956e83f38fcab4edc5eab33899b 100755 (executable)
Binary files a/BaseTools/Bin/Win32/pyexpat.pyd and b/BaseTools/Bin/Win32/pyexpat.pyd differ
diff --git a/BaseTools/Bin/Win32/python25.dll b/BaseTools/Bin/Win32/python25.dll
deleted file mode 100755 (executable)
index a116a9b..0000000
Binary files a/BaseTools/Bin/Win32/python25.dll and /dev/null differ
diff --git a/BaseTools/Bin/Win32/python27.dll b/BaseTools/Bin/Win32/python27.dll
new file mode 100644 (file)
index 0000000..436f8d2
Binary files /dev/null and b/BaseTools/Bin/Win32/python27.dll differ
index cc70648a3cad9b88b781d82fdc47659e04b1eadb..e1b0ec2c49f1108286fcd941a922070976c0e9ab 100755 (executable)
Binary files a/BaseTools/Bin/Win32/select.pyd and b/BaseTools/Bin/Win32/select.pyd differ
index c99ef993cf23c0be2bc244d6e8e373993f4e0c48..189ca345cdb907d300abde8e47e218f3376428be 100755 (executable)
Binary files a/BaseTools/Bin/Win32/sqlite3.dll and b/BaseTools/Bin/Win32/sqlite3.dll differ
index 8f136ae04e3c8d72b0a8b0ec68197624b0804d41..5ae85f2bc31175a0cbde2e92878da906da26636b 100644 (file)
@@ -2,7 +2,7 @@
 <!--
 Filename: DistributionPackage.xsd
 
-Copyright (c) 2008 - 2011, Intel Corporation. All rights reserved.
+Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.
 
 This program and the accompanying materials are licensed and made available 
 under the terms and conditions of the BSD License which may be found at 
@@ -13,108 +13,96 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
 -->
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
-    targetNamespace="http://www.uefi.org/2011/1.1" xmlns="http://www.uefi.org/2011/1.1">
+    targetNamespace="http://www.uefi.org/2012/1.0" xmlns="http://www.uefi.org/2012/1.0">
     <xs:element name="DistributionPackage">
         <xs:annotation>
-            <xs:documentation xml:lang="en-us"> This schema defines the UEFI/PI Distribution Package
-                description (PKG) file. It describes the content of:</xs:documentation>
-            <xs:documentation xml:lang="en-us"> 1) Package descriptions with definitions and
-                headers.</xs:documentation>
-            <xs:documentation xml:lang="en-us"> 2) Modules in either source or binary format. (Note
-                that Binary format is for FFS leaf section file types only, complete FFS files
-                cannot be distributed using this distribution format.) </xs:documentation>
-            <xs:documentation xml:lang="en-us"> 3) The distribution of custom tools used to modify
-                the binary images to create UEFI/PI compliant images. </xs:documentation>
-            <xs:documentation xml:lang="en-us"> 4) Finally, it can be used to distribute other
-                miscellaneous content that is not specific to UEFI/PI images. </xs:documentation>
-            <xs:documentation xml:lang="en-us"> The Package Surface Area describes the content of
-                packages, while the Module Surface Area provides information relevant to source
-                and/or binary distributions. </xs:documentation>
+            <xs:documentation xml:lang="en-us"> This schema defines the UEFI/PI Distribution Package description (PKG)
+                file. It describes the content of:</xs:documentation>
+            <xs:documentation xml:lang="en-us"> 1) Package descriptions with definitions and headers.</xs:documentation>
+            <xs:documentation xml:lang="en-us"> 2) Modules in either source or binary format. (Note that Binary format
+                is for FFS leaf section file types only, complete FFS files cannot be distributed using this
+                distribution format.) </xs:documentation>
+            <xs:documentation xml:lang="en-us"> 3) The distribution of custom tools used to modify the binary images to
+                create UEFI/PI compliant images. </xs:documentation>
+            <xs:documentation xml:lang="en-us"> 4) Finally, it can be used to distribute other miscellaneous content
+                that is not specific to UEFI/PI images. </xs:documentation>
+            <xs:documentation xml:lang="en-us"> The Package Surface Area describes the content of packages, while the
+                Module Surface Area provides information relevant to source and/or binary distributions.
+            </xs:documentation>
         </xs:annotation>
         <xs:complexType>
             <xs:sequence>
                 <xs:element ref="DistributionHeader" minOccurs="1" maxOccurs="1">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> This header contains (legal) information
-                            usually required for distributing both binary and/or source code.
-                        </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> This header contains (legal) information usually required
+                            for distributing both binary and/or source code. </xs:documentation>
                     </xs:annotation>
                 </xs:element>
                 <xs:element ref="PackageSurfaceArea" minOccurs="0" maxOccurs="unbounded">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> The list of packages in this
-                            distribution. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> Packages are groups of files and/or
-                            modules that are similar in nature.</xs:documentation>
-                        <xs:documentation xml:lang="en-us"> Packages are uniquely identified by a
-                            package GUID and a package version. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> A package can declare public mappings of
-                            C names to GUID values. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> A package can provide header files for
-                            library classes and/or other industry standard definitions. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> A package can also declare public
-                            mappings of platform configuration database (PCD) &quot;knobs&quot; to
-                            control features and operation of modules within a platform. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> Finally, a package lists the library
-                            instances and/or modules that are provided in a distribution package.
-                        </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> The list of packages in this distribution. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> Packages are groups of files and/or modules that are similar
+                            in nature.</xs:documentation>
+                        <xs:documentation xml:lang="en-us"> Packages are uniquely identified by a package GUID and a
+                            package version. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> A package can declare public mappings of C names to GUID
+                            values. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> A package can provide header files for library classes
+                            and/or other industry standard definitions. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> A package can also declare public mappings of platform
+                            configuration database (PCD) &quot;knobs&quot; to control features and operation of modules
+                            within a platform. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> Finally, a package lists the library instances and/or
+                            modules that are provided in a distribution package. </xs:documentation>
                     </xs:annotation>
                 </xs:element>
                 <xs:element ref="ModuleSurfaceArea" minOccurs="0" maxOccurs="unbounded">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> The listing of UEFI/PI compliant modules
-                            in this distribution that are NOT part of a Package. Every module that
-                            is provided as part of a package needs to be described in a
-                            PackageSurfaceArea.Modules section. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> The ModuleSurfaceArea section describes
-                            how each module in a distribution is coded, or, in the case of a binary
-                            module distribution, how it was built. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> UEFI/PI compliant libraries and modules
-                            are uniquely identified by the Module's GUID and version number. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> This section will typically be used for
-                            modules that don't require any additional files that would be included
-                            in a package. For example, the Enhanced FAT driver binary does not need
-                            to have a package description, as no additional files are provided.
-                        </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> The listing of UEFI/PI compliant modules in this
+                            distribution that are NOT part of a Package. Every module that is provided as part of a
+                            package needs to be described in a PackageSurfaceArea.Modules section. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> The ModuleSurfaceArea section describes how each module in a
+                            distribution is coded, or, in the case of a binary module distribution, how it was built. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> UEFI/PI compliant libraries and modules are uniquely
+                            identified by the Module's GUID and version number. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> This section will typically be used for modules that don't
+                            require any additional files that would be included in a package. For example, the Enhanced
+                            FAT driver binary does not need to have a package description, as no additional files are
+                            provided. </xs:documentation>
                     </xs:annotation>
                 </xs:element>
                 <xs:element ref="Tools" minOccurs="0" maxOccurs="unbounded">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> This section is for distributing vendor
-                            specific executable tools, tool source code and/or configuration files.
-                            These tools are primarily for manipulating code and/or binary images. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> Tools in this section
-                            can:</xs:documentation>
-                        <xs:documentation xml:lang="en-us"> 1) Parse build meta-data files to create
-                            source code files and build scripts. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> 2) Modify image files to conform to
-                            UEFI/PI specifications. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> 3) Generate binary files from certain
-                            types of text/unicode files. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> 4) Generate PCI Option Roms or Firmware
-                            Device images. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> 5) Implement external
-                            encoding/decoding/signature/GUIDed tools. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> 6) Distribution Package
-                            create/install/remove tools. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> This section is for distributing vendor specific executable
+                            tools, tool source code and/or configuration files. These tools are primarily for
+                            manipulating code and/or binary images. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> Tools in this section can:</xs:documentation>
+                        <xs:documentation xml:lang="en-us"> 1) Parse build meta-data files to create source code files
+                            and build scripts. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> 2) Modify image files to conform to UEFI/PI specifications. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> 3) Generate binary files from certain types of text/unicode
+                            files. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> 4) Generate PCI Option Roms or Firmware Device images. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> 5) Implement external encoding/decoding/signature/GUIDed
+                            tools. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> 6) Distribution Package create/install/remove tools.
+                        </xs:documentation>
                     </xs:annotation>
                 </xs:element>
                 <xs:element ref="MiscellaneousFiles" minOccurs="0" maxOccurs="unbounded">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> The list of miscellaneous files in this
-                            distribution. Any files that are not listed in either the Package,
-                            Module or Tools sections can be listed here. This section can be used to
-                            distribute specifications for packages and modules that are not
-                            &quot;industry standards&quot; such as a specification for a chipset or
-                            a video device. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> The list of miscellaneous files in this distribution. Any
+                            files that are not listed in either the Package, Module or Tools sections can be listed
+                            here. This section can be used to distribute specifications for packages and modules that
+                            are not &quot;industry standards&quot; such as a specification for a chipset or a video
+                            device. </xs:documentation>
                     </xs:annotation>
                 </xs:element>
                 <xs:element ref="UserExtensions" minOccurs="0" maxOccurs="unbounded">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> The UserExtensions section is used to
-                            disseminate processing instructions that may be custom to the content
-                            provided by the distribution. This section contains information that is
-                            common to all aspects of this disribution. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> The UserExtensions section is used to disseminate processing
+                            instructions that may be custom to the content provided by the distribution. This section
+                            contains information that is common to all aspects of this disribution. </xs:documentation>
                     </xs:annotation>
                 </xs:element>
             </xs:sequence>
@@ -125,31 +113,30 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
     <xs:element name="DistributionHeader">
         <xs:annotation>
-            <xs:documentation xml:lang="en-us"> This section defines the content of the UEIF/PI
-                compliant Distribution Package Header. This is the only required element of a
-                UEFI/PI compliant distribution package. </xs:documentation>
+            <xs:documentation xml:lang="en-us"> This section defines the content of the UEIF/PI compliant Distribution
+                Package Header. This is the only required element of a UEFI/PI compliant distribution package.
+            </xs:documentation>
         </xs:annotation>
         <xs:complexType>
             <xs:sequence>
                 <xs:element minOccurs="1" maxOccurs="1" name="Name">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> This is the User Interface Name for this
-                            Distribution Package. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> Each Distribution Package is uniquely
-                            identified by it's GUID and Version number. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> This is the User Interface Name for this Distribution
+                            Package. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> Each Distribution Package is uniquely identified by it's
+                            GUID and Version number. </xs:documentation>
                     </xs:annotation>
                     <xs:complexType>
                         <xs:simpleContent>
                             <xs:extension base="xs:normalizedString">
                                 <xs:attribute name="BaseName" type="xs:NMTOKEN" use="optional">
                                     <xs:annotation>
-                                        <xs:documentation xml:lang="en-us"> The reference name of
-                                            the Distribution Package file. This single word name can
-                                            be used by tools as a keyword or for directory and/or
-                                            file creation. </xs:documentation>
-                                        <xs:documentation xml:lang="en-us"> White space and special
-                                            characters (dash and underscore characters may be used)
-                                            are not permitted in this name. </xs:documentation>
+                                        <xs:documentation xml:lang="en-us"> The reference name of the Distribution
+                                            Package file. This single word name can be used by tools as a keyword or for
+                                            directory and/or file creation. </xs:documentation>
+                                        <xs:documentation xml:lang="en-us"> White space and special characters (dash and
+                                            underscore characters may be used) are not permitted in this name.
+                                        </xs:documentation>
                                     </xs:annotation>
                                 </xs:attribute>
                             </xs:extension>
@@ -158,22 +145,20 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                 </xs:element>
                 <xs:element minOccurs="1" maxOccurs="1" name="GUID">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> This 128-bit GUID and the Version
-                            attribute uniquely identify this Distribution Package. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> Backward compatible releases of a
-                            distribution package need only change the version number, while
-                            non-backward compatible changes require the GUID to change (resetting
-                            the version number to 1.0 is optional.) </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> This 128-bit GUID and the Version attribute uniquely
+                            identify this Distribution Package. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> Backward compatible releases of a distribution package need
+                            only change the version number, while non-backward compatible changes require the GUID to
+                            change (resetting the version number to 1.0 is optional.) </xs:documentation>
                     </xs:annotation>
                     <xs:complexType>
                         <xs:simpleContent>
                             <xs:extension base="RegistryFormatGuid">
                                 <xs:attribute name="Version" type="xs:decimal" use="required">
                                     <xs:annotation>
-                                        <xs:documentation xml:lang="en-us"> This value, along with
-                                            the GUID, is used to uniquely identify this object. The
-                                            higher the number, the more recent the content.
-                                        </xs:documentation>
+                                        <xs:documentation xml:lang="en-us"> This value, along with the GUID, is used to
+                                            uniquely identify this object. The higher the number, the more recent the
+                                            content. </xs:documentation>
                                     </xs:annotation>
                                 </xs:attribute>
                             </xs:extension>
@@ -182,97 +167,116 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                 </xs:element>
                 <xs:element minOccurs="1" maxOccurs="1" name="Vendor" type="xs:normalizedString">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> A string identifying who created this
-                            distribution package. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> A string identifying who created this distribution package.
+                        </xs:documentation>
                     </xs:annotation>
                 </xs:element>
                 <xs:element minOccurs="1" maxOccurs="1" name="Date" type="xs:dateTime">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> The date and time this distribution was
-                            created. The format is: YYYY-MM-DDThh:mm:ss, for example:
-                            2001-01-31T13:30:00 (note the T character separator between the calendar
-                            date and the time. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> The date and time this distribution was created. The format
+                            is: YYYY-MM-DDThh:mm:ss, for example: 2001-01-31T13:30:00 (note the T character separator
+                            between the calendar date and the time. </xs:documentation>
                     </xs:annotation>
                 </xs:element>
-                <xs:element minOccurs="1" maxOccurs="1" name="Copyright" type="xs:string">
+                <xs:element minOccurs="1" maxOccurs="unbounded" name="Copyright">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> The copyright for this file that is
-                            generated by the creator of the distribution. If a derivative work is
-                            generated from an existing distribution, then the existing copyright
-                            must be maintained, and additional copyrights may be appended to the end
-                            of this element. It may also be the primary copyright for all code
-                            provided in the Distribution Package. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> The copyright for this file that is generated by the creator
+                            of the distribution. If a derivative work is generated from an existing distribution, then
+                            the existing copyright must be maintained, and additional copyrights may be appended to the
+                            end of this element. It may also be the primary copyright for all code provided in the
+                            Distribution Package. </xs:documentation>
                     </xs:annotation>
+                    <xs:complexType>
+                        <xs:simpleContent>
+                            <xs:extension base="xs:string">
+                                <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
+                            </xs:extension>
+                        </xs:simpleContent>
+                    </xs:complexType>
+                    
                 </xs:element>
-                <xs:element minOccurs="1" maxOccurs="1" name="License" type="xs:string">
+                <xs:element minOccurs="1" maxOccurs="unbounded" name="License">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> A license that describes any
-                            restrictions on the use of this distribution. If a derivative work is
-                            allowed by the original license and a derivative work is generated from
-                            an existing distribution, then the existing license must be maintained,
-                            and additional licenses may be appended to the end of this element. It
-                            may also be the primary license for all code provided in the
-                            distribution file. Alternatively, this may point to a filename that
-                            contains the License. The file (included in the content zip file) will
-                            be stored in the same location as the distribution package's .pkg file.
+                        <xs:documentation xml:lang="en-us"> A license that describes any restrictions on the use of this
+                            distribution. If a derivative work is allowed by the original license and a derivative work
+                            is generated from an existing distribution, then the existing license must be maintained,
+                            and additional licenses may be appended to the end of this element. It may also be the
+                            primary license for all code provided in the distribution file. Alternatively, this may
+                            point to a filename that contains the License. The file (included in the content zip file)
+                            will be stored in the same location as the distribution package's .pkg file.
                         </xs:documentation>
                     </xs:annotation>
+                    <xs:complexType>
+                        <xs:simpleContent>
+                            <xs:extension base="xs:string">
+                                <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
+                            </xs:extension>
+                        </xs:simpleContent>
+                    </xs:complexType>
                 </xs:element>
-                <xs:element minOccurs="1" maxOccurs="1" name="Abstract" type="xs:normalizedString">
+                <xs:element minOccurs="1" maxOccurs="unbounded" name="Abstract">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> A one line description of the
-                            Distribution Package. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> A one line description of the Distribution Package.
+                        </xs:documentation>
                     </xs:annotation>
+                    <xs:complexType>
+                        <xs:simpleContent>
+                            <xs:extension base="xs:normalizedString">
+                                <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
+                            </xs:extension>
+                        </xs:simpleContent>
+                    </xs:complexType>
                 </xs:element>
-                <xs:element minOccurs="0" maxOccurs="1" name="Description" type="xs:string">
+                <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> A complete description of the
-                            Distribution Package. This description may include the release name of
-                            the file, the version of the file, and a complete description of the
-                            file contents and/or features including a description of the updates
-                            since the previous file release. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> A complete description of the Distribution Package. This
+                            description may include the release name of the file, the version of the file, and a
+                            complete description of the file contents and/or features including a description of the
+                            updates since the previous file release. </xs:documentation>
                     </xs:annotation>
+                    <xs:complexType>
+                        <xs:simpleContent>
+                            <xs:extension base="xs:string">
+                                <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
+                            </xs:extension>
+                        </xs:simpleContent>
+                    </xs:complexType>
                 </xs:element>
                 <xs:element minOccurs="0" maxOccurs="1" name="Signature" type="Md5Sum">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> The packaging utilities will use this
-                            MD5 sum value of the included ZIP file containing files and/or code. If
-                            this element is not present, then installation tools should assume that
-                            the content is correct, or that other methods may be needed to verify
-                            content. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> The packaging utilities will use this MD5 sum value of the
+                            included ZIP file containing files and/or code. If this element is not present, then
+                            installation tools should assume that the content is correct, or that other methods may be
+                            needed to verify content. </xs:documentation>
                     </xs:annotation>
                 </xs:element>
-                <xs:element minOccurs="1" maxOccurs="1" name="XmlSpecification" type="xs:decimal"
-                    default="1.1">
+                <xs:element minOccurs="1" maxOccurs="1" name="XmlSpecification" type="xs:decimal" default="1.1">
                     <xs:annotation>
                         <xs:documentation xml:lang="en-us"> This version of this XML Schema is 1.1 </xs:documentation>
                         <xs:documentation xml:lang="en-us"> Changes to 1.1 from 1.0 </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> #1 Updated to present date and new
-                            version which is important to reflect the present state of the
-                            matter</xs:documentation>
-                        <xs:documentation xml:lang="en-us"> #2 Added definition/enumeration of
-                            UNDEFIND type 2 is important since there is a large body of legacy code
-                            for which the GUID’s and other code/data objects were not decorated with
-                            their usage. This document will allow for importing today’s source
-                            artifacts and producing decorations using the ‘Undefined’ versus having
-                            an error</xs:documentation>
-                        <xs:documentation xml:lang="en-us">#3 Allow for inclusion of ARM and future
-                            architecture types</xs:documentation>
+                        <xs:documentation xml:lang="en-us"> #1 Updated to present date and new version which is
+                            important to reflect the present state of the matter</xs:documentation>
+                        <xs:documentation xml:lang="en-us"> #2 Added definition/enumeration of UNDEFIND type 2 is
+                            important since there is a large body of legacy code for which the GUID’s and other
+                            code/data objects were not decorated with their usage. This document will allow for
+                            importing today’s source artifacts and producing decorations using the ‘Undefined’ versus
+                            having an error</xs:documentation>
+                        <xs:documentation xml:lang="en-us">#3 Allow for inclusion of ARM and future architecture
+                            types</xs:documentation>
                     </xs:annotation>
                 </xs:element>
             </xs:sequence>
             <xs:attribute name="ReadOnly" type="xs:boolean" default="false" use="optional">
                 <xs:annotation>
-                    <xs:documentation xml:lang="en-us"> If set to true, all content within this
-                        Distribution Package should NOT be modified. The default permits
-                        modification of all content. </xs:documentation>
+                    <xs:documentation xml:lang="en-us"> If set to true, all content within this Distribution Package
+                        should NOT be modified. The default permits modification of all content. </xs:documentation>
                 </xs:annotation>
             </xs:attribute>
             <xs:attribute name="RePackage" type="xs:boolean" default="false" use="optional">
                 <xs:annotation>
-                    <xs:documentation xml:lang="en-us"> If set to true, then the content can be
-                        repackaged into another distribution package. The default prohibits
-                        repackaging the Distribution content. </xs:documentation>
+                    <xs:documentation xml:lang="en-us"> If set to true, then the content can be repackaged into another
+                        distribution package. The default prohibits repackaging the Distribution content.
+                    </xs:documentation>
                 </xs:annotation>
             </xs:attribute>
         </xs:complexType>
@@ -281,12 +285,12 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
     <xs:element name="PackageSurfaceArea">
         <xs:annotation>
-            <xs:documentation xml:lang="en-us"> A package is a collection of related objects -
-                Includes, Libraries and Modules. </xs:documentation>
-            <xs:documentation xml:lang="en-us"> Each package is uniquely identified by it's GUID and
-                Version number. Backward compatible releases of a package need only change the
-                version number, while non-backward compatible changes require the GUID to change
-                (resetting the version number to 1.0 is optional.) </xs:documentation>
+            <xs:documentation xml:lang="en-us"> A package is a collection of related objects - Includes, Libraries and
+                Modules. </xs:documentation>
+            <xs:documentation xml:lang="en-us"> Each package is uniquely identified by it's GUID and Version number.
+                Backward compatible releases of a package need only change the version number, while non-backward
+                compatible changes require the GUID to change (resetting the version number to 1.0 is optional.)
+            </xs:documentation>
         </xs:annotation>
         <xs:complexType>
             <xs:sequence>
@@ -296,19 +300,17 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                         <xs:sequence>
                             <xs:element minOccurs="1" maxOccurs="1" name="Name">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> This is the User Interface
-                                        Name for this package. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> This is the User Interface Name for this
+                                        package. </xs:documentation>
                                 </xs:annotation>
                                 <xs:complexType>
                                     <xs:simpleContent>
                                         <xs:extension base="xs:normalizedString">
-                                            <xs:attribute name="BaseName" type="xs:NMTOKEN"
-                                                use="required">
+                                            <xs:attribute name="BaseName" type="xs:NMTOKEN" use="required">
                                                 <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> This is a
-                                                  single word BaseName of the package. This BaseName
-                                                  can be used by tools as a keyword and for
-                                                  directory/file creation. </xs:documentation>
+                                                    <xs:documentation xml:lang="en-us"> This is a single word BaseName
+                                                        of the package. This BaseName can be used by tools as a keyword
+                                                        and for directory/file creation. </xs:documentation>
                                                 </xs:annotation>
                                             </xs:attribute>
                                         </xs:extension>
@@ -317,72 +319,93 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                             </xs:element>
                             <xs:element minOccurs="1" maxOccurs="1" name="GUID">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> This GUID and the Version
-                                        attribute uniquely identify a given package.
-                                    </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> This GUID and the Version attribute uniquely
+                                        identify a given package. </xs:documentation>
                                 </xs:annotation>
                                 <xs:complexType>
                                     <xs:simpleContent>
                                         <xs:extension base="RegistryFormatGuid">
-                                            <xs:attribute name="Version" type="xs:decimal"
-                                                use="required">
+                                            <xs:attribute name="Version" type="xs:decimal" use="required">
                                                 <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> This value,
-                                                  along with the GUID, is used to uniquely identify
-                                                  this object. </xs:documentation>
-                                                  <xs:documentation xml:lang="en-us"> Backward
-                                                  compatible changes must make sure this number is
-                                                  incremented from the most recent version.
-                                                  Non-backward compatible changes require a new
-                                                  GUID, and the version can be reset.
-                                                  </xs:documentation>
+                                                    <xs:documentation xml:lang="en-us"> This value, along with the GUID,
+                                                        is used to uniquely identify this object. </xs:documentation>
+                                                    <xs:documentation xml:lang="en-us"> Backward compatible changes must
+                                                        make sure this number is incremented from the most recent
+                                                        version. Non-backward compatible changes require a new GUID, and
+                                                        the version can be reset. </xs:documentation>
                                                 </xs:annotation>
                                             </xs:attribute>
                                         </xs:extension>
                                     </xs:simpleContent>
                                 </xs:complexType>
                             </xs:element>
-                            <xs:element minOccurs="0" maxOccurs="1" name="Copyright"
-                                type="xs:string">
+                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Copyright">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> If the package requires a
-                                        different copyright than the distribution package, this
-                                        element can list one or more copyright lines.
-                                    </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> If the package requires a different copyright
+                                        than the distribution package, this element can list one or more copyright
+                                        lines. </xs:documentation>
                                 </xs:annotation>
+                                <xs:complexType>
+                                    <xs:simpleContent>
+                                        <xs:extension base="xs:string">
+                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
+                                            />
+                                        </xs:extension>
+                                    </xs:simpleContent>
+                                </xs:complexType>
+
                             </xs:element>
-                            <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">
+                            <xs:element minOccurs="0" maxOccurs="unbounded" name="License">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> If the package requires
-                                        licenses that are different from the distribution package
-                                        license, this element can contain one or more license text
-                                        paragraphs (or license filenames.) </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> If the package requires licenses that are
+                                        different from the distribution package license, this element can contain one or
+                                        more license text paragraphs (or license filenames.) </xs:documentation>
                                 </xs:annotation>
+                                <xs:complexType>
+                                    <xs:simpleContent>
+                                        <xs:extension base="xs:string">
+                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
+                                            />
+                                        </xs:extension>
+                                    </xs:simpleContent>
+                                </xs:complexType>
+
                             </xs:element>
-                            <xs:element minOccurs="0" maxOccurs="1" name="Abstract"
-                                type="xs:normalizedString">
+                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Abstract">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> A one line description of
-                                        this package. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> A one line description of this package.
+                                    </xs:documentation>
                                 </xs:annotation>
+                                <xs:complexType>
+                                    <xs:simpleContent>
+                                        <xs:extension base="xs:normalizedString">
+                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
+                                            />
+                                        </xs:extension>
+                                    </xs:simpleContent>
+                                </xs:complexType>
                             </xs:element>
-                            <xs:element minOccurs="0" maxOccurs="1" name="Description"
-                                type="xs:string">
+                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> A complete description of a
-                                        package. This description may include the release name of
-                                        the package, the version of the package, and a complete
-                                        description of the package contents and/or features
-                                        including a description of the updates since the previous
-                                        package’s release. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> A complete description of a package. This
+                                        description may include the release name of the package, the version of the
+                                        package, and a complete description of the package contents and/or features
+                                        including a description of the updates since the previous package’s release.
+                                    </xs:documentation>
                                 </xs:annotation>
+                                <xs:complexType>
+                                    <xs:simpleContent>
+                                        <xs:extension base="xs:string">
+                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
+                                            />
+                                        </xs:extension>
+                                    </xs:simpleContent>
+                                </xs:complexType>
                             </xs:element>
-                            <xs:element minOccurs="1" maxOccurs="1" name="PackagePath"
-                                type="xs:anyURI">
+                            <xs:element minOccurs="1" maxOccurs="1" name="PackagePath" type="xs:anyURI">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> This element is the location
-                                        (in the ZIP file) for the root directory of a package.
-                                    </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> This element is the location (in the ZIP file)
+                                        for the root directory of a package. </xs:documentation>
                                 </xs:annotation>
                             </xs:element>
                         </xs:sequence>
@@ -392,29 +415,26 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
                 <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> The term cloned is used here to indicate
-                            that this package as been copied and modified to a completely different
-                            package. An example might be for a new generation of chipsets that have
-                            few or no elements in common with the original. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> The term cloned is used here to indicate that this package
+                            as been copied and modified to a completely different package. An example might be for a new
+                            generation of chipsets that have few or no elements in common with the original.
+                        </xs:documentation>
                     </xs:annotation>
                     <xs:complexType>
                         <xs:sequence>
                             <xs:element minOccurs="1" maxOccurs="1" name="GUID">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> This GUID and the Version
-                                        attribute uniquely identify the Package that this Package
-                                        was copied from. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> This GUID and the Version attribute uniquely
+                                        identify the Package that this Package was copied from. </xs:documentation>
                                 </xs:annotation>
                                 <xs:complexType>
                                     <xs:simpleContent>
                                         <xs:extension base="RegistryFormatGuid">
-                                            <xs:attribute name="Version" type="xs:decimal"
-                                                use="required">
+                                            <xs:attribute name="Version" type="xs:decimal" use="required">
                                                 <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> This value,
-                                                  along with the GUID, is used to uniquely identify
-                                                  the package that this package was cloned from.
-                                                  </xs:documentation>
+                                                    <xs:documentation xml:lang="en-us"> This value, along with the GUID,
+                                                        is used to uniquely identify the package that this package was
+                                                        cloned from. </xs:documentation>
                                                 </xs:annotation>
                                             </xs:attribute>
                                         </xs:extension>
@@ -428,11 +448,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
                 <xs:element minOccurs="0" maxOccurs="1" name="LibraryClassDeclarations">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> Library Classes are public interfaces
-                            that can be used by modules. One or more library instances can implement
-                            a library class, however only one library instance can be linked to an
-                            individual module. This provides the platform integrator with the
-                            flexibility of choosing one library instance's implementation over a
+                        <xs:documentation xml:lang="en-us"> Library Classes are public interfaces that can be used by
+                            modules. One or more library instances can implement a library class, however only one
+                            library instance can be linked to an individual module. This provides the platform
+                            integrator with the flexibility of choosing one library instance's implementation over a
                             different library instance. </xs:documentation>
                     </xs:annotation>
                     <xs:complexType>
@@ -440,59 +459,51 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                             <xs:element minOccurs="1" maxOccurs="unbounded" name="LibraryClass">
                                 <xs:complexType>
                                     <xs:sequence>
-                                        <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile"
-                                            type="xs:anyURI">
+                                        <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile" type="xs:anyURI">
                                             <xs:annotation>
-                                                <xs:documentation xml:lang="en-us"> The header file
-                                                  provides definitions and function prototypes for a
-                                                  library class. Modules can be coded against these
-                                                  functions, using the definitions in this header,
-                                                  without concerning themselves about the libraries'
-                                                  implementation details. This is a PackagePath
-                                                  relative path and filename for the include file.
-                                                </xs:documentation>
+                                                <xs:documentation xml:lang="en-us"> The header file provides definitions
+                                                    and function prototypes for a library class. Modules can be coded
+                                                    against these functions, using the definitions in this header,
+                                                    without concerning themselves about the libraries' implementation
+                                                    details. This is a PackagePath relative path and filename for the
+                                                    include file. </xs:documentation>
                                             </xs:annotation>
                                         </xs:element>
-                                        <xs:element minOccurs="0" maxOccurs="1"
-                                            name="RecommendedInstance">
+                                        <xs:element minOccurs="0" maxOccurs="1" name="RecommendedInstance">
                                             <xs:complexType>
                                                 <xs:sequence>
-                                                  <xs:element minOccurs="1" maxOccurs="1"
-                                                  name="GUID">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> This GUID and
-                                                  the Version attribute uniquely identify the
-                                                  Recommended Library Instance. </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:complexType>
-                                                  <xs:simpleContent>
-                                                  <xs:extension base="RegistryFormatGuid">
-                                                  <xs:attribute name="Version" type="xs:decimal"
-                                                  use="optional">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> This value,
-                                                  along with the GUID, is used to uniquely identify
-                                                  this object. If this value is not specified, then
-                                                  any version of the library instance is
-                                                  recommended. </xs:documentation>
-                                                  </xs:annotation>
-                                                  </xs:attribute>
-                                                  </xs:extension>
-                                                  </xs:simpleContent>
-                                                  </xs:complexType>
-                                                  </xs:element>
+                                                    <xs:element minOccurs="1" maxOccurs="1" name="GUID">
+                                                        <xs:annotation>
+                                                            <xs:documentation xml:lang="en-us"> This GUID and the
+                                                            Version attribute uniquely identify the Recommended Library
+                                                            Instance. </xs:documentation>
+                                                        </xs:annotation>
+                                                        <xs:complexType>
+                                                            <xs:simpleContent>
+                                                            <xs:extension base="RegistryFormatGuid">
+                                                            <xs:attribute name="Version" type="xs:decimal"
+                                                            use="optional">
+                                                            <xs:annotation>
+                                                            <xs:documentation xml:lang="en-us"> This value, along with
+                                                            the GUID, is used to uniquely identify this object. If this
+                                                            value is not specified, then any version of the library
+                                                            instance is recommended. </xs:documentation>
+                                                            </xs:annotation>
+                                                            </xs:attribute>
+                                                            </xs:extension>
+                                                            </xs:simpleContent>
+                                                        </xs:complexType>
+                                                    </xs:element>
                                                 </xs:sequence>
                                             </xs:complexType>
                                         </xs:element>
-                                        <xs:element ref="HelpText" minOccurs="0"
-                                            maxOccurs="unbounded"/>
+                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
                                     </xs:sequence>
                                     <xs:attribute name="Keyword" type="xs:NCName" use="required">
                                         <xs:annotation>
-                                            <xs:documentation xml:lang="en-us"> The single word name
-                                                of the Library Class that module developers will use
-                                                to identify a library class dependency.
-                                            </xs:documentation>
+                                            <xs:documentation xml:lang="en-us"> The single word name of the Library
+                                                Class that module developers will use to identify a library class
+                                                dependency. </xs:documentation>
                                         </xs:annotation>
                                     </xs:attribute>
                                     <xs:attributeGroup ref="SupportedArchMod"/>
@@ -505,28 +516,23 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
                 <xs:element minOccurs="0" maxOccurs="1" name="IndustryStandardIncludes">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> This section is used to list header
-                            files for industry standards not under the auspices of UEFI.org. For
-                            example, headers that contain definitions and data structures for the
-                            USB specifications. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> This section is used to list header files for industry
+                            standards not under the auspices of UEFI.org. For example, headers that contain definitions
+                            and data structures for the USB specifications. </xs:documentation>
                     </xs:annotation>
                     <xs:complexType>
                         <xs:sequence>
-                            <xs:element minOccurs="1" maxOccurs="unbounded"
-                                name="IndustryStandardHeader">
+                            <xs:element minOccurs="1" maxOccurs="unbounded" name="IndustryStandardHeader">
                                 <xs:complexType>
                                     <xs:sequence>
-                                        <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile"
-                                            type="xs:anyURI">
+                                        <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile" type="xs:anyURI">
                                             <xs:annotation>
-                                                <xs:documentation xml:lang="en-us"> The package
-                                                  relative path and filename (in the content zip
-                                                  file) of the industry standard include file.
-                                                </xs:documentation>
+                                                <xs:documentation xml:lang="en-us"> The package relative path and
+                                                    filename (in the content zip file) of the industry standard include
+                                                    file. </xs:documentation>
                                             </xs:annotation>
                                         </xs:element>
-                                        <xs:element ref="HelpText" minOccurs="0"
-                                            maxOccurs="unbounded"/>
+                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
                                     </xs:sequence>
                                 </xs:complexType>
                             </xs:element>
@@ -537,13 +543,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
                 <xs:element minOccurs="0" maxOccurs="1" name="PackageIncludes">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> All top level header files that are
-                            included by a package that are not listed above. They cannot
-                            be:</xs:documentation>
+                        <xs:documentation xml:lang="en-us"> All top level header files that are included by a package
+                            that are not listed above. They cannot be:</xs:documentation>
                         <xs:documentation xml:lang="en-us"> 1) Local to a module (module specific.) </xs:documentation>
                         <xs:documentation xml:lang="en-us"> 2) An industry standard header. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> 3) A library class header.
-                        </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> 3) A library class header. </xs:documentation>
                     </xs:annotation>
                     <xs:complexType>
                         <xs:sequence>
@@ -552,20 +556,19 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                                     <xs:sequence>
                                         <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile">
                                             <xs:annotation>
-                                                <xs:documentation xml:lang="en-us"> This is the
-                                                  Package relative path and filename location within
-                                                  the content ZIP file. </xs:documentation>
+                                                <xs:documentation xml:lang="en-us"> This is the Package relative path
+                                                    and filename location within the content ZIP file.
+                                                </xs:documentation>
                                             </xs:annotation>
                                             <xs:complexType>
                                                 <xs:simpleContent>
-                                                  <xs:extension base="xs:anyURI">
-                                                  <xs:attributeGroup ref="SupportedArchMod"/>
-                                                  </xs:extension>
+                                                    <xs:extension base="xs:anyURI">
+                                                        <xs:attributeGroup ref="SupportedArchMod"/>
+                                                    </xs:extension>
                                                 </xs:simpleContent>
                                             </xs:complexType>
                                         </xs:element>
-                                        <xs:element ref="HelpText" minOccurs="0"
-                                            maxOccurs="unbounded"/>
+                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
                                     </xs:sequence>
                                 </xs:complexType>
                             </xs:element>
@@ -579,9 +582,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                         <xs:sequence>
                             <xs:element ref="ModuleSurfaceArea" minOccurs="1" maxOccurs="unbounded">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> This section lists the
-                                        Module Surface Area for all modules provided with this
-                                        package. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> This section lists the Module Surface Area for
+                                        all modules provided with this package. </xs:documentation>
                                 </xs:annotation>
                             </xs:element>
                         </xs:sequence>
@@ -591,31 +593,26 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
                 <xs:element minOccurs="0" maxOccurs="1" name="GuidDeclarations">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> This section defines the mapping of GUID
-                            C names to GUID values as a Registry Format GUID. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> Modules that use these GUIDs must
-                            specify their dependency on this package. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> This section defines the mapping of GUID C names to GUID
+                            values as a Registry Format GUID. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> Modules that use these GUIDs must specify their dependency
+                            on this package. </xs:documentation>
                     </xs:annotation>
                     <xs:complexType>
                         <xs:sequence>
                             <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> Individual GUID Declarations
-                                    </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> Individual GUID Declarations </xs:documentation>
                                 </xs:annotation>
                                 <xs:complexType>
                                     <xs:sequence>
-                                        <xs:element minOccurs="1" maxOccurs="1" name="CName"
-                                            type="xs:NCName"/>
+                                        <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
                                         <xs:element minOccurs="1" maxOccurs="1" name="GuidValue"
                                             type="RegistryFormatGuid"/>
-                                        <xs:element ref="HelpText" minOccurs="0"
-                                            maxOccurs="unbounded"/>
+                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
                                     </xs:sequence>
-                                    <xs:attribute name="UiName" type="xs:normalizedString"
-                                        use="optional"/>
-                                    <xs:attribute name="GuidTypes" type="GuidListType"
-                                        use="optional"/>
+                                    <xs:attribute name="UiName" type="xs:normalizedString" use="optional"/>
+                                    <xs:attribute name="GuidTypes" type="GuidListType" use="optional"/>
                                     <xs:attributeGroup ref="SupportedArchMod"/>
                                 </xs:complexType>
                             </xs:element>
@@ -626,29 +623,26 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
                 <xs:element minOccurs="0" maxOccurs="1" name="ProtocolDeclarations">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> This section defines the mapping of
-                            Protocol C names to GUID values as a Registry Format GUID. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> Modules that use these Protocols must
-                            specify their dependency on this package. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> This section defines the mapping of Protocol C names to GUID
+                            values as a Registry Format GUID. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> Modules that use these Protocols must specify their
+                            dependency on this package. </xs:documentation>
                     </xs:annotation>
                     <xs:complexType>
                         <xs:sequence>
                             <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> Individual Protocol
-                                        Declarations </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> Individual Protocol Declarations
+                                    </xs:documentation>
                                 </xs:annotation>
                                 <xs:complexType>
                                     <xs:sequence>
-                                        <xs:element minOccurs="1" maxOccurs="1" name="CName"
-                                            type="xs:NCName"/>
+                                        <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
                                         <xs:element minOccurs="1" maxOccurs="1" name="GuidValue"
                                             type="RegistryFormatGuid"/>
-                                        <xs:element ref="HelpText" minOccurs="0"
-                                            maxOccurs="unbounded"/>
+                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
                                     </xs:sequence>
-                                    <xs:attribute name="UiName" type="xs:normalizedString"
-                                        use="optional"/>
+                                    <xs:attribute name="UiName" type="xs:normalizedString" use="optional"/>
                                     <xs:attributeGroup ref="SupportedArchMod"/>
                                 </xs:complexType>
                             </xs:element>
@@ -659,29 +653,25 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
                 <xs:element minOccurs="0" maxOccurs="1" name="PpiDeclarations">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> This section defines the mapping of Ppi
-                            C names to GUID values as a Registry Format GUID. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> Modules that use these Ppis must specify
-                            their dependency on this package. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> This section defines the mapping of Ppi C names to GUID
+                            values as a Registry Format GUID. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> Modules that use these Ppis must specify their dependency on
+                            this package. </xs:documentation>
                     </xs:annotation>
                     <xs:complexType>
                         <xs:sequence>
                             <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> Individual PPI Declarations
-                                    </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> Individual PPI Declarations </xs:documentation>
                                 </xs:annotation>
                                 <xs:complexType>
                                     <xs:sequence>
-                                        <xs:element minOccurs="1" maxOccurs="1" name="CName"
-                                            type="xs:NCName"/>
+                                        <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
                                         <xs:element minOccurs="1" maxOccurs="1" name="GuidValue"
                                             type="RegistryFormatGuid"/>
-                                        <xs:element ref="HelpText" minOccurs="0"
-                                            maxOccurs="unbounded"/>
+                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
                                     </xs:sequence>
-                                    <xs:attribute name="UiName" type="xs:normalizedString"
-                                        use="optional"/>
+                                    <xs:attribute name="UiName" type="xs:normalizedString" use="optional"/>
                                     <xs:attributeGroup ref="SupportedArchMod"/>
                                 </xs:complexType>
                             </xs:element>
@@ -692,63 +682,54 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
                 <xs:element minOccurs="0" maxOccurs="1" name="PcdDeclarations">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> This section is used to declare platform
-                            configuration knobs that are defined by this package. </xs:documentation>
-                        <xs:documentation xml:lang="en-us"> Modules that use these PCD values must
-                            specify their dependency on this package. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> This section is used to declare platform configuration knobs
+                            that are defined by this package. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> Modules that use these PCD values must specify their
+                            dependency on this package. </xs:documentation>
                     </xs:annotation>
                     <xs:complexType>
                         <xs:sequence>
                             <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">
                                 <xs:complexType>
                                     <xs:sequence>
-                                        <xs:element minOccurs="1" maxOccurs="1"
-                                            name="TokenSpaceGuidCname" type="xs:NCName">
+                                        <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCname"
+                                            type="xs:NCName">
                                             <xs:annotation>
-                                                <xs:documentation xml:lang="en-us"> Specifies the C
-                                                  name of the Token Space GUID of which this PCD
-                                                  Entry is a member. This C name should also be
-                                                  listed in the GUIDs section, (specified above,)
-                                                  where the C name is assigned to a GUID value.
-                                                </xs:documentation>
+                                                <xs:documentation xml:lang="en-us"> Specifies the C name of the Token
+                                                    Space GUID of which this PCD Entry is a member. This C name should
+                                                    also be listed in the GUIDs section, (specified above,) where the C
+                                                    name is assigned to a GUID value. </xs:documentation>
                                             </xs:annotation>
                                         </xs:element>
                                         <xs:element minOccurs="1" maxOccurs="1" name="Token">
                                             <xs:annotation>
-                                                <xs:documentation xml:lang="en-us"> Specifies the
-                                                  32-bit token value for this PCD Entry. The Token
-                                                  number must be unique to the Token Space that
-                                                  declares the PCD. </xs:documentation>
-                                                <xs:documentation xml:lang="en-us"> The minLength of
-                                                  3 is required to handle the "0x" prefix to the hex
-                                                  number. </xs:documentation>
+                                                <xs:documentation xml:lang="en-us"> Specifies the 32-bit token value for
+                                                    this PCD Entry. The Token number must be unique to the Token Space
+                                                    that declares the PCD. </xs:documentation>
+                                                <xs:documentation xml:lang="en-us"> The minLength of 3 is required to
+                                                    handle the "0x" prefix to the hex number. </xs:documentation>
                                             </xs:annotation>
                                             <xs:simpleType>
                                                 <xs:restriction base="HexNumber">
-                                                  <xs:minLength value="3"/>
-                                                  <xs:maxLength value="10"/>
+                                                    <xs:minLength value="3"/>
+                                                    <xs:maxLength value="10"/>
                                                 </xs:restriction>
                                             </xs:simpleType>
                                         </xs:element>
-                                        <xs:element minOccurs="1" maxOccurs="1" name="CName"
-                                            type="xs:NCName"/>
-                                        <xs:element minOccurs="1" maxOccurs="1" name="DatumType"
-                                            type="PcdDatumTypes">
+                                        <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
+                                        <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDatumTypes">
                                             <xs:annotation>
-                                                <xs:documentation xml:lang="en-us"> A string that
-                                                  contains the data type of this PCD Entry. PCD data
-                                                  types are restricted to the following set:UINT8,
-                                                  UINT16, UINT32, UINT64, VOID*, BOOLEAN.
+                                                <xs:documentation xml:lang="en-us"> A string that contains the data type
+                                                    of this PCD Entry. PCD data types are restricted to the following
+                                                    set:UINT8, UINT16, UINT32, UINT64, VOID*, BOOLEAN.
                                                 </xs:documentation>
                                             </xs:annotation>
                                         </xs:element>
-                                        <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage"
-                                            type="PcdItemListType">
+                                        <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" type="PcdItemListType">
                                             <xs:annotation>
-                                                <xs:documentation xml:lang="en-us"> A string that
-                                                  contains one or more PCD Item types separated by
-                                                  spaces. The PCD Item types are restricted to
-                                                  FeaturePcd, FixedPcd, PatchPcd, Pcd and/or PcdEx.
+                                                <xs:documentation xml:lang="en-us"> A string that contains one or more
+                                                    PCD Item types separated by spaces. The PCD Item types are
+                                                    restricted to FeaturePcd, FixedPcd, PatchPcd, Pcd and/or PcdEx.
                                                 </xs:documentation>
                                             </xs:annotation>
                                         </xs:element>
@@ -756,118 +737,118 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                                             type="xs:normalizedString"/>
                                         <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize">
                                             <xs:annotation>
-                                                <xs:documentation xml:lang="en-us"> This is a
-                                                  recommended maximum data size for VOID* data
-                                                  types, the actual value should be defined by the
-                                                  Platform Integrator. It is not required for the
-                                                  other data types. </xs:documentation>
-                                                <xs:documentation xml:lang="en-us"> The minLength of
-                                                  3 is required to handle the "0x" prefix to the hex
-                                                  number. </xs:documentation>
+                                                <xs:documentation xml:lang="en-us"> This is a recommended maximum data
+                                                    size for VOID* data types, the actual value should be defined by the
+                                                    Platform Integrator. It is not required for the other data types. </xs:documentation>
+                                                <xs:documentation xml:lang="en-us"> The minLength of 3 is required to
+                                                    handle the "0x" prefix to the hex number. </xs:documentation>
 
                                             </xs:annotation>
                                             <xs:simpleType>
                                                 <xs:restriction base="HexNumber">
-                                                  <xs:minLength value="3"/>
+                                                    <xs:minLength value="3"/>
                                                 </xs:restriction>
                                             </xs:simpleType>
                                         </xs:element>
-                                        <xs:element ref="HelpText" minOccurs="0"
-                                            maxOccurs="unbounded"/>
+                                        <xs:element minOccurs="0" maxOccurs="unbounded" name="Prompt">
+                                            <xs:annotation>
+                                                <xs:documentation xml:lang="en-US"> This entry contains prompt
+                                                    information, that may used by tools to assist platform integrators
+                                                    with choosing the correct values </xs:documentation>
+                                            </xs:annotation>
+                                            <xs:complexType>
+                                                <xs:simpleContent>
+                                                    <xs:extension base="xs:string">
+                                                        <xs:attribute name="Lang" type="xs:language" default="en-us"
+                                                            use="optional"/>
+                                                    </xs:extension>
+                                                </xs:simpleContent>
+                                            </xs:complexType>
+                                        </xs:element>
+                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
 
-                                        <xs:element minOccurs="0" maxOccurs="unbounded"
-                                            name="PcdError">
+                                        <xs:element minOccurs="0" maxOccurs="unbounded" name="PcdError">
                                             <xs:annotation>
-                                                <xs:documentation xml:lang="en-us"> Valid Error
-                                                  messages that may be implemented in a module for
-                                                  the PCD Entry. Only One Error Number per PcdError,
-                                                  (multiple ErrorMessage entries are permitted) and
-                                                  multiple PcdError elements are permitted.
-                                                </xs:documentation>
+                                                <xs:documentation xml:lang="en-us"> Valid Error messages that may be
+                                                    implemented in a module for the PCD Entry. Only One Error Number per
+                                                    PcdError, (multiple ErrorMessage entries are permitted) and multiple
+                                                    PcdError elements are permitted. </xs:documentation>
                                             </xs:annotation>
                                             <xs:complexType>
                                                 <xs:sequence>
-                                                  <xs:choice minOccurs="1" maxOccurs="1">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> One of the
-                                                  following types of comparisons, which must be able
-                                                  to evaluate to either true or false.
-                                                  </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:element minOccurs="0" maxOccurs="1"
-                                                  name="ValidValueList">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The PCD Value
-                                                  must be space separated list of values. Values are
-                                                  restricted to the data type of this PCD.
-                                                  </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:complexType>
-                                                  <xs:simpleContent>
-                                                  <xs:extension base="xs:normalizedString">
-                                                  <xs:attribute name="Lang" type="xs:language"
-                                                  use="optional"/>
-                                                  </xs:extension>
-                                                  </xs:simpleContent>
-                                                  </xs:complexType>
-                                                  </xs:element>
-                                                  <xs:element minOccurs="0" maxOccurs="1"
-                                                  name="ValidValueRange" type="xs:normalizedString">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The PCD must
-                                                  be within a specifed range of numeric values.
-                                                  Restricted to C style Relational, Equality and
-                                                  Logicial Operators and parenthesis are valid. Only
-                                                  the CName for this PCD is permitted in the
-                                                  ValidValueRange expression. All other values must
-                                                  be numeric.</xs:documentation>
-                                                  <xs:documentation xml:lang="en-us"> LValue (op
-                                                  RValue)+ </xs:documentation>
-                                                  </xs:annotation>
-                                                  </xs:element>
-                                                  <xs:element minOccurs="0" maxOccurs="1"
-                                                  name="Expression" type="xs:normalizedString">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> A in-fix
-                                                  logical expression using C style logical
-                                                  operators. </xs:documentation>
-                                                  </xs:annotation>
-                                                  </xs:element>
-                                                  </xs:choice>
-                                                  <xs:element minOccurs="1" maxOccurs="1"
-                                                  name="ErrorNumber">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> A hexadecimal
-                                                  value for the error message as defined by
-                                                  specifications. </xs:documentation>
-                                                  <xs:documentation xml:lang="en-us"> The minLength
-                                                  of 3 is required to handle the "0x" prefix to the
-                                                  hex number. </xs:documentation>
-
-                                                  </xs:annotation>
-                                                  <xs:simpleType>
-                                                  <xs:restriction base="HexNumber">
-                                                  <xs:minLength value="3"/>
-                                                  </xs:restriction>
-                                                  </xs:simpleType>
-                                                  </xs:element>
-                                                  <xs:element minOccurs="1" maxOccurs="unbounded"
-                                                  name="ErrorMessage">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> This string
-                                                  should be defined by specifications. There are
-                                                  pre-defined error number ranges in the UEFI/PI
-                                                  specificaiton. </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:complexType>
-                                                  <xs:simpleContent>
-                                                  <xs:extension base="xs:string">
-                                                  <xs:attribute name="Lang" type="xs:language"
-                                                  default="en-us" use="optional"/>
-                                                  </xs:extension>
-                                                  </xs:simpleContent>
-                                                  </xs:complexType>
-                                                  </xs:element>
+                                                    <xs:choice minOccurs="1" maxOccurs="1">
+                                                        <xs:annotation>
+                                                            <xs:documentation xml:lang="en-us"> One of the following
+                                                            types of comparisons, which must be able to evaluate to
+                                                            either true or false. </xs:documentation>
+                                                        </xs:annotation>
+                                                        <xs:element minOccurs="0" maxOccurs="1" name="ValidValueList">
+                                                            <xs:annotation>
+                                                            <xs:documentation xml:lang="en-us"> The PCD Value must be
+                                                            space separated list of values. Values are restricted to the
+                                                            data type of this PCD. </xs:documentation>
+                                                            </xs:annotation>
+                                                            <xs:complexType>
+                                                            <xs:simpleContent>
+                                                            <xs:extension base="xs:normalizedString">
+                                                            <xs:attribute name="Lang" type="xs:language" use="optional"
+                                                            />
+                                                            </xs:extension>
+                                                            </xs:simpleContent>
+                                                            </xs:complexType>
+                                                        </xs:element>
+                                                        <xs:element minOccurs="0" maxOccurs="1" name="ValidValueRange"
+                                                            type="xs:normalizedString">
+                                                            <xs:annotation>
+                                                            <xs:documentation xml:lang="en-us"> The PCD must be within a
+                                                            specifed range of numeric values. Restricted to C style
+                                                            Relational, Equality and Logicial Operators and parenthesis
+                                                            are valid. Only the CName for this PCD is permitted in the
+                                                            ValidValueRange expression. All other values must be
+                                                            numeric.</xs:documentation>
+                                                            <xs:documentation xml:lang="en-us"> LValue (op RValue)+
+                                                            </xs:documentation>
+                                                            </xs:annotation>
+                                                        </xs:element>
+                                                        <xs:element minOccurs="0" maxOccurs="1" name="Expression"
+                                                            type="xs:normalizedString">
+                                                            <xs:annotation>
+                                                            <xs:documentation xml:lang="en-us"> A in-fix logical
+                                                            expression using C style logical operators.
+                                                            </xs:documentation>
+                                                            </xs:annotation>
+                                                        </xs:element>
+                                                    </xs:choice>
+                                                    <xs:element minOccurs="1" maxOccurs="1" name="ErrorNumber">
+                                                        <xs:annotation>
+                                                            <xs:documentation xml:lang="en-us"> A hexadecimal value for
+                                                            the error message as defined by specifications. </xs:documentation>
+                                                            <xs:documentation xml:lang="en-us"> The minLength of 3 is
+                                                            required to handle the "0x" prefix to the hex number. </xs:documentation>
+
+                                                        </xs:annotation>
+                                                        <xs:simpleType>
+                                                            <xs:restriction base="HexNumber">
+                                                            <xs:minLength value="3"/>
+                                                            </xs:restriction>
+                                                        </xs:simpleType>
+                                                    </xs:element>
+                                                    <xs:element minOccurs="1" maxOccurs="unbounded" name="ErrorMessage">
+                                                        <xs:annotation>
+                                                            <xs:documentation xml:lang="en-us"> This string should be
+                                                            defined by specifications. There are pre-defined error
+                                                            number ranges in the UEFI/PI specificaiton.
+                                                            </xs:documentation>
+                                                        </xs:annotation>
+                                                        <xs:complexType>
+                                                            <xs:simpleContent>
+                                                            <xs:extension base="xs:string">
+                                                            <xs:attribute name="Lang" type="xs:language" default="en-us"
+                                                            use="optional"/>
+                                                            </xs:extension>
+                                                            </xs:simpleContent>
+                                                        </xs:complexType>
+                                                    </xs:element>
                                                 </xs:sequence>
                                             </xs:complexType>
                                         </xs:element>
@@ -882,22 +863,19 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
                 <xs:element minOccurs="0" maxOccurs="1" name="PcdRelationshipChecks">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> This section is used to describe any PCD
-                            interdependencies or relationships. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> This section is used to describe any PCD interdependencies
+                            or relationships. </xs:documentation>
                     </xs:annotation>
                     <xs:complexType>
                         <xs:sequence>
-                            <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdCheck"
-                                type="xs:normalizedString">
+                            <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdCheck" type="xs:normalizedString">
                                 <xs:annotation>
                                     <xs:documentation xml:lang="en-us"> This entry must used
-                                        TokenSpaceGuidCName.PcdCname for every named PCD. Restricted
-                                        to Relational, Equality and Logical Operators (NOT, AND, OR,
-                                        GT, GE, EQ, LE, LT and XOR) and parenthesis are valid. Only
-                                        the TokenSpaceGuidCName.PcdCname us permitted to name PCDs
-                                        in the expression. All other values must be numeric. </xs:documentation>
-                                    <xs:documentation xml:lang="en-us"> LValue (op RValue)+
-                                    </xs:documentation>
+                                        TokenSpaceGuidCName.PcdCname for every named PCD. Restricted to Relational,
+                                        Equality and Logical Operators (NOT, AND, OR, GT, GE, EQ, LE, LT and XOR) and
+                                        parenthesis are valid. Only the TokenSpaceGuidCName.PcdCname us permitted to
+                                        name PCDs in the expression. All other values must be numeric. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> LValue (op RValue)+ </xs:documentation>
                                 </xs:annotation>
                             </xs:element>
                         </xs:sequence>
@@ -906,53 +884,49 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="MiscellaneousFiles">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> This section contains files that are not
-                            part of the code distributed with this package. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> This section contains files that are not part of the code
+                            distributed with this package. </xs:documentation>
                     </xs:annotation>
                     <xs:complexType>
                         <xs:sequence>
-                            <xs:element minOccurs="0" maxOccurs="1" name="Copyright"
-                                type="xs:string">
+                            <xs:element minOccurs="0" maxOccurs="1" name="Copyright" type="xs:string">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> Only required if different
-                                        from the Package Copyright. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> Only required if different from the Package
+                                        Copyright. </xs:documentation>
                                 </xs:annotation>
                             </xs:element>
                             <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> Only required if different
-                                        from the Package License. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> Only required if different from the Package
+                                        License. </xs:documentation>
                                 </xs:annotation>
                             </xs:element>
                             <xs:element minOccurs="0" maxOccurs="1" name="Abstract" type="xs:string">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> A one line description of
-                                        this section's content. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> A one line description of this section's
+                                        content. </xs:documentation>
                                 </xs:annotation>
                             </xs:element>
-                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Description"
-                                type="xs:string">
+                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Description" type="xs:string">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> A complete description of
-                                        the files in this section. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> A complete description of the files in this
+                                        section. </xs:documentation>
                                 </xs:annotation>
                             </xs:element>
                             <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> This is the PackagePath
-                                        relative path and filename location within the ZIP file.
-                                    </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> This is the PackagePath relative path and
+                                        filename location within the ZIP file. </xs:documentation>
                                 </xs:annotation>
                                 <xs:complexType>
                                     <xs:simpleContent>
                                         <xs:extension base="xs:anyURI">
-                                            <xs:attribute name="Executable" type="xs:boolean"
-                                                default="false" use="optional">
+                                            <xs:attribute name="Executable" type="xs:boolean" default="false"
+                                                use="optional">
                                                 <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> If true, used
-                                                  by installation tools to ensure that a file that
-                                                  must be executable has the correct properties to
-                                                  permit execution. </xs:documentation>
+                                                    <xs:documentation xml:lang="en-us"> If true, used by installation
+                                                        tools to ensure that a file that must be executable has the
+                                                        correct properties to permit execution. </xs:documentation>
                                                 </xs:annotation>
                                             </xs:attribute>
                                         </xs:extension>
@@ -967,9 +941,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="UserExtensions">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> This section is used for any processing
-                            instructions that may be custom to the content provided by this package
-                            that are common to this package. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> This section is used for any processing instructions that
+                            may be custom to the content provided by this package that are common to this package.
+                        </xs:documentation>
                     </xs:annotation>
                     <xs:complexType mixed="true">
                         <xs:sequence>
@@ -977,22 +951,20 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                         </xs:sequence>
                         <xs:attribute name="UserId" type="xs:NCName" use="required">
                             <xs:annotation>
-                                <xs:documentation xml:lang="en-us"> This is a single word identifier
-                                    for grouping similar content that does not fit into previously
-                                    defined sections or other sections of the Distribution.
-                                </xs:documentation>
+                                <xs:documentation xml:lang="en-us"> This is a single word identifier for grouping
+                                    similar content that does not fit into previously defined sections or other sections
+                                    of the Distribution. </xs:documentation>
                             </xs:annotation>
                         </xs:attribute>
                         <xs:attribute name="Identifier" type="xs:string" use="required">
                             <xs:annotation>
-                                <xs:documentation xml:lang="en-us"> This can be used to
-                                    differentiate multiple sections with a grouping. </xs:documentation>
-                                <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS
-                                    Identifier might indicate specific steps and tools required
-                                    before processing module content, while a different
-                                    UserExtensions section with a POST_PROCESS Identifier might
-                                    describe steps that need to be executed after operations on the
-                                    modules in this package. </xs:documentation>
+                                <xs:documentation xml:lang="en-us"> This can be used to differentiate multiple sections
+                                    with a grouping. </xs:documentation>
+                                <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS Identifier might indicate
+                                    specific steps and tools required before processing module content, while a
+                                    different UserExtensions section with a POST_PROCESS Identifier might describe steps
+                                    that need to be executed after operations on the modules in this package.
+                                </xs:documentation>
                             </xs:annotation>
                         </xs:attribute>
                         <xs:anyAttribute processContents="lax"/>
@@ -1007,10 +979,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
     <xs:element name="ModuleSurfaceArea">
         <xs:annotation>
-            <xs:documentation xml:lang="en-us"> Each module is uniquely identified by it's GUID and
-                Version number. Backward compatible releases of a module need only change the
-                version number, while non-backward compatible changes require the GUID to change
-                (resetting the version number to 1.0 is optional.) </xs:documentation>
+            <xs:documentation xml:lang="en-us"> Each module is uniquely identified by it's GUID and Version number.
+                Backward compatible releases of a module need only change the version number, while non-backward
+                compatible changes require the GUID to change (resetting the version number to 1.0 is optional.)
+            </xs:documentation>
         </xs:annotation>
         <xs:complexType>
             <xs:sequence>
@@ -1020,21 +992,18 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                         <xs:sequence>
                             <xs:element minOccurs="1" maxOccurs="1" name="Name">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> This is the User Interface
-                                        Name for this Module. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> This is the User Interface Name for this Module.
+                                    </xs:documentation>
                                 </xs:annotation>
                                 <xs:complexType>
                                     <xs:simpleContent>
                                         <xs:extension base="xs:normalizedString">
-                                            <xs:attribute name="BaseName" type="xs:NMTOKEN"
-                                                use="required">
+                                            <xs:attribute name="BaseName" type="xs:NMTOKEN" use="required">
                                                 <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> This is a
-                                                  single word BaseName that will be used to create a
-                                                  module meta-data file. </xs:documentation>
-                                                  <xs:documentation xml:lang="en-us"> This name
-                                                  should also be used to create output file names
-                                                  and directories. </xs:documentation>
+                                                    <xs:documentation xml:lang="en-us"> This is a single word BaseName
+                                                        that will be used to create a module meta-data file. </xs:documentation>
+                                                    <xs:documentation xml:lang="en-us"> This name should also be used to
+                                                        create output file names and directories. </xs:documentation>
                                                 </xs:annotation>
                                             </xs:attribute>
                                         </xs:extension>
@@ -1043,63 +1012,84 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                             </xs:element>
                             <xs:element minOccurs="1" maxOccurs="1" name="GUID">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> This GUID and the Version
-                                        attribute uniquely identify a given Module.
-                                    </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> This GUID and the Version attribute uniquely
+                                        identify a given Module. </xs:documentation>
                                 </xs:annotation>
                                 <xs:complexType>
                                     <xs:simpleContent>
                                         <xs:extension base="RegistryFormatGuid">
-                                            <xs:attribute name="Version" type="xs:decimal"
-                                                use="required">
+                                            <xs:attribute name="Version" type="xs:decimal" use="required">
                                                 <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> This value,
-                                                  along with the GUID, is used to uniquely identify
-                                                  this object. </xs:documentation>
-                                                  <xs:documentation xml:lang="en-us"> Backward
-                                                  compatible changes must make sure this number is
-                                                  incremented from the most recent version.
-                                                  Non-backward compatible changes require a new
-                                                  GUID, and the version can be reset.
-                                                  </xs:documentation>
+                                                    <xs:documentation xml:lang="en-us"> This value, along with the GUID,
+                                                        is used to uniquely identify this object. </xs:documentation>
+                                                    <xs:documentation xml:lang="en-us"> Backward compatible changes must
+                                                        make sure this number is incremented from the most recent
+                                                        version. Non-backward compatible changes require a new GUID, and
+                                                        the version can be reset. </xs:documentation>
                                                 </xs:annotation>
                                             </xs:attribute>
                                         </xs:extension>
                                     </xs:simpleContent>
                                 </xs:complexType>
                             </xs:element>
-                            <xs:element minOccurs="0" maxOccurs="1" name="Copyright"
-                                type="xs:string">
+                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Copyright">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> This is only required if the
-                                        Copyright is different from either the Package or
-                                        Distribution copyright. Multiple copyright lines are
-                                        permitted within this section. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> This is only required if the Copyright is
+                                        different from either the Package or Distribution copyright. Multiple copyright
+                                        lines are permitted within this section. </xs:documentation>
                                 </xs:annotation>
+                                <xs:complexType>
+                                    <xs:simpleContent>
+                                        <xs:extension base="xs:string">
+                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
+                                            />
+                                        </xs:extension>
+                                    </xs:simpleContent>
+                                </xs:complexType>
                             </xs:element>
-                            <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">
+                            <xs:element minOccurs="0" maxOccurs="unbounded" name="License">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> This is only required if the
-                                        license is different from either the Package or Distribution
-                                        license. Multiple licenses are permitted within this
-                                        section. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> This is only required if the license is
+                                        different from either the Package or Distribution license. Multiple licenses are
+                                        permitted within this section. </xs:documentation>
                                 </xs:annotation>
+                                <xs:complexType>
+                                    <xs:simpleContent>
+                                        <xs:extension base="xs:string">
+                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
+                                            />
+                                        </xs:extension>
+                                    </xs:simpleContent>
+                                </xs:complexType>
                             </xs:element>
-                            <xs:element minOccurs="0" maxOccurs="1" name="Abstract"
-                                type="xs:normalizedString">
+                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Abstract">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> A brief text description of
-                                        the module. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> A brief text description of the module.
+                                    </xs:documentation>
                                 </xs:annotation>
+                                <xs:complexType>
+                                    <xs:simpleContent>
+                                        <xs:extension base="xs:normalizedString">
+                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
+                                            />
+                                        </xs:extension>
+                                    </xs:simpleContent>
+                                </xs:complexType>
                             </xs:element>
-                            <xs:element minOccurs="0" maxOccurs="1" name="Description"
-                                type="xs:string">
+                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> A complete description of
-                                        the module contents and/or features including a description
-                                        of the updates since the previous module release.
-                                    </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> A complete description of the module contents
+                                        and/or features including a description of the updates since the previous module
+                                        release. </xs:documentation>
                                 </xs:annotation>
+                                <xs:complexType>
+                                    <xs:simpleContent>
+                                        <xs:extension base="xs:string">
+                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
+                                            />
+                                        </xs:extension>
+                                    </xs:simpleContent>
+                                </xs:complexType>
                             </xs:element>
                         </xs:sequence>
                     </xs:complexType>
@@ -1108,35 +1098,31 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
                 <xs:element minOccurs="0" maxOccurs="1" name="ModuleProperties">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> List general information about a module,
-                            including the Supported Architectures, this module's type,
-                            specifications the module is coded against, and other informational
-                            content. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> List general information about a module, including the
+                            Supported Architectures, this module's type, specifications the module is coded against, and
+                            other informational content. </xs:documentation>
                     </xs:annotation>
                     <xs:complexType>
                         <xs:sequence>
-                            <xs:element minOccurs="1" maxOccurs="1" name="ModuleType"
-                                type="ModuleTypes">
+                            <xs:element minOccurs="1" maxOccurs="1" name="ModuleType" type="ModuleTypes">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> One of the Enumerated module
-                                        types that limit the use of a module. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> One of the Enumerated module types that limit
+                                        the use of a module. </xs:documentation>
                                 </xs:annotation>
                             </xs:element>
                             <xs:element minOccurs="1" maxOccurs="1" name="Path" type="xs:anyURI">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> For stand-alone modules that
-                                        are NOT part of any package, this is the path to the root of
-                                        the module as listed in the ZIP file. For modules included
-                                        in a package, this is the location, relative to the root of
-                                        the package (PackagePath) this module belongs to.
-                                    </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> For stand-alone modules that are NOT part of any
+                                        package, this is the path to the root of the module as listed in the ZIP file.
+                                        For modules included in a package, this is the location, relative to the root of
+                                        the package (PackagePath) this module belongs to. </xs:documentation>
                                 </xs:annotation>
                             </xs:element>
                             <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> This element is only
-                                        required for the PEIM that produces the PCD PPI or the DXE
-                                        Driver that produces the PCD Protocol. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> This element is only required for the PEIM that
+                                        produces the PCD PPI or the DXE Driver that produces the PCD Protocol.
+                                    </xs:documentation>
                                 </xs:annotation>
                                 <xs:simpleType>
                                     <xs:restriction base="xs:NCName">
@@ -1146,25 +1132,21 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                                 </xs:simpleType>
                             </xs:element>
 
-                            <xs:element minOccurs="0" maxOccurs="1" name="UefiSpecificationVersion"
-                                type="xs:decimal"/>
+                            <xs:element minOccurs="0" maxOccurs="1" name="UefiSpecificationVersion" type="xs:decimal"/>
 
-                            <xs:element minOccurs="0" maxOccurs="1" name="PiSpecificationVersion"
-                                type="xs:decimal"/>
+                            <xs:element minOccurs="0" maxOccurs="1" name="PiSpecificationVersion" type="xs:decimal"/>
 
                             <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> This is a list of other
-                                        specifications that this module is written against. These
-                                        entries can be used in #define statements (depending on the
-                                        build system implementation, they may be autogenerated.)
+                                    <xs:documentation xml:lang="en-us"> This is a list of other specifications that this
+                                        module is written against. These entries can be used in #define statements
+                                        (depending on the build system implementation, they may be autogenerated.)
                                     </xs:documentation>
                                 </xs:annotation>
                                 <xs:complexType>
                                     <xs:simpleContent>
                                         <xs:extension base="xs:NCName">
-                                            <xs:attribute name="Version" type="xs:decimal"
-                                                use="required"/>
+                                            <xs:attribute name="Version" type="xs:decimal" use="required"/>
                                         </xs:extension>
                                     </xs:simpleContent>
                                 </xs:complexType>
@@ -1172,156 +1154,139 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
                             <xs:element minOccurs="0" maxOccurs="unbounded" name="BootMode">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> Different firmware execution
-                                        paths may be taken based on a given state of the hardware,
-                                        firmware, or through feature settings. A BootMode may be
-                                        declared (PRODUCES) or discovered (CONSUMES) based on these
-                                        states and feature settings. If the usage is UNDEFINE, it
-                                        implies that a Boot Mode is used, but the package creator
-                                        does not know how it is used. The supported boot modes map
-                                        to the PI specification Boot Modes. The boot modes listed
-                                        with Recovery are to indicate that the BootMode is valid
-                                        during a recovery boot. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> Different firmware execution paths may be taken
+                                        based on a given state of the hardware, firmware, or through feature settings. A
+                                        BootMode may be declared (PRODUCES) or discovered (CONSUMES) based on these
+                                        states and feature settings. If the usage is UNDEFINE, it implies that a Boot
+                                        Mode is used, but the package creator does not know how it is used. The
+                                        supported boot modes map to the PI specification Boot Modes. The boot modes
+                                        listed with Recovery are to indicate that the BootMode is valid during a
+                                        recovery boot. </xs:documentation>
                                 </xs:annotation>
                                 <xs:complexType>
                                     <xs:sequence minOccurs="0">
-                                        <xs:element minOccurs="1" maxOccurs="1"
-                                            name="SupportedBootModes">
+                                        <xs:element minOccurs="1" maxOccurs="1" name="SupportedBootModes">
                                             <xs:simpleType>
                                                 <xs:list>
-                                                  <xs:simpleType>
-                                                  <xs:restriction base="xs:NCName">
-                                                  <xs:enumeration value="FULL"/>
-                                                  <xs:enumeration value="MINIMAL"/>
-                                                  <xs:enumeration value="NO_CHANGE"/>
-                                                  <xs:enumeration value="DIAGNOSTICS"/>
-                                                  <xs:enumeration value="DEFAULT"/>
-                                                  <xs:enumeration value="S2_RESUME"/>
-                                                  <xs:enumeration value="S3_RESUME"/>
-                                                  <xs:enumeration value="S4_RESUME"/>
-                                                  <xs:enumeration value="S5_RESUME"/>
-                                                  <xs:enumeration value="FLASH_UPDATE"/>
-                                                  <xs:enumeration value="RECOVERY_FULL"/>
-                                                  <xs:enumeration value="RECOVERY_MINIMAL"/>
-                                                  <xs:enumeration value="RECOVERY_NO_CHANGE"/>
-                                                  <xs:enumeration value="RECOVERY_DIAGNOSTICS"/>
-                                                  <xs:enumeration value="RECOVERY_DEFAULT"/>
-                                                  <xs:enumeration value="RECOVERY_S2_RESUME"/>
-                                                  <xs:enumeration value="RECOVERY_S3_RESUME"/>
-                                                  <xs:enumeration value="RECOVERY_S4_RESUME"/>
-                                                  <xs:enumeration value="RECOVERY_S5_RESUME"/>
-                                                  <xs:enumeration value="RECOVERY_FLASH_UPDATE"/>
-                                                  <xs:enumeration value="UNDEFINED"/>
-                                                  </xs:restriction>
-                                                  </xs:simpleType>
+                                                    <xs:simpleType>
+                                                        <xs:restriction base="xs:NCName">
+                                                            <xs:enumeration value="FULL"/>
+                                                            <xs:enumeration value="MINIMAL"/>
+                                                            <xs:enumeration value="NO_CHANGE"/>
+                                                            <xs:enumeration value="DIAGNOSTICS"/>
+                                                            <xs:enumeration value="DEFAULT"/>
+                                                            <xs:enumeration value="S2_RESUME"/>
+                                                            <xs:enumeration value="S3_RESUME"/>
+                                                            <xs:enumeration value="S4_RESUME"/>
+                                                            <xs:enumeration value="S5_RESUME"/>
+                                                            <xs:enumeration value="FLASH_UPDATE"/>
+                                                            <xs:enumeration value="RECOVERY_FULL"/>
+                                                            <xs:enumeration value="RECOVERY_MINIMAL"/>
+                                                            <xs:enumeration value="RECOVERY_NO_CHANGE"/>
+                                                            <xs:enumeration value="RECOVERY_DIAGNOSTICS"/>
+                                                            <xs:enumeration value="RECOVERY_DEFAULT"/>
+                                                            <xs:enumeration value="RECOVERY_S2_RESUME"/>
+                                                            <xs:enumeration value="RECOVERY_S3_RESUME"/>
+                                                            <xs:enumeration value="RECOVERY_S4_RESUME"/>
+                                                            <xs:enumeration value="RECOVERY_S5_RESUME"/>
+                                                            <xs:enumeration value="RECOVERY_FLASH_UPDATE"/>
+                                                            <xs:enumeration value="UNDEFINED"/>
+                                                        </xs:restriction>
+                                                    </xs:simpleType>
                                                 </xs:list>
                                             </xs:simpleType>
                                         </xs:element>
 
-                                        <xs:element ref="HelpText" minOccurs="0"
-                                            maxOccurs="unbounded"/>
+                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
                                     </xs:sequence>
                                     <xs:attribute name="Usage" use="required">
                                         <xs:simpleType>
                                             <xs:restriction base="xs:NCName">
                                                 <xs:enumeration value="CONSUMES">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The module
-                                                  always supports the given boot modes.
-                                                  </xs:documentation>
-                                                  </xs:annotation>
+                                                    <xs:annotation>
+                                                        <xs:documentation xml:lang="en-us"> The module always supports
+                                                            the given boot modes. </xs:documentation>
+                                                    </xs:annotation>
                                                 </xs:enumeration>
                                                 <xs:enumeration value="SOMETIMES_CONSUMES">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The module may
-                                                  support a given mode on some execution paths.
-                                                  </xs:documentation>
-                                                  </xs:annotation>
+                                                    <xs:annotation>
+                                                        <xs:documentation xml:lang="en-us"> The module may support a
+                                                            given mode on some execution paths. </xs:documentation>
+                                                    </xs:annotation>
                                                 </xs:enumeration>
                                                 <xs:enumeration value="PRODUCES">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The module
-                                                  will change the boot mode. </xs:documentation>
-                                                  </xs:annotation>
+                                                    <xs:annotation>
+                                                        <xs:documentation xml:lang="en-us"> The module will change the
+                                                            boot mode. </xs:documentation>
+                                                    </xs:annotation>
                                                 </xs:enumeration>
                                                 <xs:enumeration value="SOMETIME_PRODUCES">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The module
-                                                  will change the boot mode on some exection paths.
-                                                  </xs:documentation>
-                                                  </xs:annotation>
+                                                    <xs:annotation>
+                                                        <xs:documentation xml:lang="en-us"> The module will change the
+                                                            boot mode on some exection paths. </xs:documentation>
+                                                    </xs:annotation>
                                                 </xs:enumeration>
                                                 <xs:enumeration value="UNDEFINED">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The package
-                                                  creator does not know how the boot mode is used.
-                                                  </xs:documentation>
-                                                  </xs:annotation>
+                                                    <xs:annotation>
+                                                        <xs:documentation xml:lang="en-us"> The package creator does not
+                                                            know how the boot mode is used. </xs:documentation>
+                                                    </xs:annotation>
                                                 </xs:enumeration>
                                             </xs:restriction>
                                         </xs:simpleType>
                                     </xs:attribute>
-                                    <xs:attribute name="SupArchList" type="ArchListType"
-                                        use="optional"/>
-                                    <xs:attribute name="FeatureFlag" type="xs:normalizedString"
-                                        use="optional"/>
+                                    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+                                    <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
                                 </xs:complexType>
                             </xs:element>
 
-                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Event"
-                                nillable="true">
+                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Event" nillable="true">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> The functions that make up
-                                        the Event, Timer, and Task Priority Services are used during
-                                        preboot to create, close, signal, and wait for events; to
-                                        set timers; and to raise and restore task priority levels as
-                                        defined in the UEFI specification. GUIDed events should be
-                                        listed in the Guids section. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> The functions that make up the Event, Timer, and
+                                        Task Priority Services are used during preboot to create, close, signal, and
+                                        wait for events; to set timers; and to raise and restore task priority levels as
+                                        defined in the UEFI specification. GUIDed events should be listed in the Guids
+                                        section. </xs:documentation>
                                 </xs:annotation>
                                 <xs:complexType>
                                     <xs:sequence>
-                                        <xs:element ref="HelpText" minOccurs="0"
-                                            maxOccurs="unbounded"/>
+                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
                                     </xs:sequence>
                                     <xs:attribute name="Usage" use="required">
                                         <xs:simpleType>
                                             <xs:restriction base="xs:NCName">
                                                 <xs:enumeration value="CONSUMES">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The module
-                                                  will register a notification function and calls
-                                                  the function when it is signaled.
-                                                  </xs:documentation>
-                                                  </xs:annotation>
+                                                    <xs:annotation>
+                                                        <xs:documentation xml:lang="en-us"> The module will register a
+                                                            notification function and calls the function when it is
+                                                            signaled. </xs:documentation>
+                                                    </xs:annotation>
                                                 </xs:enumeration>
                                                 <xs:enumeration value="SOMETIMES_CONSUMES">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The module
-                                                  will register a notification function and calls
-                                                  the function when it is signaled on some execution
-                                                  paths. </xs:documentation>
-                                                  </xs:annotation>
+                                                    <xs:annotation>
+                                                        <xs:documentation xml:lang="en-us"> The module will register a
+                                                            notification function and calls the function when it is
+                                                            signaled on some execution paths. </xs:documentation>
+                                                    </xs:annotation>
                                                 </xs:enumeration>
                                                 <xs:enumeration value="PRODUCES">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The module
-                                                  will signal all events in an event group.
-                                                  </xs:documentation>
-                                                  </xs:annotation>
+                                                    <xs:annotation>
+                                                        <xs:documentation xml:lang="en-us"> The module will signal all
+                                                            events in an event group. </xs:documentation>
+                                                    </xs:annotation>
                                                 </xs:enumeration>
                                                 <xs:enumeration value="SOMETIMES_PRODUCES">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The module
-                                                  will signal all events in an event group under
-                                                  some execution paths. </xs:documentation>
-                                                  </xs:annotation>
+                                                    <xs:annotation>
+                                                        <xs:documentation xml:lang="en-us"> The module will signal all
+                                                            events in an event group under some execution paths.
+                                                        </xs:documentation>
+                                                    </xs:annotation>
                                                 </xs:enumeration>
                                                 <xs:enumeration value="UNDEFINED">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The package
-                                                  creator does not know how an event is used.
-                                                  </xs:documentation>
-                                                  </xs:annotation>
+                                                    <xs:annotation>
+                                                        <xs:documentation xml:lang="en-us"> The package creator does not
+                                                            know how an event is used. </xs:documentation>
+                                                    </xs:annotation>
                                                 </xs:enumeration>
                                             </xs:restriction>
                                         </xs:simpleType>
@@ -1337,24 +1302,19 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
 
                                     </xs:attribute>
-                                    <xs:attribute name="SupArchList" type="ArchListType"
-                                        use="optional"/>
-                                    <xs:attribute name="FeatureFlag" type="xs:normalizedString"
-                                        use="optional"/>
+                                    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+                                    <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
                                 </xs:complexType>
                             </xs:element>
 
-                            <xs:element minOccurs="0" maxOccurs="unbounded" name="HOB"
-                                nillable="false">
+                            <xs:element minOccurs="0" maxOccurs="unbounded" name="HOB" nillable="false">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> This is a list of non-GUIDed
-                                        Hand Off Blocks (HOBs) produced or consumed by this module.
-                                    </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> This is a list of non-GUIDed Hand Off Blocks
+                                        (HOBs) produced or consumed by this module. </xs:documentation>
                                 </xs:annotation>
                                 <xs:complexType>
                                     <xs:sequence>
-                                        <xs:element ref="HelpText" minOccurs="0"
-                                            maxOccurs="unbounded"/>
+                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
                                     </xs:sequence>
                                     <xs:attribute name="HobType" use="required">
                                         <xs:simpleType>
@@ -1372,44 +1332,41 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                                         <xs:simpleType>
                                             <xs:restriction base="xs:NCName">
                                                 <xs:enumeration value="CONSUMES">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> A HOB must be
-                                                  present in the system. </xs:documentation>
-                                                  </xs:annotation>
+                                                    <xs:annotation>
+                                                        <xs:documentation xml:lang="en-us"> A HOB must be present in the
+                                                            system. </xs:documentation>
+                                                    </xs:annotation>
                                                 </xs:enumeration>
                                                 <xs:enumeration value="SOMETIMES_CONSUMES">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> If present,
-                                                  the HOB will be used. </xs:documentation>
-                                                  </xs:annotation>
+                                                    <xs:annotation>
+                                                        <xs:documentation xml:lang="en-us"> If present, the HOB will be
+                                                            used. </xs:documentation>
+                                                    </xs:annotation>
                                                 </xs:enumeration>
                                                 <xs:enumeration value="PRODUCES">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The HOB is
-                                                  always produced by the module. </xs:documentation>
-                                                  </xs:annotation>
+                                                    <xs:annotation>
+                                                        <xs:documentation xml:lang="en-us"> The HOB is always produced
+                                                            by the module. </xs:documentation>
+                                                    </xs:annotation>
                                                 </xs:enumeration>
                                                 <xs:enumeration value="SOMETIMES_PRODUCES">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The HOB may be
-                                                  produced by the module under some execution paths.
-                                                  </xs:documentation>
-                                                  </xs:annotation>
+                                                    <xs:annotation>
+                                                        <xs:documentation xml:lang="en-us"> The HOB may be produced by
+                                                            the module under some execution paths. </xs:documentation>
+                                                    </xs:annotation>
                                                 </xs:enumeration>
                                                 <xs:enumeration value="UNDEFINED">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The package
-                                                  creator knows that a HOB is used, but does not
-                                                  know how it is used. </xs:documentation>
-                                                  </xs:annotation>
+                                                    <xs:annotation>
+                                                        <xs:documentation xml:lang="en-us"> The package creator knows
+                                                            that a HOB is used, but does not know how it is used.
+                                                        </xs:documentation>
+                                                    </xs:annotation>
                                                 </xs:enumeration>
                                             </xs:restriction>
                                         </xs:simpleType>
                                     </xs:attribute>
-                                    <xs:attribute name="SupArchList" type="ArchListType"
-                                        use="optional"/>
-                                    <xs:attribute name="FeatureFlag" type="xs:normalizedString"
-                                        use="optional"/>
+                                    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+                                    <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
                                 </xs:complexType>
                             </xs:element>
 
@@ -1421,26 +1378,23 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
                 <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> This section may be included for Modules
-                            that are copied from a different module. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> This section may be included for Modules that are copied
+                            from a different module. </xs:documentation>
                     </xs:annotation>
                     <xs:complexType>
                         <xs:sequence>
                             <xs:element minOccurs="1" maxOccurs="1" name="GUID">
                                 <xs:annotation>
-                                    <xs:documentation xml:lang="en-us"> This GUID and the Version
-                                        attribute uniquely identify the Module that this Module was
-                                        copied from. </xs:documentation>
+                                    <xs:documentation xml:lang="en-us"> This GUID and the Version attribute uniquely
+                                        identify the Module that this Module was copied from. </xs:documentation>
                                 </xs:annotation>
                                 <xs:complexType>
                                     <xs:simpleContent>
                                         <xs:extension base="RegistryFormatGuid">
-                                            <xs:attribute name="Version" type="xs:decimal"
-                                                use="required">
+                                            <xs:attribute name="Version" type="xs:decimal" use="required">
                                                 <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> This value,
-                                                  along with the GUID, is used to uniquely identify
-                                                  this object. </xs:documentation>
+                                                    <xs:documentation xml:lang="en-us"> This value, along with the GUID,
+                                                        is used to uniquely identify this object. </xs:documentation>
                                                 </xs:annotation>
                                             </xs:attribute>
                                         </xs:extension>
@@ -1454,68 +1408,59 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
                 <xs:element minOccurs="0" maxOccurs="1" name="LibraryClassDefinitions">
                     <xs:annotation>
-                        <xs:documentation xml:lang="en-us"> A list of the different Library Classes
-                            consumed by a driver, core and/or application module, or produced by a
-                            Library module. </xs:documentation>
+                        <xs:documentation xml:lang="en-us"> A list of the different Library Classes consumed by a
+                            driver, core and/or application module, or produced by a Library module. </xs:documentation>
                     </xs:annotation>
                     <xs:complexType>
                         <xs:sequence>
                             <xs:element minOccurs="1" maxOccurs="unbounded" name="LibraryClass">
                                 <xs:complexType>
                                     <xs:sequence>
-                                        <xs:element minOccurs="1" maxOccurs="1" name="Keyword"
-                                            type="xs:NCName">
+                                        <xs:element minOccurs="1" maxOccurs="1" name="Keyword" type="xs:NCName">
                                             <xs:annotation>
-                                                <xs:documentation xml:lang="en-us "> Used by tools
-                                                  to identify different instances of libraries that
-                                                  provide the library class. This keyword identifies
-                                                  the library class this module needs to be linked
-                                                  against. </xs:documentation>
+                                                <xs:documentation xml:lang="en-us "> Used by tools to identify different
+                                                    instances of libraries that provide the library class. This keyword
+                                                    identifies the library class this module needs to be linked against.
+                                                </xs:documentation>
                                             </xs:annotation>
                                         </xs:element>
-                                        <xs:element minOccurs="0" maxOccurs="1"
-                                            name="RecommendedInstance">
+                                        <xs:element minOccurs="0" maxOccurs="1" name="RecommendedInstance">
                                             <xs:complexType>
                                                 <xs:all>
-                                                  <xs:element minOccurs="1" maxOccurs="1"
-                                                  name="GUID">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> This GUID and
-                                                  the Version attribute uniquely identify the
-                                                  recommended Library Instance for this module .
-                                                  </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:complexType>
-                                                  <xs:simpleContent>
-                                                  <xs:extension base="RegistryFormatGuid">
-                                                  <xs:attribute name="Version" type="xs:decimal"
-                                                  use="optional">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> This value,
-                                                  along with the GUID, is used to uniquely identify
-                                                  this object. </xs:documentation>
-                                                  </xs:annotation>
-                                                  </xs:attribute>
-                                                  </xs:extension>
-                                                  </xs:simpleContent>
-                                                  </xs:complexType>
-                                                  </xs:element>
+                                                    <xs:element minOccurs="1" maxOccurs="1" name="GUID">
+                                                        <xs:annotation>
+                                                            <xs:documentation xml:lang="en-us"> This GUID and the
+                                                            Version attribute uniquely identify the recommended Library
+                                                            Instance for this module . </xs:documentation>
+                                                        </xs:annotation>
+                                                        <xs:complexType>
+                                                            <xs:simpleContent>
+                                                            <xs:extension base="RegistryFormatGuid">
+                                                            <xs:attribute name="Version" type="xs:decimal"
+                                                            use="optional">
+                                                            <xs:annotation>
+                                                            <xs:documentation xml:lang="en-us"> This value, along with
+                                                            the GUID, is used to uniquely identify this object.
+                                                            </xs:documentation>
+                                                            </xs:annotation>
+                                                            </xs:attribute>
+                                                            </xs:extension>
+                                                            </xs:simpleContent>
+                                                        </xs:complexType>
+                                                    </xs:element>
                                                 </xs:all>
                                             </xs:complexType>
                                         </xs:element>
-                                        <xs:element ref="HelpText" minOccurs="0"
-                                            maxOccurs="unbounded"/>
+                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
                                     </xs:sequence>
                                     <xs:attribute name="Usage" use="required">
                                         <xs:simpleType>
                                             <xs:annotation>
-                                                <xs:documentation xml:lang="en-us"> Library
-                                                  instances can provide code for a library class, or
-                                                  may require other library instances themselves.
-                                                  Since different execution paths in a library (or
-                                                  module) may need different library classes based
-                                                  on some setting, library classes may not alway be
-                                                  required. </xs:documentation>
+                                                <xs:documentation xml:lang="en-us"> Library instances can provide code
+                                                    for a library class, or may require other library instances
+                                                    themselves. Since different execution paths in a library (or module)
+                                                    may need different library classes based on some setting, library
+                                                    classes may not alway be required. </xs:documentation>
                                             </xs:annotation>
                                             <xs:restriction base="xs:NCName">
                                                 <xs:enumeration value="PRODUCES"/>
@@ -1527,13 +1472,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                                     </xs:attribute>
 
                                     <xs:attributeGroup ref="SupportedArchMod"/>
-                                    <xs:attribute name="FeatureFlag" type="xs:normalizedString"
-                                        use="optional">
+                                    <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional">
                                         <xs:annotation>
-                                            <xs:documentation xml:lang="en-us"> A FeatureFlag
-                                                attribute must evaluate to either true or false - it
-                                                may be a fixed value of true or false, a C name or
-                                                an in-fix expression. </xs:documentation>
+                                            <xs:documentation xml:lang="en-us"> A FeatureFlag attribute must evaluate to
+                                                either true or false - it may be a fixed value of true or false, a C
+                                                name or an in-fix expression. </xs:documentation>
                                         </xs:annotation>
                                     </xs:attribute>
                                 </xs:complexType>
@@ -1549,29 +1492,24 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                             <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
                                 <xs:annotation>
                                     <xs:documentation xml:lang="en-us"> This is the module relative
-                                        (ModuleProperties.Path) path and filename location within
-                                        the ZIP file. </xs:documentation>
+                                        (ModuleProperties.Path) path and filename location within the ZIP file.
+                                    </xs:documentation>
                                 </xs:annotation>
                                 <xs:complexType>
                                     <xs:simpleContent>
                                         <xs:extension base="xs:anyURI">
-                                            <xs:attribute name="Family" type="FamilyTypes"
-                                                use="optional">
+                                            <xs:attribute name="Family" type="FamilyTypes" use="optional">
                                                 <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The Family
-                                                  attribute is used to restrict usage to a given
-                                                  family of compilers, such as GCC or MSFT. Since
-                                                  not all code processing tools use the same syntax,
-                                                  especially for assembly, this field can be used to
-                                                  identify different syntax. </xs:documentation>
+                                                    <xs:documentation xml:lang="en-us"> The Family attribute is used to
+                                                        restrict usage to a given family of compilers, such as GCC or
+                                                        MSFT. Since not all code processing tools use the same syntax,
+                                                        especially for assembly, this field can be used to identify
+                                                        different syntax. </xs:documentation>
                                                 </xs:annotation>
                                             </xs:attribute>
-                                            <xs:attribute name="SupArchList" type="ArchListType"
-                                                use="optional"/>
-                                            <xs:attribute name="SupModList" type="ModuleListType"
-                                                use="optional"/>
-                                            <xs:attribute name="FeatureFlag"
-                                                type="xs:normalizedString" use="optional"/>
+                                            <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+                                            <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>
+                                            <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
                                         </xs:extension>
                                     </xs:simpleContent>
                                 </xs:complexType>
@@ -1588,316 +1526,293 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                             <xs:element minOccurs="1" maxOccurs="unbounded" name="BinaryFile">
                                 <xs:complexType>
                                     <xs:sequence>
-                                        <xs:element minOccurs="1" maxOccurs="unbounded"
-                                            name="Filename">
+                                        <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
                                             <xs:annotation>
-                                                <xs:documentation xml:lang="en-us"> This is the
-                                                  module relative (ModuleProperties.Path) path and
-                                                  filename location within the ZIP file.
-                                                </xs:documentation>
+                                                <xs:documentation xml:lang="en-us"> This is the module relative
+                                                    (ModuleProperties.Path) path and filename location within the ZIP
+                                                    file. </xs:documentation>
                                             </xs:annotation>
                                             <xs:complexType>
                                                 <xs:simpleContent>
-                                                  <xs:extension base="xs:anyURI">
-                                                  <xs:attribute name="FileType" use="optional">
-                                                  <xs:simpleType>
-                                                  <xs:restriction base="xs:NCName">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> Binary file
-                                                  distribution is limited to UEFI/PI FFS leaf
-                                                  section file types. </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:enumeration value="GUID"/>
-                                                  <xs:enumeration value="FREEFORM"/>
-                                                  <xs:enumeration value="UEFI_IMAGE"/>
-                                                  <xs:enumeration value="PE32">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> A UEFI/PI FFS
-                                                  Leaf section file type, not a raw PE32 file.
-                                                  </xs:documentation>
-                                                  </xs:annotation>
-                                                  </xs:enumeration>
-                                                  <xs:enumeration value="PIC"/>
-                                                  <xs:enumeration value="PEI_DEPEX"/>
-                                                  <xs:enumeration value="DXE_DEPEX"/>
-                                                  <xs:enumeration value="SMM_DEPEX"/>
-                                                  <xs:enumeration value="COMPAT16"/>
-                                                  <xs:enumeration value="DISPOSABLE"/>
-                                                  <xs:enumeration value="TE"/>
-                                                  <xs:enumeration value="VER"/>
-                                                  <xs:enumeration value="UI"/>
-                                                  <xs:enumeration value="BIN"/>
-                                                  <xs:enumeration value="FV"/>
-                                                  </xs:restriction>
-                                                  </xs:simpleType>
-                                                  </xs:attribute>
-                                                  <xs:attribute name="SupArchList"
-                                                  type="ArchListType" use="optional"/>
-                                                  <xs:attribute name="SupModList"
-                                                  type="ModuleListType" use="optional"/>
-                                                  <xs:attribute name="FeatureFlag"
-                                                  type="xs:normalizedString" use="optional"/>
-                                                  </xs:extension>
+                                                    <xs:extension base="xs:anyURI">
+                                                        <xs:attribute name="FileType" use="optional">
+                                                            <xs:simpleType>
+                                                            <xs:restriction base="xs:NCName">
+                                                            <xs:annotation>
+                                                            <xs:documentation xml:lang="en-us"> Binary file distribution
+                                                            is limited to UEFI/PI FFS leaf section file types.
+                                                            </xs:documentation>
+                                                            </xs:annotation>
+                                                            <xs:enumeration value="GUID"/>
+                                                            <xs:enumeration value="FREEFORM"/>
+                                                            <xs:enumeration value="UEFI_IMAGE"/>
+                                                            <xs:enumeration value="PE32">
+                                                            <xs:annotation>
+                                                            <xs:documentation xml:lang="en-us"> A UEFI/PI FFS Leaf
+                                                            section file type, not a raw PE32 file. </xs:documentation>
+                                                            </xs:annotation>
+                                                            </xs:enumeration>
+                                                            <xs:enumeration value="PIC"/>
+                                                            <xs:enumeration value="PEI_DEPEX"/>
+                                                            <xs:enumeration value="DXE_DEPEX"/>
+                                                            <xs:enumeration value="SMM_DEPEX"/>
+                                                            <xs:enumeration value="COMPAT16"/>
+                                                            <xs:enumeration value="DISPOSABLE"/>
+                                                            <xs:enumeration value="TE"/>
+                                                            <xs:enumeration value="VER"/>
+                                                            <xs:enumeration value="UI"/>
+                                                            <xs:enumeration value="BIN"/>
+                                                            <xs:enumeration value="FV"/>
+                                                            </xs:restriction>
+                                                            </xs:simpleType>
+                                                        </xs:attribute>
+                                                        <xs:attribute name="GUID" use="optional"
+                                                            type="RegistryFormatGuid"/>
+                                                        <xs:attribute name="SupArchList" type="ArchListType"
+                                                            use="optional"/>
+                                                        <xs:attribute name="SupModList" type="ModuleListType"
+                                                            use="optional"/>
+                                                        <xs:attribute name="FeatureFlag" type="xs:normalizedString"
+                                                            use="optional"/>
+                                                    </xs:extension>
                                                 </xs:simpleContent>
                                             </xs:complexType>
                                         </xs:element>
-                                        <xs:element minOccurs="0" maxOccurs="unbounded"
-                                            name="AsBuilt">
+                                        <xs:element minOccurs="0" maxOccurs="unbounded" name="AsBuilt">
                                             <xs:annotation>
-                                                <xs:documentation xml:lang="en-us"> This section
-                                                  contains information about how the module was
-                                                  coded, such as Compiler Tools, Flags, PCDs (only
-                                                  PatchPcd and/or PcdEx) and Library Class Instances
-                                                  used to build the binary. </xs:documentation>
+                                                <xs:documentation xml:lang="en-us"> This section contains information
+                                                    about how the module was coded, such as Compiler Tools, Flags, PCDs
+                                                    (only PatchPcd and/or PcdEx) and Library Class Instances used to
+                                                    build the binary. </xs:documentation>
                                             </xs:annotation>
                                             <xs:complexType>
                                                 <xs:sequence>
 
-                                                  <xs:element minOccurs="0" maxOccurs="unbounded"
-                                                  name="PatchPcdValue">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The element is
-                                                  the Patchable PCD Value that was used during the
-                                                  build. </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:complexType>
-                                                  <xs:sequence>
-                                                  <xs:element minOccurs="1" maxOccurs="1"
-                                                  name="TokenSpaceGuidValue"
-                                                  type="RegistryFormatGuid"/>
-                                                  <xs:element minOccurs="1" maxOccurs="1"
-                                                  name="PcdCName" type="xs:NCName"/>
-                                                  <xs:element minOccurs="1" maxOccurs="1"
-                                                  name="Token">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The minLength
-                                                  of 3 is required to handle the "0x" prefix to the
-                                                  hex number. </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:simpleType>
-                                                  <xs:restriction base="HexNumber">
-                                                  <xs:minLength value="3"/>
-                                                  <xs:maxLength value="10"/>
-                                                  </xs:restriction>
-                                                  </xs:simpleType>
-                                                  </xs:element>
-                                                  <xs:element minOccurs="1" maxOccurs="1"
-                                                  name="DatumType" type="PcdDatumTypes"/>
-                                                  <xs:element minOccurs="0" maxOccurs="1"
-                                                  name="MaxDatumSize">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> This field is
-                                                  required if the Pcd Datum Type is VOID* </xs:documentation>
-                                                  <xs:documentation xml:lang="en-us"> The minLength
-                                                  of 3 is required to handle the "0x" prefix to the
-                                                  hex number. </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:simpleType>
-                                                  <xs:restriction base="HexNumber">
-                                                  <xs:minLength value="3"/>
-                                                  </xs:restriction>
-                                                  </xs:simpleType>
-                                                  </xs:element>
-                                                  <xs:element minOccurs="1" maxOccurs="1"
-                                                  name="Value" type="xs:normalizedString"/>
-                                                  <xs:element minOccurs="1" maxOccurs="1"
-                                                  name="Offset">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The minLength
-                                                  of 3 is required to handle the "0x" prefix to the
-                                                  hex number. </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:simpleType>
-                                                  <xs:restriction base="HexNumber">
-                                                  <xs:minLength value="3"/>
-                                                  </xs:restriction>
-                                                  </xs:simpleType>
-                                                  </xs:element>
-                                                  <xs:element ref="HelpText" minOccurs="0"
-                                                  maxOccurs="unbounded"/>
-                                                  <xs:element minOccurs="0" maxOccurs="unbounded"
-                                                  name="PcdError">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> Error
-                                                  information implemented by the module.
-                                                  </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:complexType>
-                                                  <xs:sequence>
-                                                  <xs:element minOccurs="1" maxOccurs="1"
-                                                  name="ErrorNumber">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The minLength
-                                                  of 3 is required to handle the "0x" prefix to the
-                                                  hex number. </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:simpleType>
-                                                  <xs:restriction base="HexNumber">
-                                                  <xs:minLength value="3"/>
-                                                  </xs:restriction>
-                                                  </xs:simpleType>
-                                                  </xs:element>
-                                                  <xs:element minOccurs="0" maxOccurs="unbounded"
-                                                  name="ErrorMessage">
-                                                  <xs:complexType>
-                                                  <xs:simpleContent>
-                                                  <xs:extension base="xs:string">
-                                                  <xs:attribute name="Lang" type="xs:language"
-                                                  default="en-us" use="optional"/>
-                                                  </xs:extension>
-                                                  </xs:simpleContent>
-                                                  </xs:complexType>
-                                                  </xs:element>
-                                                  </xs:sequence>
-                                                  </xs:complexType>
-                                                  </xs:element>
-                                                  </xs:sequence>
-                                                  </xs:complexType>
-                                                  </xs:element>
-
-                                                  <xs:element minOccurs="0" maxOccurs="unbounded"
-                                                  name="PcdExValue">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The element is
-                                                  the DynamicEx PCD Value that was used during the
-                                                  build. </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:complexType>
-                                                  <xs:sequence>
-                                                  <xs:element minOccurs="1" maxOccurs="1"
-                                                  name="TokenSpaceGuidValue"
-                                                  type="RegistryFormatGuid"/>
-                                                  <xs:element minOccurs="1" maxOccurs="1"
-                                                  name="Token">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The minLength
-                                                  of 3 is required to handle the "0x" prefix to the
-                                                  hex number. </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:simpleType>
-                                                  <xs:restriction base="HexNumber">
-                                                  <xs:minLength value="3"/>
-                                                  <xs:maxLength value="10"/>
-                                                  </xs:restriction>
-                                                  </xs:simpleType>
-                                                  </xs:element>
-                                                  <xs:element minOccurs="1" maxOccurs="1"
-                                                  name="DatumType" type="PcdDatumTypes"/>
-                                                  <xs:element minOccurs="0" maxOccurs="1"
-                                                  name="MaxDatumSize">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> This field is
-                                                  required if the Pcd Datum Type is VOID*
-                                                  </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:simpleType>
-                                                  <xs:restriction base="HexNumber">
-                                                  <xs:minLength value="3"/>
-                                                  </xs:restriction>
-                                                  </xs:simpleType>
-                                                  </xs:element>
-                                                  <xs:element minOccurs="1" maxOccurs="1"
-                                                  name="Value" type="xs:normalizedString"/>
-                                                  <xs:element ref="HelpText" minOccurs="0"
-                                                  maxOccurs="unbounded"/>
-                                                  <xs:element minOccurs="0" maxOccurs="unbounded"
-                                                  name="PcdError">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> Error
-                                                  information implemented by the module.
-                                                  </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:complexType>
-                                                  <xs:sequence>
-                                                  <xs:element minOccurs="1" maxOccurs="1"
-                                                  name="ErrorNumber">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> The minLength
-                                                  of 3 is required to handle the "0x" prefix to the
-                                                  hex number. </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:simpleType>
-                                                  <xs:restriction base="HexNumber">
-                                                  <xs:minLength value="3"/>
-                                                  </xs:restriction>
-                                                  </xs:simpleType>
-                                                  </xs:element>
-                                                  <xs:element minOccurs="0" maxOccurs="unbounded"
-                                                  name="ErrorMessage">
-                                                  <xs:complexType>
-                                                  <xs:simpleContent>
-                                                  <xs:extension base="xs:string">
-                                                  <xs:attribute name="Lang" type="xs:language"
-                                                  default="en-us" use="optional"/>
-                                                  </xs:extension>
-                                                  </xs:simpleContent>
-                                                  </xs:complexType>
-                                                  </xs:element>
-                                                  </xs:sequence>
-                                                  </xs:complexType>
-                                                  </xs:element>
-                                                  </xs:sequence>
-                                                  </xs:complexType>
-                                                  </xs:element>
-
-                                                  <xs:element minOccurs="0" maxOccurs="1"
-                                                  name="LibraryInstances">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> This is the
-                                                  actual library instance that was used to link
-                                                  against the module. </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:complexType>
-                                                  <xs:sequence>
-                                                  <xs:element minOccurs="1" maxOccurs="unbounded"
-                                                  name="GUID">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> This GUID and
-                                                  the Version attribute uniquely identify the actual
-                                                  Library Instance linked in this module.
-                                                  </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:complexType>
-                                                  <xs:simpleContent>
-                                                  <xs:extension base="RegistryFormatGuid">
-                                                  <xs:attribute name="Version" type="xs:decimal"
-                                                  use="required">
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> This value,
-                                                  along with the GUID, is used to uniquely identify
-                                                  this object. </xs:documentation>
-                                                  </xs:annotation>
-                                                  </xs:attribute>
-                                                  </xs:extension>
-                                                  </xs:simpleContent>
-                                                  </xs:complexType>
-                                                  </xs:element>
-                                                  </xs:sequence>
-                                                  </xs:complexType>
-                                                  </xs:element>
-
-                                                  <xs:element minOccurs="0" maxOccurs="unbounded"
-                                                  name="BuildFlags">
-                                                  <xs:complexType mixed="true">
-                                                  <xs:simpleContent>
-                                                  <xs:annotation>
-                                                  <xs:documentation xml:lang="en-us"> Any
-                                                  description of OS, Tool, and flags for the
-                                                  individual tool can go in this section.
-                                                  </xs:documentation>
-                                                  </xs:annotation>
-                                                  <xs:extension base="xs:string">
-                                                  <xs:anyAttribute processContents="lax"/>
-                                                  </xs:extension>
-                                                  </xs:simpleContent>
-                                                  </xs:complexType>
-                                                  </xs:element>
+                                                    <xs:element minOccurs="0" maxOccurs="unbounded" name="PatchPcdValue">
+                                                        <xs:annotation>
+                                                            <xs:documentation xml:lang="en-us"> The element is the
+                                                            Patchable PCD Value that was used during the build.
+                                                            </xs:documentation>
+                                                        </xs:annotation>
+                                                        <xs:complexType>
+                                                            <xs:sequence>
+                                                            <xs:element minOccurs="1" maxOccurs="1"
+                                                            name="TokenSpaceGuidValue" type="RegistryFormatGuid"/>
+                                                            <xs:element minOccurs="1" maxOccurs="1" name="PcdCName"
+                                                            type="xs:NCName"/>
+                                                            <xs:element minOccurs="1" maxOccurs="1" name="Token">
+                                                            <xs:annotation>
+                                                            <xs:documentation xml:lang="en-us"> The minLength of 3 is
+                                                            required to handle the "0x" prefix to the hex number.
+                                                            </xs:documentation>
+                                                            </xs:annotation>
+                                                            <xs:simpleType>
+                                                            <xs:restriction base="HexNumber">
+                                                            <xs:minLength value="3"/>
+                                                            <xs:maxLength value="10"/>
+                                                            </xs:restriction>
+                                                            </xs:simpleType>
+                                                            </xs:element>
+                                                            <xs:element minOccurs="1" maxOccurs="1" name="DatumType"
+                                                            type="PcdDatumTypes"/>
+                                                            <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize">
+                                                            <xs:annotation>
+                                                            <xs:documentation xml:lang="en-us"> This field is required
+                                                            if the Pcd Datum Type is VOID* </xs:documentation>
+                                                            <xs:documentation xml:lang="en-us"> The minLength of 3 is
+                                                            required to handle the "0x" prefix to the hex number.
+                                                            </xs:documentation>
+                                                            </xs:annotation>
+                                                            <xs:simpleType>
+                                                            <xs:restriction base="HexNumber">
+                                                            <xs:minLength value="3"/>
+                                                            </xs:restriction>
+                                                            </xs:simpleType>
+                                                            </xs:element>
+                                                            <xs:element minOccurs="1" maxOccurs="1" name="Value"
+                                                            type="xs:normalizedString"/>
+                                                            <xs:element minOccurs="1" maxOccurs="1" name="Offset">
+                                                            <xs:annotation>
+                                                            <xs:documentation xml:lang="en-us"> The minLength of 3 is
+                                                            required to handle the "0x" prefix to the hex number.
+                                                            </xs:documentation>
+                                                            </xs:annotation>
+                                                            <xs:simpleType>
+                                                            <xs:restriction base="HexNumber">
+                                                            <xs:minLength value="3"/>
+                                                            </xs:restriction>
+                                                            </xs:simpleType>
+                                                            </xs:element>
+                                                            <xs:element ref="HelpText" minOccurs="0"
+                                                            maxOccurs="unbounded"/>
+                                                            <xs:element minOccurs="0" maxOccurs="unbounded"
+                                                            name="PcdError">
+                                                            <xs:annotation>
+                                                            <xs:documentation xml:lang="en-us"> Error information
+                                                            implemented by the module. </xs:documentation>
+                                                            </xs:annotation>
+                                                            <xs:complexType>
+                                                            <xs:sequence>
+                                                            <xs:element minOccurs="1" maxOccurs="1" name="ErrorNumber">
+                                                            <xs:annotation>
+                                                            <xs:documentation xml:lang="en-us"> The minLength of 3 is
+                                                            required to handle the "0x" prefix to the hex number.
+                                                            </xs:documentation>
+                                                            </xs:annotation>
+                                                            <xs:simpleType>