This will handle both. I will start doing the Branch stripped out version with only new stuff in it now.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@451
6f19259b-4bc3-4df7-8a09-
765794883524
<!-- DO NOT USE remove OverrideID from use -->\r
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
</xs:attributeGroup>\r
<!-- DO NOT USE remove OverrideID from use -->\r
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
</xs:attributeGroup>\r
+ <xs:attributeGroup name="PcdBuildDefinitionAttributes">\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="ItemType" type="PcdItemTypes" use="required"/>\r
+ </xs:attributeGroup>\r
<xs:attributeGroup name="PcdDeclarationAttributes">\r
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
<xs:attributeGroup name="PcdDeclarationAttributes">\r
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
<xs:complexType>\r
<xs:sequence>\r
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\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="HexDoubleWordDataType"/>\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="TokenSpaceGuid" type="GuidType"/>\r
<xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
- <xs:group minOccurs="0" maxOccurs="1" ref="SkuGroup"/>\r
- <xs:choice minOccurs="0" maxOccurs="1">\r
- <xs:group minOccurs="0" maxOccurs="1" ref="HiiEnable"/>\r
- <xs:group minOccurs="0" maxOccurs="1" ref="VpdEnable"/>\r
- </xs:choice>\r
- <xs:element minOccurs="1" maxOccurs="1" name="DatumSize" type="DatumSizeLimitation"/>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Value" type="xs:normalizedString"/>\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" 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:sequence>\r
<xs:attributeGroup ref="PcdAttributes"/>\r
</xs:complexType>\r
<xs:complexType>\r
<xs:sequence>\r
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\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="HexDoubleWordDataType"/>\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="TokenSpaceGuid" type="GuidType"/>\r
<xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
- <xs:group minOccurs="0" maxOccurs="1" ref="SkuGroup"/>\r
- <xs:choice minOccurs="0" maxOccurs="1">\r
- <xs:group minOccurs="0" maxOccurs="1" ref="HiiEnable"/>\r
- <xs:group minOccurs="0" maxOccurs="1" ref="VpdEnable"/>\r
- </xs:choice>\r
- <xs:element minOccurs="0" maxOccurs="1" name="DatumSize" type="DatumSizeLimitation"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Value" type="xs:normalizedString"/>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Value" type="xs:normalizedString"/>\r
- <xs:attributeGroup ref="PcdAttributes"/>\r
+ <xs:attributeGroup ref="PcdBuildDefinitionAttributes"/>\r
</xs:complexType>\r
</xs:element>\r
</xs:sequence>\r
</xs:complexType>\r
</xs:element>\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: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:element minOccurs="0" maxOccurs="1" name="VpdOffset" type="Hex64BitDataType"/>\r
</xs:sequence>\r
</xs:group>\r
<xs:element minOccurs="0" maxOccurs="1" name="VpdOffset" type="Hex64BitDataType"/>\r
</xs:sequence>\r
</xs:group>\r
- <xs:group name="SkuGroup">\r
- <xs:sequence>\r
- <xs:element default="0x00" minOccurs="0" maxOccurs="1" name="SkuSet" type="SkuListType"/>\r
- <xs:element default="0x00" minOccurs="0" maxOccurs="1" name="SkuList" type="SkuListType"/>\r
- <xs:element default="false" minOccurs="0" maxOccurs="1" name="SkuDataArrayEnable" type="xs:boolean"/>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="SkuData">\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: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:element name="PcdCoded">\r
<xs:annotation>\r
<xs:documentation xml:lang="en">Child of Module Surface Area Description (MSA)</xs:documentation>\r
<xs:complexType>\r
<xs:sequence>\r
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\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="Token"/>\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="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:simpleType name="Token">\r
<xs:union memberTypes="GuidArrayType GuidNamingConvention HexDoubleWordDataType"/>\r
</xs:simpleType>\r
<xs:simpleType name="Token">\r
<xs:union memberTypes="GuidArrayType GuidNamingConvention HexDoubleWordDataType"/>\r
</xs:simpleType>\r
+ <!-- TokenDataType is xs:nonNegativeInteger in final -->\r
+ <xs:simpleType name="TokenDataType">\r
+ <xs:union memberTypes="HexDoubleWordDataType xs:nonNegativeInteger"/>\r
+ </xs:simpleType>\r
<xs:simpleType name="ToolChains">\r
<xs:restriction base="UCNameType">\r
<xs:enumeration value="MSFT"/>\r
<xs:simpleType name="ToolChains">\r
<xs:restriction base="UCNameType">\r
<xs:enumeration value="MSFT"/>\r
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
<!-- GuidValue needs to be required -->\r
</xs:choice>\r
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
<!-- GuidValue needs to be required -->\r
</xs:choice>\r
+ <!-- Version needs to be xs:decimal in final -->\r
<xs:element minOccurs="0" maxOccurs="1" ref="Version"/>\r
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>\r
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>\r
<xs:element minOccurs="0" maxOccurs="1" ref="Copyright"/>\r
<xs:element minOccurs="0" maxOccurs="1" ref="License"/>\r
<xs:choice minOccurs="1" maxOccurs="1">\r
<xs:element minOccurs="0" maxOccurs="1" ref="Version"/>\r
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>\r
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>\r
<xs:element minOccurs="0" maxOccurs="1" ref="Copyright"/>\r
<xs:element minOccurs="0" maxOccurs="1" ref="License"/>\r
<xs:choice minOccurs="1" maxOccurs="1">\r
- <xs:element minOccurs="0" maxOccurs="1" ref="Created"/>\r
<!-- DO NOT USE Created needs to be removed -->\r
<!-- DO NOT USE Created needs to be removed -->\r
+ <xs:element minOccurs="0" maxOccurs="1" ref="Created"/>\r
+ <!-- DO NOT USE CreatedDate needs to be removed -->\r
<xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>\r
<xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>\r
- <!-- CreatedDate needs to be required -->\r
- <xs:element minOccurs="0" maxOccurs="1" ref="CreatedBy"/>\r
<!-- DO NOT USE CreatedBy needs to be removed -->\r
<!-- DO NOT USE CreatedBy needs to be removed -->\r
+ <xs:element minOccurs="0" maxOccurs="1" ref="CreatedBy"/>\r
- <xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>\r
<!-- DO NOT USE Updated needs to be removed -->\r
<!-- DO NOT USE Updated needs to be removed -->\r
+ <xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>\r
+ <!-- DO NOT USE ModifiedDate needs to be removed -->\r
<xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>\r
</xs:choice>\r
<xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>\r
</xs:choice>\r
- <xs:element minOccurs="0" maxOccurs="1" ref="PackageType"/>\r
<!-- DO NOT USE PackageType needs to be removed -->\r
<!-- DO NOT USE PackageType needs to be removed -->\r
+ <xs:element minOccurs="0" maxOccurs="1" ref="PackageType"/>\r
+ <!-- DO NOT USE BuildTarget needs to be removed -->\r
<xs:element minOccurs="0" maxOccurs="1" name="BuildTarget" type="BuildTargets"/>\r
<xs:element minOccurs="0" maxOccurs="1" name="BuildTarget" type="BuildTargets"/>\r
+ <!-- Specification needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052 -->\r
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>\r
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>\r
- <!-- Specification needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00090000 -->\r
</xs:sequence>\r
</xs:complexType>\r
</xs:element>\r
</xs:sequence>\r
</xs:complexType>\r
</xs:element>\r
<xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>\r
<!-- DO NOT USE! REMOVE Guids in FINAL -->\r
<xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>\r
<xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>\r
<!-- DO NOT USE! REMOVE Guids in FINAL -->\r
<xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>\r
- <!-- EXTERNS stays in FINAL -->\r
- <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>\r
+ <xs:choice minOccurs="0">\r
+ <!-- DO NOT USE! REMOVE Externs stays in FINAL -->\r
+ <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Extern">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en">Only specification is allow here. We need to let this be an addtion OR, if the WORD portion exists, this entry takes precedence.</xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" ref="Specification"/>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:choice>\r
<xs:choice>\r
<!-- DO NOT USE! REMOVE PcdBuildDeclarations in FINAL -->\r
<xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDeclarations"/>\r
<xs:choice>\r
<!-- DO NOT USE! REMOVE PcdBuildDeclarations in FINAL -->\r
<xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDeclarations"/>\r
</xs:annotation>\r
<xs:complexType>\r
<xs:sequence>\r
</xs:annotation>\r
<xs:complexType>\r
<xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="1" name="SEC" type="Components"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="PEI_CORE" type="Components"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="PEIM" type="Components"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="DXE_CORE" type="Components"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="DXE_DRIVERS" type="Components"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="OTHER_COMPONENTS" type="Components"/>\r
+ <xs:choice>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="SEC" type="Components"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="PEI_CORE" type="Components"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="PEIM" type="Components"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="DXE_CORE" type="Components"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="DXE_DRIVERS" type="Components"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="OTHER_COMPONENTS" type="Components"/>\r
+ </xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" ref="ModuleSA"/>\r
+ </xs:choice>\r
</xs:sequence>\r
</xs:complexType>\r
</xs:element>\r
</xs:sequence>\r
</xs:complexType>\r
</xs:element>\r
<xs:annotation>\r
<xs:documentation xml:lang="en"> This defines what a Platform Name is: Alphanumeric characters and optional underscore (_) or dash (-) characters, followed by a dot and more alphanumeric characters. </xs:documentation>\r
</xs:annotation>\r
<xs:annotation>\r
<xs:documentation xml:lang="en"> This defines what a Platform Name is: Alphanumeric characters and optional underscore (_) or dash (-) characters, followed by a dot and more alphanumeric characters. </xs:documentation>\r
</xs:annotation>\r
- <xs:restriction base="xs:string">\r
+ <xs:restriction base="xs:NCName">\r
<xs:pattern value="(([a-zA-Z][a-zA-Z0-9]*)(_)*(.)*)+"/>\r
</xs:restriction>\r
</xs:simpleType>\r
<xs:pattern value="(([a-zA-Z][a-zA-Z0-9]*)(_)*(.)*)+"/>\r
</xs:restriction>\r
</xs:simpleType>\r