Final Check-for TRUNK transition schema that handles both old and new elements.
authorlhauch <lhauch@de2fecce-e211-0410-80a6-f3fac2684e05>
Fri, 9 Jun 2006 05:51:19 +0000 (05:51 +0000)
committerlhauch <lhauch@de2fecce-e211-0410-80a6-f3fac2684e05>
Fri, 9 Jun 2006 05:51:19 +0000 (05:51 +0000)
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.tianocore.org/svn/edk2/trunk@451 de2fecce-e211-0410-80a6-f3fac2684e05

edk2/Tools/XMLSchema/FrameworkDataAttributes.xsd
edk2/Tools/XMLSchema/FrameworkDataElements.xsd
edk2/Tools/XMLSchema/FrameworkDataTypes.xsd
edk2/Tools/XMLSchema/FrameworkHeaders.xsd
edk2/Tools/XMLSchema/FrameworkPlatformDataElements.xsd
edk2/Tools/XMLSchema/NamingConvention.xsd

index b74475e..5e6bf5b 100644 (file)
         <!-- 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
index 8427b73..8025bfd 100644 (file)
                     <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: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: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: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:sequence>\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: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: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: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
index 885ab5b..8ec39f5 100644 (file)
     <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
index a68e260..7dd823a 100644 (file)
                     <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="Created"/>\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
-                    <!-- CreatedDate needs to be required -->\r
                 </xs:choice>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="CreatedBy"/>\r
                 <!-- DO NOT USE CreatedBy needs to be removed -->\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="CreatedBy"/>\r
                 <xs:choice>\r
-                    <xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>\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="PackageType"/>\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
+                <!-- Specification needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052 -->\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
index 1cab356..a32b28c 100644 (file)
                 <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: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
index a44d3b6..99e28e3 100644 (file)
         <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