]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/XMLSchema/FrameworkDataElements.xsd
merged the last changes in new schema
[mirror_edk2.git] / Tools / XMLSchema / FrameworkDataElements.xsd
index 2015e01676f449c50688b3c10592f3896f0240d8..4bf1ee177bcebc18927788cb008294842aa65e91 100644 (file)
     <xs:include schemaLocation="FrameworkDataTypes.xsd"/>\r
     <xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>\r
     <xs:include schemaLocation="FrameworkDataAttributes.xsd"/>\r
-    <xs:element name="Abstract">\r
+    <xs:element name="Abstract" type="Sentence">\r
         <xs:annotation>\r
             <xs:documentation xml:lang="en">Abstract is valid for all Description Files</xs:documentation>\r
             <xs:documentation xml:lang="en">This section is required. This is a single sentence to describe the module and will be used in sample files as the abstract data in the header comment section.</xs:documentation>\r
         </xs:annotation>\r
-        <xs:complexType>\r
-            <xs:simpleContent>\r
-                <xs:extension base="Sentence">\r
-                    <xs:attribute name="URL" type="xs:anyURI" use="optional"/>\r
-                </xs:extension>\r
-            </xs:simpleContent>\r
-        </xs:complexType>\r
     </xs:element>\r
     <xs:element name="AntCmd">\r
         <xs:annotation>\r
@@ -46,7 +39,6 @@
                     </xs:simpleType>\r
                 </xs:element>\r
             </xs:sequence>\r
-            <xs:attributeGroup ref="SectionAttributes"/>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="AntTask">\r
@@ -84,6 +76,9 @@
             <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
                 <xs:element name="BootMode">\r
                     <xs:complexType>\r
+                        <xs:sequence minOccurs="0">\r
+                            <xs:element name="HelpText" type="Paragraph"/>\r
+                        </xs:sequence>\r
                         <xs:attributeGroup ref="BootModeAttributes"/>\r
                     </xs:complexType>\r
                 </xs:element>\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
                 <xs:element name="DataHubRecord">\r
-                    <xs:complexType>\r
-                        <xs:simpleContent>\r
-                            <xs:extension base="xs:normalizedString">\r
-                                <xs:attributeGroup ref="DataHubAttributes"/>\r
-                            </xs:extension>\r
-                        </xs:simpleContent>\r
+                    <xs:complexType mixed="true">\r
+                        <xs:sequence>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="DataHubCName" type="C_NameType"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
+                        </xs:sequence>\r
+                        <xs:attributeGroup ref="DataHubAttributes"/>\r
                     </xs:complexType>\r
                 </xs:element>\r
                 <!-- Remove Arch and use Arch Attribute for DataHubRecord instead. -->\r
                 <xs:element minOccurs="0" maxOccurs="1" name="CreateEvents">\r
                     <xs:complexType>\r
                         <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
-                            <xs:element name="Event">\r
+                            <xs:element minOccurs="0" maxOccurs="unbounded" name="EventTypes">\r
+                                <xs:complexType>\r
+                                    <xs:sequence>\r
+                                        <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>\r
+                                        <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
+                                    </xs:sequence>\r
+                                    <xs:attributeGroup ref="EventAttributes"/>\r
+                                </xs:complexType>\r
+                            </xs:element>                            \r
+                            <xs:element minOccurs="0" name="Event">\r
                                 <xs:complexType>\r
                                     <xs:sequence>\r
                                         <xs:choice>\r
-                                            <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>\r
+                                            <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>\r
                                             <!-- DO NOT USE, removing C_Name in final -->\r
                                             <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>\r
                                         </xs:choice>\r
                     </xs:annotation>\r
                     <xs:complexType>\r
                         <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
-                            <xs:element name="Event">\r
+                            <xs:element minOccurs="0" maxOccurs="unbounded" name="EventTypes">\r
+                                <xs:complexType>\r
+                                    <xs:sequence>\r
+                                        <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>\r
+                                        <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
+                                    </xs:sequence>\r
+                                    <xs:attributeGroup ref="EventAttributes"/>\r
+                                </xs:complexType>\r
+                            </xs:element>                            \r
+                            <xs:element minOccurs="0" name="Event">\r
                                 <xs:complexType>\r
                                     <xs:sequence>\r
                                         <xs:choice>\r
-                                            <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>\r
+                                            <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>\r
                                             <!-- DO NOT USE, removing C_Name in final -->\r
                                             <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>\r
                                         </xs:choice>\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1">\r
                 <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver" type="PcdDriverTypes"/>\r
-                <xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>\r
+                <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Extern">\r
                     <xs:complexType>\r
                         <xs:choice minOccurs="1">\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:simpleContent>\r
-                <xs:extension base="VariableConvention">\r
+                <xs:extension base="PathAndFilename">\r
                     <xs:attributeGroup ref="FilenameAttributes"/>\r
                 </xs:extension>\r
             </xs:simpleContent>\r
                 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
                     <xs:complexType>\r
                         <xs:sequence>\r
