Updated Schema per e-mails.
authorlhauch <lhauch@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 2 Jun 2006 00:24:08 +0000 (00:24 +0000)
committerlhauch <lhauch@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 2 Jun 2006 00:24:08 +0000 (00:24 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@379 6f19259b-4bc3-4df7-8a09-765794883524

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

index 63d8823..77f3ada 100644 (file)
@@ -52,6 +52,7 @@
     <xs:attributeGroup name="FilenameAttributes">\r
         <xs:attribute name="Usage" type="FileNameUsage" use="optional"/>\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
+        <xs:attribute name="GuidValue" type="GuidType" use="optional"/>\r
         <xs:attribute name="Path" type="DirectoryNamingConvention" use="optional"/>\r
         <xs:attribute name="FileType" type="xs:string" use="optional"/>\r
         <xs:attribute name="ToolChain" type="ToolChains" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="ModuleNameAttributes">\r
-        <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
+        <xs:attribute name="Guid" type="GuidType" use="required"/>\r
+        <xs:attribute name="Version" type="VersionDataType" use="optional"/>\r
+    </xs:attributeGroup>\r
+    <xs:attributeGroup name="ModuleNameSaAttributes">\r
+        <xs:attribute name="ModuleName" type="xs:NCName" use="required"/>\r
+        <xs:attribute name="Guid" type="GuidType" use="required"/>\r
         <xs:attribute name="Version" type="VersionDataType" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="MsaAttributes">\r
         <xs:attribute name="Platform" type="PlatformNamingConvention" use="optional"/>\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
         <xs:attribute name="ToolChain" type="ToolChains" use="optional"/>\r
+        <xs:attribute name="BuildTarget" type="BuildTargets" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="PackageAttributes">\r
         <xs:attribute name="Usage" type="PackageUsage" use="optional"/>\r
     <xs:attributeGroup name="PackageNameAttributes">\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="Version" type="VersionDataType" use="optional"/>\r
+        <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="PcdAttributes">\r
         <xs:annotation>\r
index 52e5c1c..8579d79 100644 (file)
     </xs:element>\r
     <xs:element name="LibraryClass">\r
         <xs:annotation>\r
-            <xs:documentation xml:lang="en">Define in the MSA and/or SPD, what class of library is being produced by a library module - for components, it can also specify what class of library is consumed.</xs:documentation>\r
+            <xs:documentation xml:lang="en">Used in MSA files.  This defines what class of library is being supported = produced  (library module) or consumed by a  module.</xs:documentation>\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:simpleContent>\r
                 <xs:extension base="BaseNameConvention">\r
-                    <xs:attribute name="Usage" type="LibraryUsage" use="optional"/>\r
+                    <xs:attribute name="Usage" type="LibraryUsage" use="required"/>\r
+                    <xs:attribute name="RecommendedInstance" type="BaseNameConvention" use="optional"/>\r
+                    <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>\r
                 </xs:extension>\r
             </xs:simpleContent>\r
         </xs:complexType>\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:sequence minOccurs="0">\r
-                <xs:element minOccurs="1" maxOccurs="1" ref="LibraryClass"/>\r
+                <xs:element minOccurs="1" maxOccurs="1" name="LibraryClass">\r
+                    <xs:annotation>\r
+                        <xs:documentation xml:lang="en">Used in MSA and SPD files.  This defines what class of library is being supported = produced  (library module) or consumed by a  module.</xs:documentation>\r
+                    </xs:annotation>\r
+                    <xs:complexType>\r
+                        <xs:simpleContent>\r
+                            <xs:extension base="BaseNameConvention">\r
+                                <xs:attribute name="RecommendedInstance" type="BaseNameConvention" use="optional"/>\r
+                                <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>\r
+                            </xs:extension>\r
+                        </xs:simpleContent>\r
+                    </xs:complexType>\r
+                </xs:element>\r
                 <xs:element minOccurs="1" maxOccurs="1" ref="IncludeHeader"/>\r
             </xs:sequence>\r
         </xs:complexType>\r
             <xs:sequence minOccurs="1">\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="MsaFile">\r
                     <xs:annotation>\r
-                        <xs:documentation xml:lang="en">Describe the valid content of a Surface Area Package Description (SPD) file</xs:documentation>\r
+                        <xs:documentation xml:lang="en">Surface Area Package Description (SPD) list of Module Surface Area files</xs:documentation>\r
                     </xs:annotation>\r
                     <xs:complexType>\r
                         <xs:sequence minOccurs="0" maxOccurs="1">\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
+    <xs:element name="MsaFileList">\r
+        <xs:annotation>\r
+            <xs:documentation xml:lang="en">Surface Area Package Description (SPD) list of Module Surface Area files</xs:documentation>\r
+        </xs:annotation>\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename">\r
+                     <xs:complexType>\r
+                         <xs:simpleContent>\r
+                             <xs:extension base="xs:anyURI">\r
+                                 <xs:attributeGroup ref="ModuleNameSaAttributes"/>\r
+                             </xs:extension>\r
+                         </xs:simpleContent>\r
+                    </xs:complexType>\r
+                </xs:element>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
     <xs:element name="OutputDirectory">\r
         <xs:annotation>\r
             <xs:documentation xml:lang="en">Define where we want our output to go. The Attribute, IntermediateDirectories, default MODULE, says that intermediate files will be local to the module, versus a unified directory structure.</xs:documentation>\r
index 87889e9..ecdc6d6 100644 (file)
             </xs:enumeration>\r
         </xs:restriction>\r
     </xs:simpleType>\r
+    <xs:simpleType name="BuildTargets">\r
+        <xs:restriction base="xs:NCName">\r
+            <xs:enumeration value="DEBUG"/>\r
+            <xs:enumeration value="RELEASE"/>\r
+            <xs:enumeration value="BOTH"/>\r
+        </xs:restriction>\r
+    </xs:simpleType>\r
     <xs:simpleType name="ComponentExecutionPhase">\r
         <xs:annotation>\r
             <xs:documentation xml:lang="en">These are the supported EFI/Framework Execution Phases</xs:documentation>\r
index aeae77b..718ce84 100644 (file)
@@ -63,6 +63,7 @@
                 <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>\r
                 <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>\r
                 <xs:element minOccurs="1" maxOccurs="1" ref="License"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="Specification"/>\r
                 <xs:choice minOccurs="1" maxOccurs="1">\r
                     <xs:element minOccurs="0" maxOccurs="1" ref="Created"/>\r
                     <xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>\r
@@ -87,6 +88,7 @@
                 <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>\r
                 <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>\r
                 <xs:element minOccurs="1" maxOccurs="1" ref="License"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="Specification"/>\r
                 <xs:choice minOccurs="1" maxOccurs="1">\r
                     <xs:element minOccurs="0" maxOccurs="1" ref="Created"/>\r
                     <xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:sequence>\r
-                <xs:element minOccurs="1" maxOccurs="1" ref="BaseName"/>\r
+                <xs:choice>\r
+                    <xs:element minOccurs="0" maxOccurs="1" ref="BaseName"/>\r
+                    <xs:element minOccurs="0" maxOccurs="1" name="ModuleName" type="xs:NCName"/>\r
+                </xs:choice>\r
                 <xs:element minOccurs="1" maxOccurs="1" ref="ModuleType"/>\r
                 <xs:element minOccurs="1" maxOccurs="1" ref="ComponentType"/>\r
                 <xs:choice>\r
                 <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>\r
                 <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>\r
                 <xs:element minOccurs="1" maxOccurs="1" ref="License"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="Specification"/>\r
                 <xs:choice minOccurs="1" maxOccurs="1">\r
                     <xs:element minOccurs="0" maxOccurs="1" ref="Created"/>\r
                     <xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>\r
                 </xs:choice>\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Specification"/>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
                         <xs:documentation xml:lang="en">DO NOT USE! removing from XMLSchema</xs:documentation>\r
                     </xs:annotation>\r
                 </xs:element>\r
-                <xs:element minOccurs="0" maxOccurs="1" name="BuildTarget">\r
-                    <!-- BuildTarget needs to be required -->\r
-                    <xs:simpleType>\r
-                        <xs:restriction base="xs:NCName">\r
-                            <xs:enumeration value="DEBUG"/>\r
-                            <xs:enumeration value="RELEASE"/>\r
-                            <xs:enumeration value="BOTH"/>\r
-                        </xs:restriction>\r
-                    </xs:simpleType>\r
-                </xs:element>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="BuildTarget" type="BuildTargets"/>\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>\r
                 <!-- Specification needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00090000 -->\r
             </xs:sequence>\r
index b44a37e..ca19200 100644 (file)
         </xs:annotation>\r
         <xs:restriction base="xs:normalizedString"/>\r
     </xs:simpleType>\r
+    <xs:simpleType name="PathAndFilename">\r
+        <xs:annotation>\r
+            <xs:documentation xml:lang="en"> Naming convention for a path and file name</xs:documentation>\r
+        </xs:annotation>\r
+        <xs:union memberTypes="Directory_DOS Directory_UNIX"/>\r
+    </xs:simpleType>\r
     <xs:simpleType name="PlatformNamingConvention">\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