diff options
-rw-r--r-- | Tools/XMLSchema/FrameworkDataAttributes.xsd | 4 | ||||
-rw-r--r-- | Tools/XMLSchema/FrameworkDataElements.xsd | 56 | ||||
-rw-r--r-- | Tools/XMLSchema/FrameworkDataTypes.xsd | 4 | ||||
-rw-r--r-- | Tools/XMLSchema/FrameworkHeaders.xsd | 15 | ||||
-rw-r--r-- | Tools/XMLSchema/FrameworkPlatformDataElements.xsd | 33 | ||||
-rw-r--r-- | Tools/XMLSchema/NamingConvention.xsd | 2 |
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>
|