-                            <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
                             <xs:choice minOccurs="1">\r
                                 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
                                 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
                             </xs:choice>\r
-                            <xs:element minOccurs="0" maxOccurs="unbounded" ref="HelpText"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
                         </xs:sequence>\r
                         <xs:attributeGroup ref="GuidDeclarationAttributes"/>\r
                     </xs:complexType>\r
     <xs:element name="Guids">\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
-                <xs:element name="GuidEntry">\r
+                <xs:element minOccurs="0" maxOccurs="unbounded" name="GuidCNames">\r
                     <xs:annotation>\r
                         <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>\r
                     </xs:annotation>\r
-                    <xs:complexType mixed="true">\r
+                    <xs:complexType>\r
+                        <xs:sequence>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="GuidCName" type="C_NameType"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
+                        </xs:sequence>\r
+                        <xs:attributeGroup ref="GuidAttributes"/>\r
+                    </xs:complexType>\r
+                </xs:element>\r
+                <xs:element minOccurs="0" name="GuidEntry">\r
+                    <xs:annotation>\r
+                        <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>\r
+                    </xs:annotation>\r
+                    <xs:complexType>\r
                         <xs:sequence minOccurs="0" maxOccurs="1">\r
                             <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
                             <!-- DO NOT USE removing GuidValue from use -->\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
                 <xs:element name="HiiPackage">\r
-                    <xs:complexType>\r
-                        <xs:simpleContent>\r
-                            <xs:extension base="C_Name">\r
-                                <xs:attributeGroup ref="HiiPackageAttributes"/>\r
-                            </xs:extension>\r
-                        </xs:simpleContent>\r
+                    <xs:complexType mixed="true">\r
+                        <xs:sequence>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HiiCName" type="C_NameType"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
+                        </xs:sequence>\r
+                        <xs:attributeGroup ref="HiiPackageAttributes"/>\r
                     </xs:complexType>\r
                 </xs:element>\r
             </xs:sequence>\r
     <xs:element name="Hobs">\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
-                <xs:element name="Hob">\r
+                <xs:element minOccurs="0" maxOccurs="unbounded" name="HobTypes">\r
+                    <xs:complexType>\r
+                        <xs:sequence>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="HobType" type="HobTypes"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
+                        </xs:sequence>\r
+                        <xs:attributeGroup ref="HobAttributes"/>\r
+                    </xs:complexType>\r
+                </xs:element>                \r
+                <xs:element minOccurs="0" name="Hob">\r
                     <xs:complexType>\r
                         <xs:sequence>\r
                             <xs:choice>\r
                                 <!-- Remove Name from use -->\r
                                 <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:normalizedString"/>\r
-                                <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>\r
+                                <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>\r
                             </xs:choice>\r
                             <!-- Remove C_Name from use -->\r
                             <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>\r
             <xs:sequence>\r
                 <xs:element minOccurs="0" maxOccurs="1" name="Header" type="UiNameType"/>\r
                 <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>\r
-                <xs:element minOccurs="1" maxOccurs="1" ref="HelpText"/>\r
+                <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
             </xs:sequence>\r
             <xs:attributeGroup ref="IndustryStdHeaderAttributes"/>\r
         </xs:complexType>\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1">\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Library">\r
-                    <xs:complexType mixed="true">\r
+                    <xs:complexType>\r
                         <xs:simpleContent>\r
                             <xs:extension base="xs:NCName">\r
                                 <xs:attributeGroup ref="LibraryAttributes"/>\r
                     </xs:complexType>\r
                 </xs:element>\r
                 <!-- /remove Arch Element -->\r
+                <xs:element minOccurs="0" maxOccurs="unbounded" name="Instance">\r
+                    <xs:complexType>\r
+                        <xs:attributeGroup ref="LibraryAttributes"/>\r
+                    </xs:complexType>\r
+                </xs:element>                \r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
         <xs:annotation>\r
             <xs:documentation xml:lang="en">Used in MSA files. This defines what class of library is being supported = produced (library module) or consumed by a module.</xs:documentation>\r
         </xs:annotation>\r
-        <xs:complexType>\r
-            <xs:simpleContent>\r
-                <xs:extension base="xs:NCName">\r
-                    <xs:attributeGroup ref="LibraryClassAttributes"/>\r
-                </xs:extension>\r
-            </xs:simpleContent>\r
+        <xs:complexType mixed="true">\r
+            <xs:sequence>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="Keyword" type="KeywordType"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
+            </xs:sequence>            \r
+            <xs:attributeGroup ref="LibraryClassAttributes"/>\r
         </xs:complexType>\r
     </xs:element>\r
     <!-- LAH This is LibraryClassDeclaration FINAL version -->\r
                 <xs:element name="LibraryClass" minOccurs="0" maxOccurs="unbounded">\r
                     <xs:complexType>\r
                         <xs:sequence>\r
