+ <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:documentation xml:lang="en">FPD uses this PCD information for Dynamic PCDs Only</xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="0" 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="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:element minOccurs="0" maxOccurs="1" name="MaxDatumSize" type="DatumSizeLimitation"/>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="SkuInfo">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="SkuId" type="xs:nonNegativeInteger"/>\r
+ <xs:choice>\r
+ <xs:group minOccurs="0" maxOccurs="1" ref="HiiEnable"/>\r
+ <xs:group minOccurs="0" maxOccurs="1" ref="VpdEnable"/>\r
+ <xs:group minOccurs="0" maxOccurs="1" ref="DefaultGroup"/>\r
+ </xs:choice>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ <xs:attributeGroup ref="PcdAttributes"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element name="PcdBuildDefinition">\r
+ <xs:annotation>\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:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\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:element minOccurs="0" maxOccurs="1" name="MaxDatumSize" type="DatumSizeLimitation"/> \r
+ <xs:element minOccurs="0" maxOccurs="1" name="Value" type="xs:normalizedString"/>\r
+ </xs:sequence>\r
+ <xs:attributeGroup ref="PcdBuildDefinitionAttributes"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\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:sequence>\r
+ </xs:group>\r
+ <xs:group name="HiiEnable">\r
+ <xs:annotation>\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:sequence>\r
+ </xs:group>\r
+ <xs:group name="VpdEnable">\r
+ <xs:annotation>\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:sequence>\r
+ </xs:group>\r
+ <xs:element name="PcdCoded">\r
+ <xs:annotation>\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: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: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:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- LAH This is PcdDeclarations FINAL version -->\r
+ <xs:element name="PcdDeclarations">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en">Child of Package Surface Area Description (SPD)</xs:documentation>\r
+ <xs:documentation xml:lang="en">This section is for entering information about a package's PCDs</xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence minOccurs="1">\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="Token" type="TokenDataType"/>\r
+ <xs:element minOccurs="1" 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:sequence>\r
+ <xs:attributeGroup ref="PcdDeclarationAttributes"/>\r