diff options
Diffstat (limited to 'Tools/XMLSchema/FrameworkDataElements.xsd')
-rw-r--r-- | Tools/XMLSchema/FrameworkDataElements.xsd | 2706 |
1 files changed, 920 insertions, 1786 deletions
diff --git a/Tools/XMLSchema/FrameworkDataElements.xsd b/Tools/XMLSchema/FrameworkDataElements.xsd index 4bf1ee177b..59bdcbdebe 100644 --- a/Tools/XMLSchema/FrameworkDataElements.xsd +++ b/Tools/XMLSchema/FrameworkDataElements.xsd @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://www.TianoCore.org/2006/Edk2.0" targetNamespace="http://www.TianoCore.org/2006/Edk2.0">
- <!--
+ <!--
Filename: FrameworkDataElements.xsd
Copyright (c) 2006, Intel Corp.
@@ -12,1823 +12,957 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-->
+ <xs:annotation>
+ <xs:documentation xml:lang="en"> This schema defines EFI and Framework Data Elements </xs:documentation>
+ </xs:annotation>
+ <xs:include schemaLocation="NamingConvention.xsd"/>
+ <xs:include schemaLocation="FrameworkDataTypes.xsd"/>
+ <xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>
+ <xs:include schemaLocation="FrameworkDataAttributes.xsd"/>
+ <xs:element name="Abstract" type="Sentence">
<xs:annotation>
- <xs:documentation xml:lang="en"> This schema defines EFI and Framework Data Elements </xs:documentation>
+ <xs:documentation xml:lang="en">Abstract is valid for all Description Files</xs:documentation>
+ <xs:documentation xml:lang="en">This section is required. This is a single sentence to describe the module and will be used in sample files as the abstract data in the header comment section.</xs:documentation>
</xs:annotation>
- <xs:include schemaLocation="NamingConvention.xsd"/>
- <xs:include schemaLocation="FrameworkDataTypes.xsd"/>
- <xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>
- <xs:include schemaLocation="FrameworkDataAttributes.xsd"/>
- <xs:element name="Abstract" type="Sentence">
- <xs:annotation>
- <xs:documentation xml:lang="en">Abstract is valid for all Description Files</xs:documentation>
- <xs:documentation xml:lang="en">This section is required. This is a single sentence to describe the module and will be used in sample files as the abstract data in the header comment section.</xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element name="AntCmd">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is a sub-element of AntTask</xs:documentation>
- <xs:documentation xml:lang="en">This is an ant command that will be inserted into a biuld sequence. Since ant commands are valid XML statements, special care must be taken to use the correct tokens for reserved words and escape quote characters.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" name="Id" type="xs:int"/>
- <xs:element name="ExecutionOrder">
- <xs:simpleType>
- <xs:list itemType="xs:normalizedString"/>
- </xs:simpleType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="AntTask">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is a sub-element of UserDefinedAntTasks</xs:documentation>
- <xs:documentation xml:lang="en">Define a file that contains one or more ant tasks that are to be added into or replacing of sequences of build steps. These files will be called using the ant-call task on a file name. These files must be valid apache-ant formatted task files.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:choice>
- <xs:element ref="AntCmd"/>
- <xs:element ref="Filename"/>
- </xs:choice>
- <xs:attribute name="Id" type="xs:int" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="BaseName">
- <xs:annotation>
- <xs:documentation xml:lang="en">BaseName is valid for all Description Files</xs:documentation>
- <xs:documentation xml:lang="en"> We need to be able to permit different attributes for every basename </xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ </xs:element>
+ <xs:element name="AntTask">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This is a sub-element of UserDefinedAntTasks</xs:documentation>
+ <xs:documentation xml:lang="en">Define a file that contains one or more ant tasks that are to be added into or replacing of sequences of build steps. These files will be called using the ant-call task on a file name. These files must be valid apache-ant formatted task files.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="AntCmdOptions" type="xs:normalizedString"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="Filename" type="PathAndFilename"/>
+ </xs:sequence>
+ <xs:attribute name="Id" type="xs:int" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="BootModes">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">BootModes is valid for all Description Files</xs:documentation>
+ <xs:documentation xml:lang="en">This is a list of BootModes Supported by the Module</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="BootMode">
+ <xs:complexType>
+ <xs:sequence minOccurs="0">
+ <xs:element name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="BootModeAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="BuildOptions">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">BuildOptions is valid for FPD files.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" ref="UserDefinedAntTasks"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="Options"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
+ <!-- The following sections are legacy and will be removed -->
+ <xs:element minOccurs="0" maxOccurs="1" name="OutputDirectory">
+ <xs:complexType>
<xs:simpleContent>
- <xs:extension base="BaseNameConvention">
- <xs:attributeGroup ref="BaseNameAttributes"/>
- </xs:extension>
+ <xs:extension base="xs:anyURI">
+ <xs:attribute default="UNIFIED" name="IntermediateDirectories" use="optional">
+ <xs:simpleType>
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="MODULE"/>
+ <xs:enumeration value="UNIFIED"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:extension>
</xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="BootModes">
- <xs:annotation>
- <xs:documentation xml:lang="en">BootModes is valid for all Description Files</xs:documentation>
- <xs:documentation xml:lang="en">This is a list of BootModes Supported by the Module</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element name="BootMode">
- <xs:complexType>
- <xs:sequence minOccurs="0">
- <xs:element name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="BootModeAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="BuildOptions">
- <xs:annotation>
- <xs:documentation xml:lang="en">BuildOptions is valid for MBD and FPD files.</xs:documentation>
- <xs:documentation xml:lang="en">Specific Build Options, by Tool Chain, than should be applied, overriding any global options</xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Ffs">
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" maxOccurs="1" ref="UserDefinedAntTasks"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="ImageEntryPoint"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="OutputDirectory"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="Ffs"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="Sections"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="Filenames"/>
- <xs:element ref="Options" minOccurs="0" maxOccurs="1"/>
- <xs:sequence minOccurs="0">
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Option">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:normalizedString">
- <xs:attributeGroup ref="OptionAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <!-- Arch element should be removed - use Arch attributes to the above instead. -->
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
- <xs:complexType>
- <xs:sequence minOccurs="1">
- <xs:element maxOccurs="unbounded" name="Option">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:normalizedString">
- <xs:attributeGroup ref="OptionAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="ArchType" type="SupportedArchitectures"/>
- </xs:complexType>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Attribute">
+ <xs:complexType>
+ <xs:attribute name="Name" type="C_NameType"/>
+ <xs:attribute name="Value" type="C_NameType"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" maxOccurs="1" name="Sections">
+ <xs:complexType>
+ <xs:sequence minOccurs="1">
+ <xs:element name="Section" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref=" Filenames " minOccurs="0"/>
+ <xs:element name="Args" type=" ArgsType " minOccurs="0"/>
+ <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>
+ <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>
+ <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>
+ </xs:sequence>
+ <xs:attributeGroup ref=" SectionsAttributes "/>
+ </xs:complexType>
</xs:element>
- </xs:sequence>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
- </xs:sequence>
- <xs:attribute name="ToolChain" type="ToolChains"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="Options">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="unbounded" ref="Option"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="Option">
- <!-- This element is used to store flags from the Tools -->
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:normalizedString">
- <xs:attributeGroup ref="OptionAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="ModuleBuildOptions">
- <xs:complexType>
- <xs:sequence>
- <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##local"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="ModuleSaBuildOptions">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="1" name="FvBinding" type="FfsNameType"/>
- <!-- The FfsFileNameGuid allows the Platform Integrator to specify a GUID for the FFS File Name GUID -->
- <xs:element minOccurs="0" maxOccurs="1" name="FfsFileNameGuid" type="GuidType"/>
- <!-- If binding is specified, you MUST specify the FfsFormatKey -->
- <xs:element minOccurs="0" maxOccurs="1" name="FfsFormatKey" type="FfsNameType"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="Options"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="ModuleDefinitions">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="SupportedArchitectures" type="ArchListType"/>
- <xs:element minOccurs="1" maxOccurs="1" name="BinaryModule" type="xs:boolean" default="false"/>
- <xs:element minOccurs="1" maxOccurs="1" name="OutputFileBasename" type="FileNameConvention"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="C_Name" type="C_Name">
- <xs:annotation>
- <xs:documentation xml:lang="en">C_Name is valid for all Description Files</xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element name="ComponentName" type="C_Name">
- <xs:annotation>
- <xs:documentation xml:lang="en">ComponentName is valid for all Description Files</xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element name="ComponentType" type="FrameworkComponentTypes">
- <xs:annotation>
- <xs:documentation xml:lang="en">Describe the valid Framework Component Type</xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element name="ConditionalExpression">
- <!-- DO NOT USE remove and use FeatureFlag instead -->
- <xs:annotation>
- <xs:documentation xml:lang="en">A conditional expression that must be evaluated to determine whether a feature is implemented or not. The expression must be either numeric, string or boolean.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Condition" type="xs:normalizedString"/>
- </xs:sequence>
- <xs:attribute name="ConditionalTarget" type="ConditionalTarget" use="optional"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="Constructor" type="C_Name"/>
- <xs:element name="Copyright" type="Sentence"/>
- <xs:element name="Created" type="DateType"/>
- <xs:element name="CreatedDate" type="DateType"/>
- <xs:element name="CreatedBy" type="UserName"/>
- <xs:element name="DataHubs">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is a list of DataHubRecord elements.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element name="DataHubRecord">
- <xs:complexType mixed="true">
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="1" name="DataHubCName" type="C_NameType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="DataHubAttributes"/>
- </xs:complexType>
- </xs:element>
- <!-- Remove Arch and use Arch Attribute for DataHubRecord instead. -->
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="DataHubRecord">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:normalizedString">
- <xs:attributeGroup ref="DataHubAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="ArchType" type="SupportedArchitectures"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="DatabaseName">
- <xs:annotation>
- <xs:documentation xml:lang="en">The Name of the Database, "FrameworkDatabase"</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="BaseNameConvention">
- <xs:attributeGroup ref="BaseNameAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="DefaultValue">
- <xs:annotation>
- <xs:documentation xml:lang="en">The default setting of a PCD entry.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:normalizedString"/>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="Description" type="Paragraph">
- <xs:annotation>
- <xs:documentation xml:lang="en">This section is required for new modules and libraries and must contain more information than the Abstract.</xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element name="Destructor" type="C_Name"/>
- <xs:element name="DriverBinding" type="C_Name"/>
- <xs:element name="DriverConfig" type="C_Name"/>
- <xs:element name="DriverDiag" type="C_Name"/>
- <xs:element name="E-Mail" type="E-Mail"/>
- <xs:element name="Events">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is a list of MSA Events</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="1" name="CreateEvents">
- <xs:complexType>
- <xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element minOccurs="0" maxOccurs="unbounded" name="EventTypes">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>
- <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="EventAttributes"/>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="0" name="Event">
- <xs:complexType>
- <xs:sequence>
- <xs:choice>
- <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>
- <!-- DO NOT USE, removing C_Name in final -->
- <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>
- </xs:choice>
- <!-- DO NOT USE, removing Guid and GuidValue from Final -->
- <xs:choice minOccurs="0">
- <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
- </xs:choice>
- </xs:sequence>
- <xs:attributeGroup ref="EventAttributes"/>
- </xs:complexType>
- </xs:element>
- <!-- Remove Arch Section and use Arch Attribute instead in Event. -->
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="Event">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
- <xs:choice minOccurs="0">
- <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
- </xs:choice>
- </xs:sequence>
- <xs:attributeGroup ref="EventAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="ArchType" type="SupportedArchitectures"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="0" maxOccurs="1" name="SignalEvents">
- <xs:annotation>
- <xs:documentation xml:lang="en">Module has an event that is waiting to be signaled. Event is named by GUID.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ <xs:element name="Sections" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element minOccurs="0" maxOccurs="unbounded" name="EventTypes">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>
- <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="EventAttributes"/>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="0" name="Event">
- <xs:complexType>
- <xs:sequence>
- <xs:choice>
- <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>
- <!-- DO NOT USE, removing C_Name in final -->
- <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>
- </xs:choice>
- <!-- DO NOT USE, removing Guid and GuidValue from Final -->
- <xs:choice minOccurs="0">
- <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
- </xs:choice>
- </xs:sequence>
- <xs:attributeGroup ref="EventAttributes"/>
- </xs:complexType>
- </xs:element>
- <!-- Remove Arch and use Arch attribute in Event above -->
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="Event">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
- </xs:sequence>
- <xs:attributeGroup ref="EventAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="ArchType" type="SupportedArchitectures"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="ExitBootServicesCallBack" type="C_Name"/>
- <xs:element name="Externs">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is a child of MSA files.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ <xs:element name="Section">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref=" Filenames " minOccurs="0"/>
+ <xs:element name="Args" type=" ArgsType " minOccurs="0"/>
+ <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>
+ <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>
+ <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="SectionsAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attributeGroup ref=" SectionsAttributes "/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attributeGroup ref=" SectionsAttributes "/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="FfsKey" type="KeywordType" use="optional"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" maxOccurs="1" name="Sections">
+ <xs:complexType>
<xs:sequence minOccurs="1">
- <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver" type="PcdDriverTypes"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Extern">
- <xs:complexType>
- <xs:choice minOccurs="1">
- <xs:sequence minOccurs="0" maxOccurs="1">
- <xs:annotation>
- <xs:documentation xml:lang="en">Driver Module</xs:documentation>
- </xs:annotation>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="ModuleEntryPoint"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="ModuleUnloadImage"/>
- </xs:sequence>
- <xs:sequence minOccurs="0" maxOccurs="1">
- <xs:annotation>
- <xs:documentation xml:lang="en">Library Module</xs:documentation>
- </xs:annotation>
- <xs:element minOccurs="0" maxOccurs="1" ref="Constructor"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="Destructor"/>
- </xs:sequence>
- <xs:sequence minOccurs="0" maxOccurs="1">
- <xs:annotation>
- <xs:documentation xml:lang="en">Allow multiple entries for DriverBinding, ComponentName, DriverConfig and DriverDiag elements. For ComponentName, DriverConfig and/or DriverDiag - you must have a 1:1 mapping to DriverBinding if the element is defined.</xs:documentation>
- <xs:documentation xml:lang="en">Permit User Defined Extern Tags</xs:documentation>
- </xs:annotation>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="DriverBinding"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="ComponentName"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="DriverConfig"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="DriverDiag"/>
- </xs:sequence>
- <xs:sequence minOccurs="0" maxOccurs="1">
- <xs:annotation>
- <xs:documentation xml:lang="en"> Module Call Backs</xs:documentation>
- </xs:annotation>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="SetVirtualAddressMapCallBack"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="ExitBootServicesCallBack"/>
- </xs:sequence>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="UserDefined" type="C_Name"/>
- </xs:choice>
- <xs:attributeGroup ref="ExternAttributes"/>
- </xs:complexType>
- </xs:element>
- <!-- Remove Arch and use Arch Attribute in above. -->
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="Extern">
- <xs:complexType>
- <xs:choice minOccurs="1">
- <xs:sequence minOccurs="0" maxOccurs="1">
- <xs:annotation>
- <xs:documentation xml:lang="en">Driver Module</xs:documentation>
- </xs:annotation>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="ModuleEntryPoint"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="ModuleUnloadImage"/>
- </xs:sequence>
- <xs:sequence minOccurs="0" maxOccurs="1">
- <xs:annotation>
- <xs:documentation xml:lang="en">Library Module</xs:documentation>
- </xs:annotation>
- <xs:element minOccurs="0" maxOccurs="1" ref="Constructor"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="Destructor"/>
- </xs:sequence>
- <xs:sequence minOccurs="0" maxOccurs="1">
- <xs:annotation>
- <xs:documentation xml:lang="en">Allow multiple entries for DriverBinding, ComponentName, DriverConfig and DriverDiag elements. For ComponentName, DriverConfig and/or DriverDiag - you must have a 1:1 mapping to DriverBinding if the element is defined.</xs:documentation>
- <xs:documentation xml:lang="en">Permit User Defined Extern Tags</xs:documentation>
- </xs:annotation>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="DriverBinding"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="ComponentName"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="DriverConfig"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="DriverDiag"/>
- </xs:sequence>
- <xs:sequence minOccurs="0" maxOccurs="1">
- <xs:annotation>
- <xs:documentation xml:lang="en"> Module Call Backs</xs:documentation>
- </xs:annotation>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="SetVirtualAddressMapCallBack"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="ExitBootServicesCallBack"/>
- </xs:sequence>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="UserDefined" type="C_Name"/>
- </xs:choice>
- <xs:attributeGroup ref="ExternAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="ArchType" type="SupportedArchitectures"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="Ffs">
- <xs:annotation>
- <xs:documentation xml:lang="en">Define the FFS File attributes within a sections and containing sections information</xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ <xs:element name="Section" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref=" Filenames " minOccurs="0"/>
+ <xs:element name="Args" type=" ArgsType " minOccurs="0"/>
+ <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>
+ <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>
+ <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>
+ </xs:sequence>
+ <xs:attributeGroup ref=" SectionsAttributes "/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Sections" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence minOccurs="1" maxOccurs="unbounded">
+ <xs:element name="Section">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref=" Filenames " minOccurs="0"/>
+ <xs:element name="Args" type=" ArgsType " minOccurs="0"/>
+ <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>
+ <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>
+ <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>
+ </xs:sequence>
+ <xs:attributeGroup ref=" SectionsAttributes "/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attributeGroup ref=" SectionsAttributes "/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attributeGroup ref=" SectionsAttributes "/>
+ </xs:complexType>
+ </xs:element>
+ <!-- Remove to Here -->
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Copyright" type="Paragraph"/>
+ <xs:element name="DataHubs">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This is a list of DataHubRecord elements.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="DataHubRecord">
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Attribute">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="Name" type="C_Name"/>
- <xs:element minOccurs="1" maxOccurs="1" name="Value" type="C_Name"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="0" maxOccurs="1" ref="Sections"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="Filename">
- <xs:annotation>
- <xs:documentation xml:lang="en">Describe the valid content of a filename This should extend PathAndFilename - Variable names not allowed here!</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="PathAndFilename">
- <xs:attributeGroup ref="FilenameAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="Filenames">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is a list of Filenames</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="1">
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="Filename"/>
- <!-- DO NOT USE Arch remove it element and use Arch Attribute to Filename instead -->
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
- <xs:complexType>
- <xs:sequence minOccurs="1">
- <xs:element maxOccurs="unbounded" ref="Filename"/>
- </xs:sequence>
- <xs:attribute name="ArchType" type="SupportedArchitectures"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="Formsets">
- <xs:annotation>
- <xs:documentation xml:lang="en">Describe the list of a Formset elements</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element name="Formset">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="C_Name">
- <xs:attributeGroup ref="FormsetAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <!-- DO NOT USE! removing Arch element, use Arch attribute in Formset instead. -->
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="Formset">
- <xs:annotation>
- <xs:documentation xml:lang="en">Describe the valid content of a Formset</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="C_Name">
- <xs:attributeGroup ref="FormsetAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="ArchType" type="SupportedArchitectures"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="Guid">
- <xs:annotation>
- <xs:documentation xml:lang="en">Describe the valid content of a GUID</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="GuidType">
- <xs:attributeGroup ref="GuidAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="GuidDeclarations">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="1" name="DataHubCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="DataHubAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="DefaultValue">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">The default setting of a PCD entry.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:normalizedString"/>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Description" type="Paragraph">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This section is required for new modules and libraries and must contain more information than the Abstract.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="DynamicPcdBuildDefinitions">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Child of Framework Platform Description (FPD)</xs:documentation>
+ <xs:documentation xml:lang="en">FPD uses this PCD information for Dynamic PCDs Only</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdBuildData">
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
- <xs:choice minOccurs="1">
- <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
- </xs:choice>
- <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="GuidDeclarationAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="Guids">
- <xs:complexType>
- <xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element minOccurs="0" maxOccurs="unbounded" name="GuidCNames">
- <xs:annotation>
- <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="GuidCName" type="C_NameType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="GuidAttributes"/>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="0" name="GuidEntry">
- <xs:annotation>
- <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="0" maxOccurs="1">
- <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
- <!-- DO NOT USE removing GuidValue from use -->
- <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
- <!-- DO NOT USE removing FeatureFlag from use, use FeatureFlag Attribute instead -->
- <xs:element minOccurs="0" maxOccurs="unbounded" name="FeatureFlag" type="C_Name"/>
- <!-- DO NOT USE remove ConditionalExpression and use FeatureFlag instead -->
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="ConditionalExpression"/>
- <!-- DO NOT USE, remove DefaultValue from use -->
- <xs:element minOccurs="0" maxOccurs="1" ref="DefaultValue"/>
- <!-- DO NOT USE, remove HelpText from use -->
- <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>
- </xs:sequence>
- <xs:attributeGroup ref="GuidAttributes"/>
- </xs:complexType>
- </xs:element>
- <!-- DO NOT USE Arch, Arch should be removed and the attribute Arch should be used in the above. -->
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="GuidEntry">
- <xs:annotation>
- <xs:documentation xml:lang="en">Describe the valid content of a PCD GUID element</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="0" maxOccurs="1">
- <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="FeatureFlag" type="C_Name"/>
- <!-- DO NOT USE remove ConditionalExpression and use FeatureFlag instead -->
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="ConditionalExpression"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="DefaultValue"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>
- </xs:sequence>
- <xs:attributeGroup ref="GuidAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="ArchType" type="SupportedArchitectures"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="GuidValue" type="GuidType"/>
- <xs:element name="HelpText" type="Paragraph"/>
- <xs:element name="HiiPackages">
- <xs:annotation>
- <xs:documentation xml:lang="en">Describe the list of a HiiPackage elements</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element name="HiiPackage">
- <xs:complexType mixed="true">
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="1" name="HiiCName" type="C_NameType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="HiiPackageAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="Hobs">
- <xs:complexType>
- <xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element minOccurs="0" maxOccurs="unbounded" name="HobTypes">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="HobType" type="HobTypes"/>
- <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="HobAttributes"/>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="0" name="Hob">
- <xs:complexType>
- <xs:sequence>
- <xs:choice>
- <!-- Remove Name from use -->
- <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:normalizedString"/>
- <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>
- </xs:choice>
- <!-- Remove C_Name from use -->
- <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>
- <!-- Remove Guid and GuidValue from use -->
- <xs:choice minOccurs="0">
- <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
- </xs:choice>
- </xs:sequence>
- <xs:attributeGroup ref="HobAttributes"/>
- </xs:complexType>
- </xs:element>
- <!-- DO NOT USE Arch, use attribute Arch for Hob in above -->
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="Hob">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:normalizedString"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
- </xs:sequence>
- <xs:attributeGroup ref="HobAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="ArchType" type="SupportedArchitectures"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="ImageEntryPoint" type="C_Name"/>
- <xs:element name="IncludeHeader">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="PathAndFilename">
- <!-- Need to use IncludeHeaderAttributes in final -->
- <xs:attributeGroup ref="IncludeAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="Includes">
- <xs:annotation>
- <xs:documentation xml:lang="en">One or More Package Names or Arch sections is required. Includes are not files, but paths to where header files are located.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="PackageName"/>
- <!-- remove Arch element, start using the Arch attribute for the PackageName element above. -->
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
- <xs:complexType>
- <xs:sequence minOccurs="1">
- <xs:element maxOccurs="unbounded" ref="PackageName"/>
- </xs:sequence>
- <xs:attribute name="ArchType" type="SupportedArchitectures"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="IndustryStdIncludes">
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
+ <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" maxOccurs="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="DynamicBuildPcdAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Events">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This is a list of MSA Events</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="CreateEvents">
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="1" maxOccurs="unbounded" ref="IndustryStdHeader"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="IndustryStdHeader">
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="EventTypes">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="EventAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" maxOccurs="1" name="SignalEvents">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Module has an event that is waiting to be signaled. Event is named by GUID.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" maxOccurs="1" name="Header" type="UiNameType"/>
- <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>
- <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="IndustryStdHeaderAttributes"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="InstalledDate" type="DateType"/>
- <xs:element name="Libraries">
- <xs:annotation>
- <xs:documentation xml:lang="en">Different (Module) Instances of Libraries used ONLY in FPD Files.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="1">
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Library">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:NCName">
- <xs:attributeGroup ref="LibraryAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <!-- remove Arch Element HERE, start using the Arch attribute in Library element above. -->
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
- <xs:complexType>
- <xs:choice minOccurs="1" maxOccurs="unbounded">
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Library">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="BaseNameConvention">
- <xs:attributeGroup ref="LibraryAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- </xs:choice>
- <xs:attribute name="ArchType" type="SupportedArchitectures"/>
- </xs:complexType>
- </xs:element>
- <!-- /remove Arch Element -->
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Instance">
- <xs:complexType>
- <xs:attributeGroup ref="LibraryAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="LibraryClass">
- <xs:annotation>
- <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>
- </xs:annotation>
- <xs:complexType mixed="true">
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="EventTypes">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="EventAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Externs">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This is a child of MSA files.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence minOccurs="1">
+ <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver" type="PcdDriverTypes"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Extern">
+ <xs:complexType>
+ <xs:choice minOccurs="1">
+ <xs:sequence>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Driver Module</xs:documentation>
+ </xs:annotation>
+ <xs:element minOccurs="0" maxOccurs="1" name="ModuleEntryPoint" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="ModuleUnloadImage" type="C_NameType"/>
+ </xs:sequence>
+ <xs:sequence>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Library Module</xs:documentation>
+ </xs:annotation>
+ <xs:element minOccurs="0" maxOccurs="1" name="Constructor" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="Destructor" type="C_NameType"/>
+ </xs:sequence>
+ <xs:sequence>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Allow multiple entries for DriverBinding, ComponentName, DriverConfig and DriverDiag elements. For ComponentName, DriverConfig and/or DriverDiag - you must have a 1:1 mapping to DriverBinding if the element is defined.</xs:documentation>
+ <xs:documentation xml:lang="en">Permit User Defined Extern Tags</xs:documentation>
+ </xs:annotation>
+ <xs:element minOccurs="0" maxOccurs="1" name="DriverBinding" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="ComponentName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="DriverConfig" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="DriverDiag" type="C_NameType"/>
+ </xs:sequence>
+ <xs:sequence>
+ <xs:annotation>
+ <xs:documentation xml:lang="en"> Module Call Backs</xs:documentation>
+ </xs:annotation>
+ <xs:element minOccurs="0" maxOccurs="1" name="SetVirtualAddressMapCallBack" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="ExitBootServicesCallBack" type="C_NameType"/>
+ </xs:sequence>
+ </xs:choice>
+ <xs:attributeGroup ref="ExternAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Filename">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Describe the valid content of a filename This should extend PathAndFilename - Variable names not allowed here!</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="PathAndFilename">
+ <xs:attributeGroup ref="FilenameAttributes"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Filenames">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This is a list of Filenames</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence minOccurs="1">
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="Filename"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="GuidDeclarations">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" maxOccurs="1" name="Keyword" type="KeywordType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="LibraryClassAttributes"/>
- </xs:complexType>
- </xs:element>
- <!-- LAH This is LibraryClassDeclaration FINAL version -->
- <xs:element name="LibraryClassDeclaration">
- <xs:annotation>
- <xs:documentation xml:lang="en">This element defines a class of library, along with the path to the Include Header for this library</xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="GuidDeclarationAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Guids">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="GuidCNames">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="LibraryClass">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:NCName">
- <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>
- <xs:attribute name="RecommendedInstanceVersion" type="xs:decimal" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="0" maxOccurs="1" ref="IncludeHeader"/>
- <xs:element minOccurs="0" maxOccurs="1" name="RecommendedInstanceGuid" type="GuidType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="RecommendedInstanceVersion" type="xs:decimal"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!-- LAH This is LibraryClassDeclarations FINAL version -->
- <xs:element name="LibraryClassDeclarations">
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="1" name="GuidCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="GuidAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="HiiPackages">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Describe the list of a HiiPackage elements</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="HiiPackage">
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="1" maxOccurs="unbounded" ref="LibraryClassDeclaration"/>
- <xs:element name="LibraryClass" minOccurs="0" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>
- <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="LibraryClassAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="LibraryClassDefinitions">
- <xs:annotation>
- <xs:documentation xml:lang="en">This section defines what Classes of Library that this library supports. A Library may belong to multiple different library classes.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="1" name="HiiCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="HiiPackageAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Hobs">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="HobTypes">
+ <xs:complexType>
<xs:sequence>
- <xs:element ref="LibraryClass" minOccurs="1" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="License">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="Paragraph">
- <xs:attribute name="URL" type="xs:anyURI" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="Modified" type="DateType"/>
- <xs:element name="ModifiedDate" type="DateType"/>
- <xs:element name="Module">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is record format for a Module entry in the Framework Database file.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:annotation>
- <xs:documentation xml:lang="en">This describes the fields in an Module record in the Framework Database. The Path field is relative to the workspace to Module Surface Area (MSA) files.</xs:documentation>
- </xs:annotation>
+ <xs:element minOccurs="1" maxOccurs="1" name="HobType" type="HobTypes"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="HobAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="IncludeHeader">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="PathAndFilename">
+ <xs:attributeGroup ref="IncludeHeaderAttributes"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="IndustryStdIncludes">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" ref="IndustryStdHeader"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="IndustryStdHeader">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="IndustryStdHeaderAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Libraries">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Different (Module) Instances of Libraries used ONLY in FPD Files.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Instance">
+ <xs:complexType>
+ <xs:attributeGroup ref="LibraryAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="LibraryClass">
+ <xs:annotation>
+ <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>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="Keyword" type="KeywordType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="LibraryClassAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- LAH This is SPD LibraryClassDeclarations FINAL version -->
+ <xs:element name="LibraryClassDeclarations">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="LibraryClass">
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" ref="ModuleName"/>
- <xs:choice minOccurs="1">
- <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
- </xs:choice>
- <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
- <xs:element minOccurs="1" maxOccurs="1" ref="Path"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="ModuleEntryPoint" type="xs:normalizedString"/>
- <xs:element name="ModuleList">
- <xs:annotation>
- <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track package installation</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence maxOccurs="unbounded">
- <xs:element minOccurs="1" maxOccurs="unbounded" ref="Module"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="ModuleName">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is the valid content of a Module Name</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:NCName">
- <xs:attributeGroup ref="ModuleNameAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="ModuleType" type="ModuleTypeDef">
- <xs:annotation>
- <xs:documentation xml:lang="en">Describe the valid EFI Phase that the Module is designed to execute under.</xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element name="ModuleUnloadImage" type="xs:normalizedString"/>
- <xs:element name="MsaFiles">
- <xs:complexType>
- <xs:choice minOccurs="1" maxOccurs="unbounded">
- <xs:sequence minOccurs="1">
- <xs:element minOccurs="0" maxOccurs="unbounded" name="MsaFile">
- <xs:annotation>
- <xs:documentation xml:lang="en">Surface Area Package Description (SPD) list of Module Surface Area files</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="0" maxOccurs="1">
- <xs:element minOccurs="0" ref="Filename"/>
- <xs:element minOccurs="0" ref="BuildOptions"/>
- </xs:sequence>
- <xs:attributeGroup ref="MsaAttributes"/>
- </xs:complexType>
- </xs:element>
- <!-- DO NOT USE Arch element, use attribute Arch in above. -->
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
- <xs:complexType>
- <xs:sequence minOccurs="1">
- <xs:element maxOccurs="unbounded" name="MsaFile">
- <xs:annotation>
- <xs:documentation xml:lang="en">Describe the valid content of a Surface Area Package Description (SPD) file</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="0" maxOccurs="1">
- <xs:element minOccurs="0" ref="Filename"/>
- <xs:element minOccurs="0" ref="BuildOptions"/>
- </xs:sequence>
- <xs:attributeGroup ref="MsaAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="ArchType" type="SupportedArchitectures"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>
- </xs:choice>
- </xs:complexType>
- </xs:element>
- <!-- Use in Final -->
- <xs:element name="MsaFileList">
- <xs:annotation>
- <xs:documentation xml:lang="en">Surface Area Package Description (SPD) list of Module Surface Area files</xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="LibraryClassDeclarationAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="LibraryClassDefinitions">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This section defines what Classes of Library that this library supports. A Library may belong to multiple different library classes.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" ref="LibraryClass"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="License">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="Paragraph">
+ <xs:attribute name="URL" type="xs:anyURI" use="optional"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ModuleBuildOptions">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##local"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ModuleSaBuildOptions">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="FvBinding" type="KeywordType"/>
+ <!-- The FfsFileNameGuid allows the Platform Integrator to specify a GUID for the FFS File Name GUID -->
+ <xs:element minOccurs="0" maxOccurs="1" name="FfsFileNameGuid" type="GuidType"/>
+ <!-- If binding is specified, you MUST specify the FfsFormatKey -->
+ <xs:element minOccurs="0" maxOccurs="1" name="FfsFormatKey" type="KeywordType"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="Options"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ModuleDefinitions">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="SupportedArchitectures" type="ArchListType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="BinaryModule" type="xs:boolean" default="false"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="OutputFileBasename" type="FileNameConvention"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="OutputDirectory">
- <xs:annotation>
- <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>
- </xs:annotation>
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Cloned">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="PackageGuid" type="GuidType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="PackageVersion" type="VersionDataType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="ModuleGuid" type="GuidType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="ModuleVersion" type="VersionDataType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ModuleType" type="ModuleTypeDef">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Describe the valid EFI Phase that the Module is designed to execute under.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <!-- Use in Final -->
+ <xs:element name="MsaFiles">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">MsaFiles is a child of Surface Area Package Description (SPD) files</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Options">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" ref="Option"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Option">
+ <!-- This element is used to store flags from the Tools -->
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:normalizedString">
+ <xs:attributeGroup ref="OptionAttributes"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="PackageDefinitions">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="ReadOnly" type="xs:boolean" default="false"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="RePackage" type="xs:boolean" default="false"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Cloned">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="PackageGuid" type="GuidType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="PackageVersion" type="VersionDataType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="PackageDependencies">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This tag is used in the Module Surface Area Description File (MSA) to track package dependencies for a module.</xs:documentation>
+ <xs:documentation xml:lang="en">Attributes to PackageName include Required: Usage PackageGuid PackageVesion, Optional: FeatureFlag</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Package">
+ <xs:complexType>
+ <xs:attributeGroup ref="PackageAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="PackageHeaders">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">PackageHeaders is a child of PackageSurfaceArea (SPD) </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="IncludePkgHeader">
+ <xs:complexType>
<xs:simpleContent>
- <xs:extension base="DirectoryNamingConvention">
- <xs:attribute default="MODULE" name="IntermediateDirectories">
- <xs:simpleType>
- <xs:restriction base="UCNameType">
- <xs:enumeration value="MODULE"/>
- <xs:enumeration value="UNIFIED"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- </xs:extension>
+ <xs:extension base="PathAndFilename">
+ <xs:attributeGroup ref="PackageHeaderAttributes"/>
+ </xs:extension>
</xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="ProcessStep">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="ToolName" type="xs:string"/>
- <xs:element minOccurs="1" maxOccurs="1" name="ToolArgs" type="xs:string"/>
- <!-- Input patterns to be processed by the tool above -->
- <xs:element minOccurs="1" maxOccurs="unbounded" name="InputPattern" type="xs:string"/>
- <!-- A pattern to match for the output -->
- <xs:element minOccurs="1" maxOccurs="1" name="OutputPattern" type="xs:string"/>
- </xs:sequence>
- <xs:attributeGroup ref="ProcessStepAttributes"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="FfsFormatDeclarations">
- <xs:complexType>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="PackageList">
+ <!-- Valid for DB usage only! -->
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track all packages (SPD files) installed in a workspace. (Database)</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="DbPathAndFilename"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <!-- PcdBuildDefinition is a child of FPD ModuleSA element for FIXED_AT_BUILD, PATCHABLE_IN_MODULE, and FEATURE_FLAG PCDS Only! -->
+ <xs:element name="PcdBuildDefinition">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Child of FPD ModuleSA element for FIXED_AT_BUILD, PATCHABLE_IN_MODULE, and FEATURE_FLAG PCDS Only!</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdData">
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="1" maxOccurs="unbounded" name="FfsFormatDeclaration">
- <!-- Required Attributes are the FfsFormatKeyword and SupModuleList -->
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="unbounded" ref="ProcessStep"/>
- </xs:sequence>
- <xs:attributeGroup ref="FfsAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="PackageDefinitions">
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
+ <!-- MaxDatumSize is only required if the DatumType is VOID* -->
+ <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize" type="DatumSizeLimitation"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="Value" type="DefaultValueType"/>
+ </xs:sequence>
+ <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="DefaultValueType"/>
+ </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>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="HexWordArrayType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="VariableGuid" type="C_NameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="VariableOffset" type="Hex64BitDataType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="HiiDefaultValue" type="DefaultValueType"/>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="VpdEnable">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">If VpdEnable group is specified, then VpdEnable is default true</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="VpdOffset" type="Hex64BitDataType"/>
+ </xs:sequence>
+ </xs:group>
+ <xs:element name="PcdCoded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Child of Module Surface Area Description (MSA)</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="ReadOnly" type="xs:boolean" default="false"/>
- <xs:element minOccurs="1" maxOccurs="1" name="RePackage" type="xs:boolean" default="false"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="PCDs">
- <!-- PCDs section is going away to be replaced by something else TB Named later -->
- <xs:annotation>
- <xs:documentation xml:lang="en">Child of Module Surface Area documents, MSA and MBD files, Library Modules and Other Modules</xs:documentation>
- <xs:documentation xml:lang="en">One or more PcdData or PcdBuildData Elements Only one type is permitted</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="1">
- <xs:element maxOccurs="unbounded" name="PcdData">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is a child of PCDs and can occur in the MSA and MBD files.</xs:documentation>
- <xs:documentation xml:lang="en">This is date element is used in the Module Surface Area (MSA) file and contains references to be used by a Platform Build</xs:documentation>
- <xs:documentation xml:lang="en">There is ONE required Attribute, ItemType</xs:documentation>
- </xs:annotation>
- <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="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>
- <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
- <xs:element default="false" minOccurs="0" maxOccurs="1" name="HiiEnable" type="xs:boolean"/>
- <xs:element default="false" minOccurs="0" maxOccurs="1" name="VpdEnable" type="xs:boolean"/>
- <xs:element default="false" minOccurs="0" maxOccurs="1" name="AlternateNameSpaceEnable" type="xs:boolean"/>
- <xs:element default="false" minOccurs="0" maxOccurs="1" name="SkuEnable" type="xs:boolean"/>
- <xs:element default="false" minOccurs="0" maxOccurs="1" name="SkuDataArrayEnable" type="xs:boolean"/>
- <xs:element default="0x00" minOccurs="0" maxOccurs="1" name="MaxSku" type="HexByteDataType"/>
- <xs:element default="0x00" minOccurs="0" maxOccurs="1" name="SkuId" type="HexByteDataType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="DatumSize" type="DatumSizeLimitation"/>
- <xs:element minOccurs="0" maxOccurs="1" name="VariableName" type="xs:normalizedString"/>
- <xs:element minOccurs="0" maxOccurs="1" name="VariableGuid" type="VariableGuidType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="DataOffset" type="Hex64BitDataType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="GuidOffset" type="Hex64BitDataType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="xs:normalizedString"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>
- </xs:sequence>
- <xs:attributeGroup ref="PcdAttributes"/>
- <xs:attribute name="PcdIsDriver" use="optional"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="PackageDependencies">
- <xs:annotation>
- <xs:documentation xml:lang="en">This tag is used in the Package Surface Area Description File (SPD) to track package dependencies for a module</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence maxOccurs="unbounded">
- <xs:choice>
- <xs:element minOccurs="1" maxOccurs="unbounded" ref="Package"/>
- <xs:element minOccurs="1" maxOccurs="unbounded" ref="PackageName"/>
- </xs:choice>
- </xs:sequence>
- <xs:attributeGroup ref="PackageNameAttributes"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="PackageHeaders">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <!-- MSA file declares a single usage, and must match one of the entries in what the SPD file declares as the set of possible Item Types. -->
+ <xs:attributeGroup ref="PcdCodedAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <!-- LAH This is PcdDeclarations FINAL version -->
+ <xs:element name="PcdDeclarations">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">PcdDeclaratins is a child of Package Surface Area Description (SPD)</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence minOccurs="1">
+ <xs:element maxOccurs="unbounded" name="PcdEntry">
+ <xs:complexType>
<xs:sequence>
- <xs:choice>
- <!-- DO NOT USE! removing IncludeHeader, use IncludePkgHeader instead. -->
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="IncludeHeader"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="IncludePkgHeader">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="PathAndFilename">
- <xs:attributeGroup ref="PackageHeaderAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- </xs:choice>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="PackageList">
- <xs:annotation>
- <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track all packages installed in a workspace. (Database)</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence maxOccurs="unbounded">
- <xs:element minOccurs="0" name="Package">
- <xs:annotation>
- <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track individual package information. The Path is a relative path to the SPD File.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence maxOccurs="unbounded">
- <xs:element minOccurs="0" maxOccurs="1" ref="PackageName"/>
- <xs:choice minOccurs="0">
- <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
- <!-- DO NOT USE Guid should be removed, use PackageGuid instead -->
- <xs:element minOccurs="0" maxOccurs="1" name="PackageGuid" type="GuidType"/>
- </xs:choice>
- <xs:choice minOccurs="0">
- <xs:element minOccurs="0" maxOccurs="1" ref="Version"/>
- <xs:element minOccurs="0" maxOccurs="1" name="PackageVersion" type="VersionDataType"/>
- </xs:choice>
- <xs:choice minOccurs="1">
- <xs:element minOccurs="0" maxOccurs="1" ref="Path"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="Filename"/>
- </xs:choice>
- <xs:element minOccurs="1" maxOccurs="1" ref="InstalledDate"/>
- </xs:sequence>
- <xs:attributeGroup ref="PackageAttributes"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="Filename" type="PathAndFilename" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="Package">
- <xs:annotation>
- <xs:documentation xml:lang="en">This tag is used in the Package Surface Area Description File to track package dependencies for a module (SPD) </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attributeGroup ref="PackageAttributes"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="PackageName">
- <xs:annotation>
- <xs:documentation xml:lang="en">This tag is used in the Package Surface Area Description File to track package dependencies for a module (SPD) </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="UiNameType">
- <xs:attributeGroup ref="PackageAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="PackageType" type="PackageType"/>
- <xs:element name="Path">
- <xs:annotation>
- <xs:documentation xml:lang="en">Describe the valid content of a filename</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="DirectoryNamingConvention">
- <xs:attributeGroup ref="DirectoryAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="DynamicPcdBuildDefinitions">
- <xs:annotation>
- <xs:documentation xml:lang="en">Child of Framework Platform Description (FPD)</xs:documentation>
- <xs:documentation xml:lang="en">FPD uses this PCD information for Dynamic PCDs Only</xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" type="PcdListType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="PcdDeclarationAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="FarList">
+ <!-- Valid for DB usage only! -->
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track all DISTRIBUTION packages (FAR files) installed in a workspace. (Database)</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="DbPathAndFilename"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="FfsFormatDeclarations">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="FfsFormatDeclaration">
+ <!-- Required Attributes are the FfsFormatKeyword and SupModuleList -->
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdBuildData">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
- <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: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" maxOccurs="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="DynamicBuildPcdAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="PcdBuildDefinition">
- <xs:annotation>
- <xs:documentation xml:lang="en">Child of FPD ModuleSA element for FIXED_AT_BUILD, PATCHABLE_IN_MODULE, and FEATURE_FLAG PCDS Only!</xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="unbounded" ref="ProcessStep"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="FfsAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="PpiDeclarations">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">PpiDeclarations is a child of PackageSurfaceArea (SPD) </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdData">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
- <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"/>
- <!-- MaxDatumSize is only required if the DatumType is VOID* -->
- <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize" type="DatumSizeLimitation"/>
- <xs:element minOccurs="0" maxOccurs="1" name="Value" type="DefaultValueType"/>
- </xs:sequence>
- <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="DefaultValueType"/>
- </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>
- </xs:annotation>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="VariableNameDataType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="VariableGuid" type="C_NameType"/>
- <xs:element minOccurs="1" maxOccurs="1" name="VariableOffset" type="Hex64BitDataType"/>
- <xs:element minOccurs="1" maxOccurs="1" name="HiiDefaultValue" type="DefaultValueType"/>
- </xs:sequence>
- </xs:group>
- <xs:group name="VpdEnable">
- <xs:annotation>
- <xs:documentation xml:lang="en">If VpdEnable group is specified, then VpdEnable is default true</xs:documentation>
- </xs:annotation>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="VpdOffset" type="Hex64BitDataType"/>
- </xs:sequence>
- </xs:group>
- <xs:element name="PcdCoded">
- <xs:annotation>
- <xs:documentation xml:lang="en">Child of Module Surface Area Description (MSA)</xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="PpiDeclarationAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="PPIs">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Provide for one or more Ppi or PpiNotify sections. </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence minOccurs="1">
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Ppi">
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is the valid content of the PCD table of a Module. The contents may not be wired at build time, and these only refer to Platform Build values, not modules.</xs:documentation>
- <xs:documentation xml:lang="en">This element is valid for PcdInfo.xml and FPD files.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <!-- MSA file declares a single usage, and must match one of the entries in what the SPD file declares as the set of possible Item Types. -->
- <xs:attributeGroup ref="PcdCodedAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!-- LAH This is PcdDeclarations FINAL version -->
- <xs:element name="PcdDeclarations">
- <xs:annotation>
- <xs:documentation xml:lang="en">Child of Package Surface Area Description (SPD)</xs:documentation>
- <xs:documentation xml:lang="en">This section is for entering information about a package's PCDs</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="1">
- <xs:element maxOccurs="unbounded" name="PcdEntry">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
- <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>
- <xs:element minOccurs="0" 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"/>
- <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>
- <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="PcdDeclarationAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!-- DO NOT USE removing PcdDefinitions, use PcdDeclarations for SPD entries Use PcdBuildDeclarations for MSA Entires and PcdDynamicBuildDeclarations for FPD Entries -->
- <xs:element name="PcdDefinitions">
- <xs:annotation>
- <xs:documentation xml:lang="en">Child of Package Surface Area Description (SPD)</xs:documentation>
- <xs:documentation xml:lang="en">This permits entering information about a package's PCD information</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="1">
- <xs:element maxOccurs="unbounded" name="PcdEntry">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is the valid content of the PCD table of a Module. The contents may not be wired at build time, and these only refer to Platform Build values, not modules.</xs:documentation>
- <xs:documentation xml:lang="en">This element is valid for PcdInfo.xml and FPD files.</xs:documentation>
- <xs:documentation xml:lang="en">There is ONE required Attribute, ItemType</xs:documentation>
- </xs:annotation>
- <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="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>
- <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
- <xs:element default="false" minOccurs="0" maxOccurs="1" name="HiiEnable" type="xs:boolean"/>
- <xs:element default="false" minOccurs="0" maxOccurs="1" name="VpdEnable" type="xs:boolean"/>
- <xs:element default="false" minOccurs="0" maxOccurs="1" name="AlternateNameSpaceEnable" type="xs:boolean"/>
- <xs:element default="false" minOccurs="0" maxOccurs="1" name="SkuEnable" type="xs:boolean"/>
- <xs:element default="false" minOccurs="0" maxOccurs="1" name="SkuDataArrayEnable" type="xs:boolean"/>
- <xs:element default="0x00" minOccurs="0" maxOccurs="1" name="MaxSku" type="HexByteDataType"/>
- <xs:element default="0x00" minOccurs="0" maxOccurs="1" name="SkuId" type="HexByteDataType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="DatumSize">
- <xs:annotation>
- <xs:documentation xml:lang="en">Max Number of Bytes of the data.</xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:int">
- <xs:minInclusive value="1"/>
- <xs:maxInclusive value="16777215"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- <xs:element minOccurs="0" maxOccurs="1" name="VariableName" type="xs:normalizedString"/>
- <xs:element minOccurs="0" maxOccurs="1" name="VariableGuid" type="VariableGuidType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="DataOffset" type="Hex64BitDataType"/>
- <xs:element default="0" minOccurs="0" maxOccurs="1" name="GuidOffset" type="Hex64BitDataType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>
- </xs:sequence>
- <xs:attributeGroup ref="PcdAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="Platform">
- <xs:annotation>
- <xs:documentation xml:lang="en">Database Entry to locate the Platform Build Tips - path to FPD file.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="1" name="PpiCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="PpiAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="PpiNotify">
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" maxOccurs="1" name="PlatformName">
- <xs:annotation>
- <xs:documentation xml:lang="en">Define the Name of a Platform</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="PlatformNamingConvention">
- <xs:attributeGroup ref="PlatformAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:choice minOccurs="0">
- <xs:element minOccurs="0" maxOccurs="1" ref="Path"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="Filename"/>
- </xs:choice>
- <xs:element minOccurs="0" maxOccurs="1" ref="InstalledDate"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>
- <xs:element minOccurs="0" maxOccurs="1" name="AlternatePcdFile" type="FileNameConvention"/>
- <xs:element minOccurs="0" maxOccurs="1" name="AlternateFdfFile" type="FileNameConvention"/>
- </xs:sequence>
- <xs:attributeGroup ref="PlatformAttributes"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="PpiDeclarations">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="1" name="PpiNotifyCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="PpiNotifyAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ProtocolDeclarations">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">ProtocolDeclarations is a child of PackageSurfaceArea (SPD) </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
- <xs:choice>
- <!-- DO NOT USE removing Guid in final, use GuidValue instead -->
- <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
- </xs:choice>
- <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="PpiDeclarationAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="PPIs">
- <xs:annotation>
- <xs:documentation xml:lang="en">Provide for one or more Ppi or PpiNotify sections. </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="1">
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Ppi">
- <xs:complexType mixed="true">
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="1" name="PpiCName" type="C_NameType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="PpiAttributes"/>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="PpiNotify">
- <xs:complexType mixed="true">
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="1" name="PpiNotifyCName" type="C_NameType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="PpiNotifyAttributes"/>
- </xs:complexType>
- </xs:element>
- <!-- DO NOT USE Arch element, use Arch Attribute in above instead. -->
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Ppi">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="C_Name">
- <xs:attributeGroup ref="PpiAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="PpiNotify">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="C_Name">
- <xs:attributeGroup ref="PpiNotifyAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="ArchType" type="SupportedArchitectures"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="ProtocolDeclarations">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="ProtocolDeclarationAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Protocols">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">If either Protocol or ProtocolNotify sections are needed, one or more of them should be specified within this section</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
- <xs:choice>
- <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
- </xs:choice>
- <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="ProtocolDeclarationAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="Protocols">
- <xs:annotation>
- <xs:documentation xml:lang="en">If either Protocol or ProtocolNotify sections are needed, one or more of them should be specified within this section</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">
- <xs:complexType mixed="true">
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="1" name="ProtocolCName" type="C_NameType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="ProtocolAttributes"/>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">
- <xs:complexType mixed="true">
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="1" name="ProtocolNotifyCName" type="C_NameType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="ProtocolNotifyAttributes"/>
- </xs:complexType>
- </xs:element>
- <!-- DO NOT USE! removing Arch element, use Arch attribute of Protocol or ProtocolNotify instead. -->
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="C_NameType">
- <xs:attributeGroup ref="ProtocolAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="C_NameType">
- <xs:attributeGroup ref="ProtocolNotifyAttributes"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="ArchType" type="SupportedArchitectures"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element default="false" name="ReadOnly" type="xs:boolean"/>
- <xs:element default="false" name="RePackage" type="xs:boolean"/>
- <xs:element name="Sections">
- <xs:annotation>
- <xs:documentation xml:lang="en">Sections refers to the Firmware Filesystem sections, PE32, UI, VER, DXS, etc. and how they are made</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="1">
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Section">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="Filenames"/>
- <xs:element minOccurs="0" name="Args" type="ArgsType"/>
- <xs:element minOccurs="0" name="OutFile" type="FileNameConvention"/>
- <xs:element minOccurs="0" name="OutputFileExtension" type="xs:string"/>
- <xs:element minOccurs="0" name="ToolName" type="ToolType"/>
- </xs:sequence>
- <xs:attributeGroup ref="SectionAttributes"/>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Sections">
- <xs:complexType>
- <xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element name="Section">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="Filenames"/>
- <xs:element minOccurs="0" name="Args" type="ArgsType"/>
- <xs:element minOccurs="0" name="OutFile" type="FileNameConvention"/>
- <xs:element minOccurs="0" name="OutputFileExtension" type="xs:string"/>
- <xs:element minOccurs="0" name="ToolName" type="ToolType"/>
- </xs:sequence>
- <xs:attributeGroup ref="SectionAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attributeGroup ref="SectionsAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attributeGroup ref="SectionsAttributes"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="SetVirtualAddressMapCallBack" type="C_Name"/>
- <xs:element name="SourceFiles">
- <xs:annotation>
- <xs:documentation xml:lang="en">Multiple Filenames may be specified, and they may also be scoped to a specific Architecture.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="1">
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="Filename"/>
- <!-- DO NOT USE! removing Arch element, use Arch Attribute of Filename instead. -->
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
- <xs:complexType>
- <xs:sequence minOccurs="1">
- <xs:element maxOccurs="unbounded" ref="Filename"/>
- </xs:sequence>
- <xs:attribute name="ArchType" type="SupportedArchitectures"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="SkuInfo">
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="1" name="ProtocolCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="ProtocolAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="1" maxOccurs="unbounded" name="UiSkuName">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="UiNameType">
- <xs:attribute name="SkuID" type="xs:nonNegativeInteger" use="required"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="Specification">
- <xs:annotation>
- <xs:documentation xml:lang="en">This string is used to provide the name and version of the Specification that the component conforms to.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="1" name="ProtocolNotifyCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="ProtocolNotifyAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ProcessStep">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="ToolName" type="xs:string"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="ToolArgs" type="xs:string"/>
+ <!-- Input patterns to be processed by the tool above -->
+ <xs:element minOccurs="0" maxOccurs="1" name="InputPattern" type="xs:string"/>
+ <!-- A pattern to match for the output -->
+ <xs:element minOccurs="1" maxOccurs="1" name="OutputPattern" type="xs:string"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="ProcessStepAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="SourceFiles">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Multiple Filenames may be specified, and they may also be scoped to a specific Architecture.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" ref="Filename"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="SkuInfo">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="UiSkuName">
+ <xs:complexType>
<xs:simpleContent>
- <xs:extension base="xs:normalizedString">
- <xs:attribute name="Version" type="xs:normalizedString" use="optional"/>
- </xs:extension>
+ <xs:extension base="UiNameType">
+ <xs:attribute name="SkuID" type="xs:nonNegativeInteger" use="required"/>
+ </xs:extension>
</xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="SystemTables">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is list of System Table elements.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element name="SystemTable">
- <xs:complexType>
- <xs:sequence minOccurs="1" maxOccurs="unbounded">
- <!-- Remove Entry from Use -->
- <xs:element minOccurs="0" maxOccurs="1" name="Entry" type="xs:normalizedString"/>
- </xs:sequence>
- <xs:attributeGroup ref="SystemTableAttributes"/>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="SystemTableCNames">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="SystemTableCName" type="C_NameType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
- </xs:sequence>
- <xs:attributeGroup ref="SystemTableAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="Updated" type="DateType"/>
- <xs:element name="UpdatedDate" type="DateType"/>
- <xs:element name="URL" type="xs:anyURI"/>
- <xs:element name="URI" type="xs:anyURI"/>
- <xs:element name="UserDefinedAntTasks">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is a sub-element of BuildOptions</xs:documentation>
- <xs:documentation xml:lang="en">Permit Users to define their own custom ANT tasks.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence maxOccurs="unbounded">
- <xs:element minOccurs="1" ref="AntTask"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="UserExtensions">
- <xs:complexType>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="SystemTables">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This is list of System Table elements.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="SystemTableCNames">
+ <xs:complexType>
<xs:sequence>
- <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##local"/>
- </xs:sequence>
- <xs:attribute name="UserID" type="xs:NCName" use="required"/>
- <xs:attribute name="Identifier" type="xs:nonNegativeInteger" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="Variables">
- <xs:annotation>
- <xs:documentation xml:lang="en">An MSA FILE list of EFI Variables described by string pair.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element name="Variable">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is an EFI Variable Entry</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:choice>
- <!-- DO NOT USE remove String from final -->
- <xs:element minOccurs="1" maxOccurs="1" name="String" type="xs:normalizedString"/>
- <!-- Make VariableName required -->
- <xs:element minOccurs="0" maxOccurs="1" name="VariableName" type="VariableNameDataType"/>
- </xs:choice>
- <xs:choice minOccurs="1">
- <!-- DO NOT USE, use GuidC_Name instead -->
- <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
- <!-- DO NOT USE, use GuidC_Name instead -->
- <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
- <!-- Make GuidC_Name required -->
- <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>
- </xs:choice>
- <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
- <!-- DO NOT USE, removiing ByteOffset, Bit Offset and OffsetBitSize-->
- <xs:element minOccurs="0" maxOccurs="1" name="ByteOffset" type="HexWordDataType">
- <xs:annotation>
- <xs:documentation xml:lang="en">This entry represents the Hex Byte Offset {0x0, 0xn} to where the data starts.</xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element minOccurs="0" maxOccurs="1" name="BitOffset">
- <xs:annotation>
- <xs:documentation xml:lang="en">This entry represents the Location of the Starting Bit {0,8} of the start of Data. A value of zero or 1 indicates that there is no BitOffset into the byte.</xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:int">
- <xs:minInclusive value="0"/>
- <xs:maxInclusive value="8"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- <xs:element minOccurs="0" maxOccurs="1" name="OffsetBitSize">
- <xs:annotation>
- <xs:documentation xml:lang="en">This number represents the number of bits to use {0, 7} starting at the BitOffset. A value of 0 indicates that the entire Byte should be used.</xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:int">
- <xs:minInclusive value="0"/>
- <xs:maxInclusive value="7"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- </xs:sequence>
- <xs:attributeGroup ref="VariableAttributes"/>
- </xs:complexType>
- </xs:element>
- <!-- DO NOT USE Arch element, use attribute Arch in above. -->
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="Variable">
- <xs:annotation>
- <xs:documentation xml:lang="en">This is an EFI Variable Entry</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="String" type="xs:normalizedString"/>
- <xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>
- <xs:element minOccurs="0" maxOccurs="1" name="ByteOffset" type="HexWordDataType">
- <xs:annotation>
- <xs:documentation xml:lang="en">This entry represents the Hex Byte Offset {0x0, 0xn} to where the data starts.</xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element minOccurs="0" maxOccurs="1" name="BitOffset">
- <xs:annotation>
- <xs:documentation xml:lang="en">This entry represents the Location of the Starting Bit {0,8} of the start of Data. A value of zero or 1 indicates that there is no BitOffset into the byte.</xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:int">
- <xs:minInclusive value="0"/>
- <xs:maxInclusive value="8"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- <xs:element minOccurs="0" maxOccurs="1" name="OffsetBitSize">
- <xs:annotation>
- <xs:documentation xml:lang="en">This number represents the number of bits to use {0, 7} starting at the BitOffset. A value of 0 indicates that the entire Byte should be used.</xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:int">
- <xs:minInclusive value="0"/>
- <xs:maxInclusive value="7"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- </xs:sequence>
- <xs:attributeGroup ref="VariableAttributes"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="ArchType" type="SupportedArchitectures"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="Version" type="xs:normalizedString"/>
- <xs:element name="FarList">
- <xs:annotation>
- <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track all DISTRIBUTION packages (FAR files) installed in a workspace. (Database)</xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ <xs:element minOccurs="1" maxOccurs="1" name="SystemTableCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="SystemTableAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="UserDefinedAntTasks">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This is a sub-element of BuildOptions</xs:documentation>
+ <xs:documentation xml:lang="en">Permit Users to define their own custom ANT tasks.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" ref="AntTask"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="UserExtensions">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##local"/>
+ </xs:sequence>
+ <xs:attribute name="UserID" type="xs:NCName" use="required"/>
+ <xs:attribute name="Identifier" type="xs:nonNegativeInteger" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Variables">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">An MSA FILE list of EFI Variables described by string pair.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Variable">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This is an EFI Variable Entry</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
<xs:sequence>
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
+ <xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="HexWordArrayType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="VariableAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Version" type="VersionDataType"/>
</xs:schema>
|