-                            <xs:element name="IncludeHeader" type="PathAndFilename" minOccurs="1" maxOccurs="1"/>\r
-                            <xs:element ref="HelpText" minOccurs="1" maxOccurs="1"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
                         </xs:sequence>\r
                         <xs:attributeGroup ref="LibraryClassAttributes"/>\r
                     </xs:complexType>\r
             <xs:documentation xml:lang="en">This section defines what Classes of Library that this library supports. A Library may belong to multiple different library classes.</xs:documentation>\r
         </xs:annotation>\r
         <xs:complexType>\r
-            <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
-                <xs:element ref="LibraryClass"/>\r
+            <xs:sequence>\r
+                <xs:element ref="LibraryClass" minOccurs="1" maxOccurs="unbounded"/>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
                     </xs:complexType>\r
                 </xs:element>\r
             </xs:sequence>\r
-            <xs:element minOccurs="1" maxOccurs="unbounded" ref="Filename"/>\r
+              <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>\r
           </xs:choice>\r
         </xs:complexType>\r
     </xs:element>\r
                 <!-- A pattern to match for the output -->\r
                 <xs:element minOccurs="1" maxOccurs="1" name="OutputPattern" type="xs:string"/>\r
             </xs:sequence>\r
-            <xs:attributeGroup ref="SectionAttributes"/>\r
+            <xs:attributeGroup ref="ProcessStepAttributes"/>\r
         </xs:complexType>\r
     </xs:element>    \r
     <xs:element name="FfsFormatDeclarations">\r
         <xs:annotation>\r
             <xs:documentation xml:lang="en">This tag is used in the Package Surface Area Description File to track package dependencies for a module (SPD) </xs:documentation>\r
         </xs:annotation>\r
-        <xs:complexType mixed="true">\r
-            <xs:simpleContent>\r
-                <xs:extension base="UiNameType">\r
-                    <xs:attributeGroup ref="PackageAttributes"/>\r
-                </xs:extension>\r
-            </xs:simpleContent>\r
+        <xs:complexType>\r
+            <xs:attributeGroup ref="PackageAttributes"/>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="PackageName">\r
             </xs:simpleContent>\r
         </xs:complexType>\r
     </xs:element>\r
