summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Tools/XMLSchema/FrameworkDataAttributes.xsd4
-rw-r--r--Tools/XMLSchema/FrameworkDataElements.xsd56
-rw-r--r--Tools/XMLSchema/FrameworkDataTypes.xsd4
-rw-r--r--Tools/XMLSchema/FrameworkHeaders.xsd15
-rw-r--r--Tools/XMLSchema/FrameworkPlatformDataElements.xsd33
-rw-r--r--Tools/XMLSchema/NamingConvention.xsd2
6 files changed, 66 insertions, 48 deletions
diff --git a/Tools/XMLSchema/FrameworkDataAttributes.xsd b/Tools/XMLSchema/FrameworkDataAttributes.xsd
index b74475e207..5e6bf5bcbf 100644
--- a/Tools/XMLSchema/FrameworkDataAttributes.xsd
+++ b/Tools/XMLSchema/FrameworkDataAttributes.xsd
@@ -367,6 +367,10 @@
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
+ <xs:attributeGroup name="PcdBuildDefinitionAttributes">
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="ItemType" type="PcdItemTypes" use="required"/>
+ </xs:attributeGroup>
<xs:attributeGroup name="PcdDeclarationAttributes">
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
diff --git a/Tools/XMLSchema/FrameworkDataElements.xsd b/Tools/XMLSchema/FrameworkDataElements.xsd
index 8427b73832..8025bfd0b2 100644
--- a/Tools/XMLSchema/FrameworkDataElements.xsd
+++ b/Tools/XMLSchema/FrameworkDataElements.xsd
@@ -1293,16 +1293,22 @@
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
- <xs:element minOccurs="1" maxOccurs="1" name="Token" type="HexDoubleWordDataType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>
<xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>
<xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
- <xs:group minOccurs="0" maxOccurs="1" ref="SkuGroup"/>
- <xs:choice minOccurs="0" maxOccurs="1">
- <xs:group minOccurs="0" maxOccurs="1" ref="HiiEnable"/>
- <xs:group minOccurs="0" maxOccurs="1" ref="VpdEnable"/>
- </xs:choice>
- <xs:element minOccurs="1" maxOccurs="1" name="DatumSize" type="DatumSizeLimitation"/>
- <xs:element minOccurs="1" maxOccurs="1" name="Value" type="xs:normalizedString"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize" type="DatumSizeLimitation"/>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="SkuInfo">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" name="SkuId" type="xs:nonNegativeInteger"/>
+ <xs:choice>
+ <xs:group minOccurs="0" maxOccurs="1" ref="HiiEnable"/>
+ <xs:group minOccurs="0" maxOccurs="1" ref="VpdEnable"/>
+ <xs:group minOccurs="0" maxOccurs="1" ref="DefaultGroup"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
</xs:sequence>
<xs:attributeGroup ref="PcdAttributes"/>
</xs:complexType>
@@ -1320,23 +1326,22 @@
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
- <xs:element minOccurs="1" maxOccurs="1" name="Token" type="HexDoubleWordDataType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>
<xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>
<xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
- <xs:group minOccurs="0" maxOccurs="1" ref="SkuGroup"/>
- <xs:choice minOccurs="0" maxOccurs="1">
- <xs:group minOccurs="0" maxOccurs="1" ref="HiiEnable"/>
- <xs:group minOccurs="0" maxOccurs="1" ref="VpdEnable"/>
- </xs:choice>
- <xs:element minOccurs="0" maxOccurs="1" name="DatumSize" type="DatumSizeLimitation"/>
- <xs:element minOccurs="0" maxOccurs="1" name="Value" type="xs:normalizedString"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Value" type="xs:normalizedString"/>
</xs:sequence>
- <xs:attributeGroup ref="PcdAttributes"/>
+ <xs:attributeGroup ref="PcdBuildDefinitionAttributes"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
+ <xs:group name="DefaultGroup">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="Value" type="xs:normalizedString"/>
+ </xs:sequence>
+ </xs:group>
<xs:group name="HiiEnable">
<xs:annotation>
<xs:documentation xml:lang="en">If HiiEnable group is specified, then HiiEnable is default true</xs:documentation>
@@ -1355,21 +1360,6 @@
<xs:element minOccurs="0" maxOccurs="1" name="VpdOffset" type="Hex64BitDataType"/>
</xs:sequence>
</xs:group>
- <xs:group name="SkuGroup">
- <xs:sequence>
- <xs:element default="0x00" minOccurs="0" maxOccurs="1" name="SkuSet" type="SkuListType"/>
- <xs:element default="0x00" minOccurs="0" maxOccurs="1" name="SkuList" type="SkuListType"/>
- <xs:element default="false" minOccurs="0" maxOccurs="1" name="SkuDataArrayEnable" type="xs:boolean"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="SkuData">
- <xs:complexType>
- <xs:sequence minOccurs="1">
- <xs:element name="Id" type="xs:int"/>
- <xs:element name="Value" type="xs:normalizedString"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:group>
<xs:element name="PcdCoded">
<xs:annotation>
<xs:documentation xml:lang="en">Child of Module Surface Area Description (MSA)</xs:documentation>
@@ -1406,7 +1396,7 @@
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
- <xs:element minOccurs="1" maxOccurs="1" name="Token" type="Token"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>
<xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>
<xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
<xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" type="PcdListType"/>
diff --git a/Tools/XMLSchema/FrameworkDataTypes.xsd b/Tools/XMLSchema/FrameworkDataTypes.xsd
index 885ab5b77b..8ec39f5480 100644
--- a/Tools/XMLSchema/FrameworkDataTypes.xsd
+++ b/Tools/XMLSchema/FrameworkDataTypes.xsd
@@ -429,6 +429,10 @@
<xs:simpleType name="Token">
<xs:union memberTypes="GuidArrayType GuidNamingConvention HexDoubleWordDataType"/>
</xs:simpleType>
+ <!-- TokenDataType is xs:nonNegativeInteger in final -->
+ <xs:simpleType name="TokenDataType">
+ <xs:union memberTypes="HexDoubleWordDataType xs:nonNegativeInteger"/>
+ </xs:simpleType>
<xs:simpleType name="ToolChains">
<xs:restriction base="UCNameType">
<xs:enumeration value="MSFT"/>
diff --git a/Tools/XMLSchema/FrameworkHeaders.xsd b/Tools/XMLSchema/FrameworkHeaders.xsd
index a68e260df9..7dd823aa15 100644
--- a/Tools/XMLSchema/FrameworkHeaders.xsd
+++ b/Tools/XMLSchema/FrameworkHeaders.xsd
@@ -188,29 +188,32 @@
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
<!-- GuidValue needs to be required -->
</xs:choice>
+ <!-- Version needs to be xs:decimal in final -->
<xs:element minOccurs="0" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="0" maxOccurs="1" ref="License"/>
<xs:choice minOccurs="1" maxOccurs="1">
- <xs:element minOccurs="0" maxOccurs="1" ref="Created"/>
<!-- DO NOT USE Created needs to be removed -->
+ <xs:element minOccurs="0" maxOccurs="1" ref="Created"/>
+ <!-- DO NOT USE CreatedDate needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>
- <!-- CreatedDate needs to be required -->
</xs:choice>
- <xs:element minOccurs="0" maxOccurs="1" ref="CreatedBy"/>
<!-- DO NOT USE CreatedBy needs to be removed -->
+ <xs:element minOccurs="0" maxOccurs="1" ref="CreatedBy"/>
<xs:choice>
- <xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>
<!-- DO NOT USE Updated needs to be removed -->
+ <xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>
+ <!-- DO NOT USE ModifiedDate needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>
</xs:choice>
- <xs:element minOccurs="0" maxOccurs="1" ref="PackageType"/>
<!-- DO NOT USE PackageType needs to be removed -->
+ <xs:element minOccurs="0" maxOccurs="1" ref="PackageType"/>
+ <!-- DO NOT USE BuildTarget needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" name="BuildTarget" type="BuildTargets"/>
+ <!-- Specification needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052 -->
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>
- <!-- Specification needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00090000 -->
</xs:sequence>
</xs:complexType>
</xs:element>
diff --git a/Tools/XMLSchema/FrameworkPlatformDataElements.xsd b/Tools/XMLSchema/FrameworkPlatformDataElements.xsd
index 1cab356b2f..a32b28c2f3 100644
--- a/Tools/XMLSchema/FrameworkPlatformDataElements.xsd
+++ b/Tools/XMLSchema/FrameworkPlatformDataElements.xsd
@@ -259,8 +259,20 @@
<xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>
<!-- DO NOT USE! REMOVE Guids in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>
- <!-- EXTERNS stays in FINAL -->
- <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>
+ <xs:choice minOccurs="0">
+ <!-- DO NOT USE! REMOVE Externs stays in FINAL -->
+ <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="Extern">
+ <xs:annotation>
+ <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>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" ref="Specification"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
<xs:choice>
<!-- DO NOT USE! REMOVE PcdBuildDeclarations in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDeclarations"/>
@@ -320,12 +332,17 @@
</xs:annotation>
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" maxOccurs="1" name="SEC" type="Components"/>
- <xs:element minOccurs="0" maxOccurs="1" name="PEI_CORE" type="Components"/>
- <xs:element minOccurs="0" maxOccurs="1" name="PEIM" type="Components"/>
- <xs:element minOccurs="0" maxOccurs="1" name="DXE_CORE" type="Components"/>
- <xs:element minOccurs="0" maxOccurs="1" name="DXE_DRIVERS" type="Components"/>
- <xs:element minOccurs="0" maxOccurs="1" name="OTHER_COMPONENTS" type="Components"/>
+ <xs:choice>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="SEC" type="Components"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="PEI_CORE" type="Components"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="PEIM" type="Components"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="DXE_CORE" type="Components"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="DXE_DRIVERS" type="Components"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="OTHER_COMPONENTS" type="Components"/>
+ </xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" ref="ModuleSA"/>
+ </xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
diff --git a/Tools/XMLSchema/NamingConvention.xsd b/Tools/XMLSchema/NamingConvention.xsd
index a44d3b6bad..99e28e307e 100644
--- a/Tools/XMLSchema/NamingConvention.xsd
+++ b/Tools/XMLSchema/NamingConvention.xsd
@@ -184,7 +184,7 @@
<xs:annotation>
<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>
</xs:annotation>
- <xs:restriction base="xs:string">
+ <xs:restriction base="xs:NCName">
<xs:pattern value="(([a-zA-Z][a-zA-Z0-9]*)(_)*(.)*)+"/>
</xs:restriction>
</xs:simpleType>