-    <xs:element name="PcdBuildDeclarations">\r
-        <xs:annotation>\r
-            <xs:documentation xml:lang="en">NEW: Will become a child of ModuleSA in the FPD</xs:documentation>\r
-        </xs:annotation>\r
-        <xs:complexType>\r
-            <xs:choice minOccurs="1">\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Filename"/>\r
-                <xs:element minOccurs="0" maxOccurs="unbounded" name="PcdBuildData">\r
-                    <xs:annotation>\r
-                        <xs:documentation xml:lang="en">Child of PcdBuildDeclarations</xs:documentation>\r
-                        <xs:documentation xml:lang="en">This is date element is used in the platform build description file and contains valid data for a Platform Build</xs:documentation>\r
-                        <xs:documentation xml:lang="en">There is ONE required Attribute, ItemType</xs:documentation>\r
-                    </xs:annotation>\r
-                    <xs:complexType>\r
-                        <xs:sequence>\r
-                            <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
-                            <xs:element minOccurs="1" maxOccurs="1" name="Token">\r
-                                <xs:annotation>\r
-                                    <xs:documentation xml:lang="en">This as a unique identifier defined for either this name space.</xs:documentation>\r
-                                    <xs:documentation xml:lang="en">The Target Attribute may be used to define a Target name space, such as PCI.</xs:documentation>\r
-                                </xs:annotation>\r
-                                <xs:complexType>\r
-                                    <xs:simpleContent>\r
-                                        <xs:extension base="HexDoubleWordDataType">\r
-                                            <xs:attribute name="Target" type="C_Name" use="optional"/>\r
-                                        </xs:extension>\r
-                                    </xs:simpleContent>\r
-                                </xs:complexType>\r
-                            </xs:element>\r
-                            <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
-                            <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes">\r
-                                <xs:annotation>\r
-                                    <xs:documentation xml:lang="en">This specifies the size of the Pcd Datum. It is either 8, 16, 32 or 64 bits for values, 1 bit for BOOLEAN and variable length for elements defined as VOID*</xs:documentation>\r
-                                </xs:annotation>\r
-                            </xs:element>\r
-                            <xs:element default="false" minOccurs="1" maxOccurs="1" name="HiiEnable" type="xs:boolean">\r
-                                <xs:annotation>\r
-                                    <xs:documentation xml:lang="en">This Bit means that the Variable data is associated with HII</xs:documentation>\r
-                                </xs:annotation>\r
-                            </xs:element>\r
-                            <xs:element default="false" minOccurs="1" maxOccurs="1" name="VpdEnable" type="xs:boolean">\r
-                                <xs:annotation>\r
-                                    <xs:documentation xml:lang="en">This bit enables the Vital Product Data area within flash for maintaining PCD information</xs:documentation>\r
-                                </xs:annotation>\r
-                            </xs:element>\r
-                            <xs:element default="false" minOccurs="1" maxOccurs="1" name="AlternateNameSpaceEnable" type="xs:boolean">\r
-                                <xs:annotation>\r
-                                    <xs:documentation>This is only applicable to ItemType DYNAMIC_EX</xs:documentation>\r
-                                </xs:annotation>\r
-                            </xs:element>\r
-                            <xs:element default="false" minOccurs="1" maxOccurs="1" name="SkuEnable" type="xs:boolean"/>\r
-                            <xs:element default="false" minOccurs="1" maxOccurs="1" name="SkuDataArrayEnable" type="xs:boolean"/>\r
-                            <xs:choice minOccurs="0">\r
-                                <xs:element minOccurs="0" maxOccurs="1" name="SkuDataArray">\r
-                                    <xs:annotation>\r
-                                        <xs:documentation xml:lang="en">This element is a list of two entries per line, the first should be an integer, while the second entry should be a string value</xs:documentation>\r
-                                    </xs:annotation>\r
-                                    <xs:simpleType>\r
-                                        <xs:list itemType="xs:normalizedString"/>\r
-                                    </xs:simpleType>\r
-                                </xs:element>\r
-                                <xs:element minOccurs="0" maxOccurs="unbounded" name="SkuData">\r
-                                    <xs:annotation>\r
-                                        <xs:documentation xml:lang="en">This section is for a list of SkuData Elements, ID and Value</xs:documentation>\r
-                                    </xs:annotation>\r
-                                    <xs:complexType>\r
-                                        <xs:sequence minOccurs="1">\r
-                                            <xs:element name="Id" type="xs:int"/>\r
-                                            <xs:element name="Value" type="xs:normalizedString"/>\r
-                                        </xs:sequence>\r
-                                    </xs:complexType>\r
-                                </xs:element>\r
-                            </xs:choice>\r
-                            <xs:element default="0x00" minOccurs="1" maxOccurs="1" name="MaxSku" type="HexByteDataType">\r
-                                <xs:annotation>\r
-                                    <xs:documentation xml:lang="en">This value comes from a production line database, and has nothing to do with the number of SkuData IDs that have been defined.</xs:documentation>\r
-                                </xs:annotation>\r
-                            </xs:element>\r
-                            <xs:element default="0x00" minOccurs="1" maxOccurs="1" name="SkuId" type="HexByteDataType">\r
-                                <xs:annotation>\r
-                                    <xs:documentation xml:lang="en">This is the specific Sku ID for this build.</xs:documentation>\r
-                                </xs:annotation>\r
-                            </xs:element>\r
-                            <xs:element minOccurs="1" maxOccurs="1" name="DatumSize">\r
-                                <xs:annotation>\r
-                                    <xs:documentation xml:lang="en">Max Number of Bytes of the data.</xs:documentation>\r
-                                </xs:annotation>\r
-                                <xs:simpleType>\r
-                                    <xs:restriction base="xs:int">\r
-                                        <xs:minInclusive value="1"/>\r
-                                        <xs:maxInclusive value="16777215"/>\r
-                                    </xs:restriction>\r
-                                </xs:simpleType>\r
-                            </xs:element>\r
-                            <xs:element minOccurs="1" maxOccurs="1" name="VariableGuid" type="VariableGuidType">\r
-                                <xs:annotation>\r
-                                    <xs:documentation xml:lang="en">This is the Variable's GUID if and only if HII is enabled.</xs:documentation>\r
-                                </xs:annotation>\r
-                            </xs:element>\r
-                            <xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="xs:normalizedString">\r
-                                <xs:annotation>\r
-                                    <xs:documentation xml:lang="en">This is the C Name for the Variable, and is valid if and only HII is enabled.</xs:documentation>\r
-                                </xs:annotation>\r
-                            </xs:element>\r
-                            <xs:element minOccurs="0" maxOccurs="1" name="VariableValueDefault" type="xs:normalizedString"/>\r
-                            <xs:element minOccurs="1" maxOccurs="1" name="DataOffset" type="Hex64BitDataType">\r
-                                <xs:annotation>\r
-                                    <xs:documentation xml:lang="en">If HII is enabled, This is the offset into the variable data entry, If Vpd is enabled, then it's the Offset into the VPD area of the image defined by platform manufacturer, if neither HII nor Vpd are enabled, it's the offset into the PCD Data Area. HII and VPD can never be enabled at the same time (as of the date of this document.)</xs:documentation>\r
-                                </xs:annotation>\r
-                            </xs:element>\r
-                            <xs:element minOccurs="0" maxOccurs="1" name="GuidOffset" type="Hex64BitDataType">\r
-                                <xs:annotation>\r
-                                    <xs:documentation xml:lang="en">FIELD IS NOT USED! REMOVE in FINAL!</xs:documentation>\r
-                                </xs:annotation>\r
-                            </xs:element>\r
-                            <xs:element minOccurs="1" maxOccurs="1" name="DefaultValue" type="xs:normalizedString"/>\r
-                        </xs:sequence>\r
-                        <xs:attributeGroup ref="PcdAttributes"/>\r
-                        <xs:attribute name="PcdIsDriver">\r
-                            <xs:simpleType>\r
-                                <xs:annotation>\r
-                                    <xs:documentation xml:lang="en">This is an enumerated data type that will be used for DYNAMIC_EX, PEIM or DXE only</xs:documentation>\r
-                                </xs:annotation>\r
-                                <xs:restriction base="UCNameType">\r
-                                    <xs:enumeration value="PEI_PCD_DRIVER"/>\r
-                                    <xs:enumeration value="DXE_PCD_DRIVER"/>\r
-                                </xs:restriction>\r
-                            </xs:simpleType>\r
-                        </xs:attribute>\r
-                    </xs:complexType>\r
-                </xs:element>\r
-            </xs:choice>\r
-        </xs:complexType>\r
-    </xs:element>\r
-    <!-- PcdBuildDeclarations -->\r
-    <xs:element name="PcdDynamicBuildDeclarations">\r
-        <xs:annotation>\r
-            <xs:documentation xml:lang="en">Child of Framework Platform Description (FPD)</xs:documentation>\r
-            <xs:documentation xml:lang="en">We permit the FPD to use an external XML file for PCD information or else the information must be contained within the XML data element, PcdBuildData.</xs:documentation>\r
-        </xs:annotation>\r
-        <xs:complexType>\r
-            <xs:sequence>\r
-                <xs:element minOccurs="0" maxOccurs="unbounded" name="PcdBuildData">\r
-                    <xs:annotation>\r
-                        <xs:documentation xml:lang="en">Child of PcdBuildDeclarations</xs:documentation>\r
-                        <xs:documentation xml:lang="en">This is date element is used in the platform build description file and contains valid data for a Platform Build</xs:documentation>\r
-                        <xs:documentation xml:lang="en">There is ONE required Attribute, ItemType</xs:documentation>\r
-                    </xs:annotation>\r
-                    <xs:complexType>\r
-                        <xs:sequence>\r
-                            <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
-                            <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
-                            <xs:element minOccurs="1" maxOccurs="1" name="Token">\r
-                                <xs:annotation>\r
-                                    <xs:documentation xml:lang="en">This as a unique identifier defined for either this name space.</xs:documentation>\r
-                                    <xs:documentation xml:lang="en">The Target Attribute may be used to define a Target name space, such as PCI.</xs:documentation>\r
-                                </xs:annotation>\r
-                                <xs:complexType>\r
-                                    <xs:simpleContent>\r
-                                        <xs:extension base="HexDoubleWordDataType">\r
-                                            <xs:attribute name="Target" type="C_Name" use="optional"/>\r
-                                        </xs:extension>\r
-                                    </xs:simpleContent>\r
-                                </xs:complexType>\r
-                            </xs:element>\r
-                            <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
-                            <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
-                            <xs:element default="false" minOccurs="1" maxOccurs="1" name="HiiEnable" type="xs:boolean"/>\r
-                            <xs:element default="false" minOccurs="1" maxOccurs="1" name="VpdEnable" type="xs:boolean"/>\r
-                            <xs:element default="false" minOccurs="1" maxOccurs="1" name="AlternateNameSpaceEnable" type="xs:boolean"/>\r
-                            <xs:element default="false" minOccurs="1" maxOccurs="1" name="SkuEnable" type="xs:boolean"/>\r
-                            <xs:element default="false" minOccurs="1" maxOccurs="1" name="SkuDataArrayEnable" type="xs:boolean"/>\r
-                            <xs:choice minOccurs="0">\r
-                                <xs:element minOccurs="0" maxOccurs="1" name="SkuDataArray">\r
-                                    <xs:annotation>\r
-                                        <xs:documentation xml:lang="en">This element is a list of two entries per line, the first should be an integer, while the second entry should be a string value</xs:documentation>\r
-                                    </xs:annotation>\r
-                                    <xs:simpleType>\r
-                                        <xs:list itemType="xs:normalizedString"/>\r
-                                    </xs:simpleType>\r
-                                </xs:element>\r
-                                <xs:element minOccurs="0" maxOccurs="unbounded" name="SkuData">\r
-                                    <xs:annotation>\r
-                                        <xs:documentation xml:lang="en">This section is for a list of SkuData Elements, ID and Value</xs:documentation>\r
-                                    </xs:annotation>\r
-                                    <xs:complexType>\r
-                                        <xs:sequence minOccurs="1">\r
-                                            <xs:element name="Id" type="xs:int"/>\r
-                                            <xs:element name="Value" type="xs:normalizedString"/>\r
-                                        </xs:sequence>\r
-                                    </xs:complexType>\r
-                                </xs:element>\r
-                            </xs:choice>\r
-                            <xs:element default="0x00" minOccurs="1" maxOccurs="1" name="MaxSku" type="HexByteDataType">\r
-                                <xs:annotation>\r
-                                    <xs:documentation xml:lang="en">This value comes from a production line database, and has nothing to do with the number of SkuData IDs that have been defined.</xs:documentation>\r
-                                </xs:annotation>\r
-                            </xs:element>\r
-                            <xs:element default="0x00" minOccurs="1" maxOccurs="1" name="SkuId" type="HexByteDataType"/>\r
-                            <xs:element minOccurs="1" maxOccurs="1" name="DatumSize" type="DatumSizeLimitation"/>\r
-                            <xs:element minOccurs="1" maxOccurs="1" name="VariableGuid" type="VariableGuidType"/>\r
-                            <xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="xs:normalizedString"/>\r
-                            <xs:element minOccurs="0" maxOccurs="1" name="VariableValueDefault" type="xs:normalizedString"/>\r
-                            <xs:element minOccurs="1" maxOccurs="1" name="DataOffset" type="Hex64BitDataType"/>\r
-                            <xs:element minOccurs="0" maxOccurs="1" name="GuidOffset" type="Hex64BitDataType"/>\r
-                            <xs:element minOccurs="1" maxOccurs="1" name="DefaultValue" type="xs:normalizedString"/>\r
-                        </xs:sequence>\r
-                        <xs:attributeGroup ref="PcdAttributes"/>\r
-                        <xs:attribute name="PcdIsDriver">\r
-                            <xs:simpleType>\r
-                                <xs:annotation>\r
-                                    <xs:documentation xml:lang="en">This is an enumerated data type that will be used for DYNAMIC_EX, PEIM or DXE only</xs:documentation>\r
-                                </xs:annotation>\r
-                                <xs:restriction base="UCNameType">\r
-                                    <xs:enumeration value="PEI_PCD_DRIVER"/>\r
-                                    <xs:enumeration value="DXE_PCD_DRIVER"/>\r
-                                </xs:restriction>\r
-                            </xs:simpleType>\r
-                        </xs:attribute>\r
-                    </xs:complexType>\r
-                </xs:element>\r
-            </xs:sequence>\r
-        </xs:complexType>\r
-    </xs:element>\r
     <xs:element name="DynamicPcdBuildDefinitions">\r
         <xs:annotation>\r
             <xs:documentation xml:lang="en">Child of Framework Platform Description (FPD)</xs:documentation>\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:sequence>\r
-                <xs:element minOccurs="0" maxOccurs="unbounded" name="PcdBuildData">\r
+                <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdBuildData">\r
                     <xs:complexType>\r
                         <xs:sequence>\r
-                            <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
                             <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>\r
                             <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
                             <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
                                 </xs:complexType>\r
                             </xs:element>\r
                         </xs:sequence>\r
-                        <xs:attributeGroup ref="PcdAttributes"/>\r
+                        <xs:attributeGroup ref="DynamicBuildPcdAttributes"/>\r
                     </xs:complexType>\r
                 </xs:element>\r
             </xs:sequence>\r
             <xs:documentation xml:lang="en">Child of FPD ModuleSA element for FIXED_AT_BUILD, PATCHABLE_IN_MODULE, and FEATURE_FLAG PCDS Only!</xs:documentation>\r
         </xs:annotation>\r
         <xs:complexType>\r
-            <xs:sequence minOccurs="1">\r
-                <xs:element maxOccurs="unbounded" name="PcdData">\r
+            <xs:sequence>\r
+                <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdData">\r
                     <xs:complexType>\r
                         <xs:sequence>\r
-                            <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
                             <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>\r
-                            <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
                             <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
+                            <!-- MaxDatumSize is only required if the DatumType is VOID* -->\r
                             <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize" type="DatumSizeLimitation"/>                            \r
-                            <xs:element minOccurs="0" maxOccurs="1" name="Value" type="xs:normalizedString"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="Value" type="DefaultValueType"/>\r
                         </xs:sequence>\r
                         <xs:attributeGroup ref="PcdBuildDefinitionAttributes"/>\r
                     </xs:complexType>\r
     </xs:element>\r
     <xs:group name="DefaultGroup">\r
         <xs:sequence>\r
-            <xs:element minOccurs="1" maxOccurs="1" name="Value" type="xs:normalizedString"/>\r
+            <xs:element minOccurs="1" maxOccurs="1" name="Value" type="DefaultValueType"/>\r
         </xs:sequence>\r
     </xs:group>\r
     <xs:group name="HiiEnable">\r
             <xs:documentation xml:lang="en">If HiiEnable group is specified, then HiiEnable is default true</xs:documentation>\r
         </xs:annotation>\r
         <xs:sequence>\r
-            <xs:element minOccurs="0" maxOccurs="1" name="VariableName" type="VariableNameDataType"/>\r
-            <xs:element minOccurs="0" maxOccurs="1" name="VariableGuid" type="VariableGuidType"/>\r
-            <xs:element minOccurs="0" maxOccurs="1" name="VariableOffset" type="Hex64BitDataType"/>\r
-            <xs:element minOccurs="0" maxOccurs="1" name="HiiDefaultValue" type="xs:normalizedString"/>\r
+            <xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="VariableNameDataType"/>\r
+            <xs:element minOccurs="0" maxOccurs="1" name="VariableGuid" type="C_NameType"/>\r
+            <xs:element minOccurs="1" maxOccurs="1" name="VariableOffset" type="Hex64BitDataType"/>\r
+            <xs:element minOccurs="1" maxOccurs="1" name="HiiDefaultValue" type="DefaultValueType"/>\r
         </xs:sequence>\r
     </xs:group>\r
     <xs:group name="VpdEnable">\r
             <xs:documentation xml:lang="en">If VpdEnable group is specified, then VpdEnable is default true</xs:documentation>\r
         </xs:annotation>\r
         <xs:sequence>\r
-            <xs:element minOccurs="0" maxOccurs="1" name="VpdOffset" type="Hex64BitDataType"/>\r
+            <xs:element minOccurs="1" maxOccurs="1" name="VpdOffset" type="Hex64BitDataType"/>\r
         </xs:sequence>\r
     </xs:group>\r
     <xs:element name="PcdCoded">\r
             <xs:documentation xml:lang="en">Child of Module Surface Area Description (MSA)</xs:documentation>\r
         </xs:annotation>\r
         <xs:complexType>\r
-            <xs:sequence minOccurs="1">\r
-                <xs:element maxOccurs="unbounded" name="PcdEntry">\r
+            <xs:sequence>\r
+                <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">\r
                     <xs:annotation>\r
                         <xs:documentation xml:lang="en">This is the valid content of the PCD table of a Module. The contents may not be wired at build time, and these only refer to Platform Build values, not modules.</xs:documentation>\r
                         <xs:documentation xml:lang="en">This element is valid for PcdInfo.xml and FPD files.</xs:documentation>\r
                     </xs:annotation>\r
                     <xs:complexType>\r
                         <xs:sequence>\r
-                            <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
-                            <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValue"/>\r
-                            <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>                            \r
+                            <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
                         </xs:sequence>\r
                         <!-- MSA file declares a single usage, and must match one of the entries in what the SPD file declares as the set of possible Item Types. -->\r
-                        <xs:attribute name="PcdItemType" type="PcdItemTypes" use="required"/>\r
+                        <xs:attributeGroup ref="PcdCodedAttributes"/>\r
                     </xs:complexType>\r
                 </xs:element>\r
             </xs:sequence>\r
                 <xs:element maxOccurs="unbounded" name="PcdEntry">\r
                     <xs:complexType>\r
                         <xs:sequence>\r
-                            <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
                             <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>\r
-                            <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>                            \r
+                            <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
                             <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
                             <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" type="PcdListType"/>\r
-                            <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValue"/>\r
-                            <xs:element minOccurs="1" maxOccurs="1" ref="HelpText"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
                         </xs:sequence>\r
                         <xs:attributeGroup ref="PcdDeclarationAttributes"/>\r
                     </xs:complexType>\r
                             <xs:element minOccurs="0" maxOccurs="1" name="VariableGuid" type="VariableGuidType"/>\r
                             <xs:element minOccurs="0" maxOccurs="1" name="DataOffset" type="Hex64BitDataType"/>\r
                             <xs:element default="0" minOccurs="0" maxOccurs="1" name="GuidOffset" type="Hex64BitDataType"/>\r
-                            <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValue"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>\r
                         </xs:sequence>\r
                         <xs:attributeGroup ref="PcdAttributes"/>\r
                     </xs:complexType>\r
                 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
                     <xs:complexType>\r
                         <xs:sequence>\r
-                            <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
                             <xs:choice>\r
                                 <!-- DO NOT USE removing Guid in final, use GuidValue instead -->\r
                                 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
                                 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
                             </xs:choice>\r
-                            <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
                         </xs:sequence>\r
                         <xs:attributeGroup ref="PpiDeclarationAttributes"/>\r
                     </xs:complexType>\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1">\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Ppi">\r
-                    <xs:complexType>\r
-                        <xs:simpleContent>\r
-                            <xs:extension base="C_Name">\r
-                                <xs:attributeGroup ref="PpiAttributes"/>\r
-                            </xs:extension>\r
-                        </xs:simpleContent>\r
+                    <xs:complexType mixed="true">\r
+                        <xs:sequence>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="PpiCName" type="C_NameType"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
+                        </xs:sequence>\r
+                        <xs:attributeGroup ref="PpiAttributes"/>\r
                     </xs:complexType>\r
                 </xs:element>\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="PpiNotify">\r
-                    <xs:complexType>\r
-                        <xs:simpleContent>\r
-                            <xs:extension base="C_Name">\r
-                                <xs:attributeGroup ref="PpiNotifyAttributes"/>\r
-                            </xs:extension>\r
-                        </xs:simpleContent>\r
+                    <xs:complexType mixed="true">\r
+                        <xs:sequence>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="PpiNotifyCName" type="C_NameType"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
+                        </xs:sequence>\r
+                        <xs:attributeGroup ref="PpiNotifyAttributes"/>\r
                     </xs:complexType>\r
                 </xs:element>\r
                 <!-- DO NOT USE Arch element, use Arch Attribute in above instead. -->\r
                 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
                     <xs:complexType>\r
                         <xs:sequence>\r
-                            <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
                             <xs:choice>\r
                                 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
                                 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
                             </xs:choice>\r
-                            <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
                         </xs:sequence>\r
                         <xs:attributeGroup ref="ProtocolDeclarationAttributes"/>\r
                     </xs:complexType>\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">\r
-                    <xs:complexType>\r
-                        <xs:simpleContent>\r
-                            <xs:extension base="C_Name">\r
-                                <xs:attributeGroup ref="ProtocolAttributes"/>\r
-                            </xs:extension>\r
-                        </xs:simpleContent>\r
+                    <xs:complexType mixed="true">\r
+                        <xs:sequence>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="ProtocolCName" type="C_NameType"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
+                        </xs:sequence>\r
+                        <xs:attributeGroup ref="ProtocolAttributes"/>\r
                     </xs:complexType>\r
                 </xs:element>\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">\r
-                    <xs:complexType>\r
-                        <xs:simpleContent>\r
-                            <xs:extension base="C_Name">\r
-                                <xs:attributeGroup ref="ProtocolNotifyAttributes"/>\r
-                            </xs:extension>\r
-                        </xs:simpleContent>\r
+                    <xs:complexType mixed="true">\r
+                        <xs:sequence>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="ProtocolNotifyCName" type="C_NameType"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
+                        </xs:sequence>\r
+                        <xs:attributeGroup ref="ProtocolNotifyAttributes"/>\r
                     </xs:complexType>\r
                 </xs:element>\r
                 <!-- DO NOT USE! removing Arch element, use Arch attribute of Protocol or ProtocolNotify instead. -->\r
                             <xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">\r
                                 <xs:complexType>\r
                                     <xs:simpleContent>\r
-                                        <xs:extension base="C_Name">\r
+                                        <xs:extension base="C_NameType">\r
                                             <xs:attributeGroup ref="ProtocolAttributes"/>\r
                                         </xs:extension>\r
                                     </xs:simpleContent>\r
                             <xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">\r
                                 <xs:complexType>\r
                                     <xs:simpleContent>\r
-                                        <xs:extension base="C_Name">\r
+                                        <xs:extension base="C_NameType">\r
                                             <xs:attributeGroup ref="ProtocolNotifyAttributes"/>\r
                                         </xs:extension>\r
                                     </xs:simpleContent>\r
     </xs:element>\r
     <xs:element name="SkuInfo">\r
         <xs:complexType>\r
-            <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
-                <xs:element name="UiSkuName">\r
+            <xs:sequence>\r
+                <xs:element minOccurs="1" maxOccurs="unbounded" name="UiSkuName">\r
                     <xs:complexType>\r
                         <xs:simpleContent>\r
                             <xs:extension base="UiNameType">\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
                 <xs:element name="SystemTable">\r
-                    <xs:complexType mixed="true">\r
+                    <xs:complexType>\r
                         <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
                             <!-- Remove Entry from Use -->\r
                             <xs:element minOccurs="0" maxOccurs="1" name="Entry" type="xs:normalizedString"/>\r
                         <xs:attributeGroup ref="SystemTableAttributes"/>\r
                     </xs:complexType>\r
                 </xs:element>\r
+                <xs:element minOccurs="0" maxOccurs="unbounded" name="SystemTableCNames">\r
+                    <xs:complexType>\r
+                        <xs:sequence>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="SystemTableCName" type="C_NameType"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
+                        </xs:sequence>\r
+                        <xs:attributeGroup ref="SystemTableAttributes"/>\r
+                    </xs:complexType>\r
+                </xs:element>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
                 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##local"/>\r
             </xs:sequence>\r
             <xs:attribute name="UserID" type="xs:NCName" use="required"/>\r
-            <xs:attribute name="Identifier" type="xs:integer" use="required"/>\r
+            <xs:attribute name="Identifier" type="xs:nonNegativeInteger" use="required"/>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="Variables">\r
                                 <!-- DO NOT USE, use GuidC_Name instead -->\r
                                 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
                                 <!-- Make GuidC_Name required -->\r
-                                <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>\r
+                                <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>\r
                             </xs:choice>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>                            \r
                             <!-- DO NOT USE, removiing  ByteOffset, Bit Offset and OffsetBitSize-->\r
                             <xs:element minOccurs="0" maxOccurs="1" name="ByteOffset" type="HexWordDataType">\r
                                 <xs:annotation>\r