-<?xml version="1.0" encoding="UTF-8"?>\r
-<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">\r
- <!--\r
- Filename: FrameworkPlatformDataElements.xsd\r
- \r
- Copyright (c) 2006, Intel Corp.\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which may be found at http://opensource.org/licenses/bsd-license.php\r
- \r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
- \r
- -->\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en"> This schema defines EFI and Framework Platform Data Elements that are specific to platform creation.</xs:documentation>\r
- </xs:annotation>\r
- <xs:include schemaLocation="NamingConvention.xsd"/>\r
- <xs:include schemaLocation="FrameworkDataAttributes.xsd"/>\r
- <xs:include schemaLocation="FrameworkDataTypes.xsd"/>\r
- <xs:include schemaLocation="FrameworkDataElements.xsd"/>\r
- <xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>\r
- <xs:element name="DataArray">\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="HexByteArrayType">\r
- <xs:attribute name="Name" type="xs:normalizedString" use="required"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element name="DataId">\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:NCName">\r
- <xs:attribute name="Seq" type="xs:nonNegativeInteger" use="required"/>\r
- <xs:attribute name="SubRegion" type="UCNameType" use="required"/>\r
- <xs:attribute name="DataSource" type="xs:normalizedString" use="required"/>\r
- <xs:attribute name="SourceType" type="xs:NCName" use="required"/>\r
- <xs:attribute name="DataSize" type="HexAddressType" use="optional"/>\r
- <xs:attribute name="Alignment" type="xs:positiveInteger" use="optional"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element name="DataRegions">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="FvDataRegion">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" ref="DataId"/>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="DataArray"/>\r
- </xs:sequence>\r
- <xs:attribute name="Name" type="UCNameType" use="required"/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element name="Flash">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="1" ref="FlashDefinitionFile"/>\r
- <xs:element minOccurs="0" maxOccurs="1" ref="FvImages"/>\r
- </xs:sequence>\r
- <xs:attribute name="MicrocodeFile" type="PathAndFilename" use="optional"/>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- Valid Flash Definition Files that can be used for a platform The UiName and Perferred tags are optional, for use with Wizards.-->\r
- <xs:element name="FlashDefinitionFile">\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="PathAndFilename">\r
- <!-- Id will be required eventually. -->\r
- <xs:attribute name="Id" type="KeywordType" use="optional"/>\r
- <xs:attribute name="UiName" type="UiNameType" use="optional"/>\r
- <xs:attribute name="Preferred" type="xs:boolean" use="optional" default="false"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- For Future Use! -->\r
- <!-- This describes the physical layout of the hardware device, used by tools to verify different regions fit within a given number of blocks. -->\r
- <!-- An EFI Region MUST start on a block boundary. A region may span multiple blocks. -->\r
- <xs:element name="FlashDevice">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element name="PartNumber" type="xs:NCName"/>\r
- <xs:choice>\r
- <xs:sequence minOccurs="0">\r
- <!-- Use this sequence for a part with fixed block sizes -->\r
- <xs:element minOccurs="1" maxOccurs="1" name="NumBlocks" type="xs:positiveInteger"/>\r
- <xs:element minOccurs="1" maxOccurs="1" name="BlockSize" type="HexAddressType"/>\r
- </xs:sequence>\r
- <xs:sequence minOccurs="0">\r
- <!-- Use this sequence for a part with variable block sizes -->\r
- <xs:element maxOccurs="unbounded" name="VariableBlockSize">\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="HexAddressType">\r
- <xs:attribute name="BlockNum" type="xs:nonNegativeInteger" use="required"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:choice>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element name="FlashDeviceDefinitions">\r
- <xs:complexType>\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en">We allow specifying the FlashMap filename</xs:documentation>\r
- </xs:annotation>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" ref="FlashDefinitionFile"/>\r
- <xs:element minOccurs="1" maxOccurs="1" ref="FvImages"/>\r
- <!-- DataRegions is for Future Use! -->\r
- <xs:element minOccurs="0" maxOccurs="1" ref="DataRegions"/>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" ref="FvImageBindingSequence"/>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element name="FrameworkModules">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en">This is used in a Framework Platform Description (FPD) file</xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" ref="ModuleSA"/>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element name="FvAttribute">\r
- <xs:complexType>\r
- <xs:attribute name="Name" type="xs:NCName" use="required"/>\r
- <xs:attribute name="Value" type="xs:normalizedString" use="required"/>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element name="FwImage">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" ref="FvRegionName"/>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="FvOption"/>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="FvAttribute"/>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element name="FvImageBindingSequence">\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="ValidRegionNameListType">\r
- <xs:attribute name="PartId" type="KeywordType" use="required"/>\r
- <xs:attribute name="OutputFile" type="PathAndFilename" use="required"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element name="FvImages">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en">This section allows the user to define specific information regarding the FvImage</xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:choice>\r
- <xs:sequence minOccurs="0">\r
- <!-- This is the current style -->\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="NameValue">\r
- <xs:complexType>\r
- <xs:attribute name="Name" type="xs:string" use="required"/>\r
- <xs:attribute name="Value" type="xs:string" use="required"/>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:choice>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="FvImage">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="FvImageNames" type="xs:NCName"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="FvImageOptions">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="NameValue">\r
- <xs:complexType>\r
- <xs:attribute name="Name" type="xs:string" use="required"/>\r
- <xs:attribute name="Value" type="xs:string" use="required"/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- <xs:attribute name="Type" type="FvImageTypes" use="optional"/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:choice>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="FvImageName">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="FvImageOptions">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="NameValue">\r
- <xs:complexType>\r
- <xs:attribute name="Name" type="xs:string" use="required"/>\r
- <xs:attribute name="Value" type="xs:string" use="required"/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- <xs:attribute name="Name" type="FvRegionTypes" use="required"/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:choice>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element name="FvRegionName">\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="KeywordType">\r
- <xs:attributeGroup ref="FvRegionNameAttributes"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element name="ModuleSA">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en">This element is used to specify information in the FPD ModuleSA section.</xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/>\r
- <!-- Only specification is allow here. We need to let this be an addtion OR, if the WORD portion MATCHES, this entry takes precedence.</xs:documentation -->\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>\r
- <xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDefinition"/>\r
- <xs:element minOccurs="0" maxOccurs="1" ref="ModuleSaBuildOptions"/>\r
- <!-- The following BuildOptions Sections is for Legacy Ffs -->\r
- <xs:element minOccurs="0" maxOccurs="1" name="BuildOptions">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="1" ref="UserDefinedAntTasks"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="ImageEntryPoint" type="C_NameType"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="OutputDirectory">\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:anyURI">\r
- <xs:attribute default="UNIFIED" name="IntermediateDirectories" use="optional">\r
- <xs:simpleType>\r
- <xs:restriction base="UCNameType">\r
- <xs:enumeration value="MODULE"/>\r
- <xs:enumeration value="UNIFIED"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:attribute>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Ffs">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Attribute">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Name" type="C_NameType"/>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Value" type="C_NameType"/>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Sections">\r
- <xs:complexType>\r
- <xs:sequence minOccurs="1">\r
- <xs:element name="Section" minOccurs="0" maxOccurs="unbounded">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element ref=" Filenames " minOccurs="0"/>\r
- <xs:element name="Args" type=" ArgsType " minOccurs="0"/>\r
- <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>\r
- <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>\r
- <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>\r
- </xs:sequence>\r
- <xs:attributeGroup ref=" SectionsAttributes "/>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element name="Sections" minOccurs="0" maxOccurs="unbounded">\r
- <xs:complexType>\r
- <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
- <xs:element name="Section">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element ref=" Filenames " minOccurs="0"/>\r
- <xs:element name="Args" type=" ArgsType " minOccurs="0"/>\r
- <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>\r
- <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>\r
- <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>\r
- </xs:sequence>\r
- <xs:attributeGroup ref="SectionsAttributes"/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- <xs:attributeGroup ref=" SectionsAttributes "/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- <xs:attributeGroup ref=" SectionsAttributes "/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element name="Sections">\r
- <xs:complexType>\r
- <xs:sequence minOccurs="1">\r
- <xs:element name="Section" minOccurs="0" maxOccurs="unbounded">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element ref=" Filenames " minOccurs="0"/>\r
- <xs:element name="Args" type=" ArgsType " minOccurs="0"/>\r
- <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>\r
- <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>\r
- <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>\r
- </xs:sequence>\r
- <xs:attributeGroup ref=" SectionsAttributes "/>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element name="Sections" minOccurs="0" maxOccurs="unbounded">\r
- <xs:complexType>\r
- <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
- <xs:element name="Section">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element ref=" Filenames " minOccurs="0"/>\r
- <xs:element name="Args" type=" ArgsType " minOccurs="0"/>\r
- <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>\r
- <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>\r
- <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>\r
- </xs:sequence>\r
- <xs:attributeGroup ref=" SectionsAttributes "/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- <xs:attributeGroup ref=" SectionsAttributes "/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- <xs:attributeGroup ref=" SectionsAttributes "/>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element name="Options">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element name=" Option " minOccurs="1" maxOccurs="unbounded">\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base=" xs:normalizedString ">\r
- <xs:attribute name="BuildTargets" type=" BuildTargetList " use="optional"/>\r
- <xs:attribute name="ToolChainFamily" type=" ToolsNameConvention " use="optional"/>\r
- <xs:attribute name="TagName" type=" ToolsNameConvention " use="optional"/>\r
- <xs:attribute name="ToolCommand" type=" ToolsNameConvention " use="optional"/>\r
- <xs:attribute name="SupArchList" type=" ArchListType " use="optional"/>\r
- <xs:attribute name="Platform" type=" UiNameType " use="optional"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- <!-- Do not use ToolChain - it is a legacy value -->\r
- <xs:attribute name="ToolChain" type="ToolChains" use="optional"/>\r
- <xs:attribute name="BuildTargets" type=" BuildTargetList " use="optional"/>\r
- <xs:attribute name="ToolChainFamily" type=" ToolsNameConvention " use="optional"/>\r
- <xs:attribute name="TagName" type=" ToolsNameConvention " use="optional"/>\r
- <xs:attribute name="ToolCommand" type=" ToolsNameConvention " use="optional"/>\r
- <xs:attribute name="SupArchList" type=" ArchListType " use="optional"/>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- The following Externs Section is for Legacy Ffs -->\r
- <xs:element minOccurs="0" maxOccurs="1" name="Externs">\r
- <xs:complexType>\r
- <xs:sequence minOccurs="1">\r
- <xs:element name="PcdIsDriver" type=" PcdDriverTypes " minOccurs="0" maxOccurs="1"/>\r
- <xs:element name="Specification" type=" Sentence " minOccurs="0" maxOccurs="unbounded"/>\r
- <xs:element name="Extern" minOccurs="0" maxOccurs="unbounded">\r
- <xs:complexType>\r
- <xs:choice minOccurs="1">\r
- <xs:sequence minOccurs="0" maxOccurs="1">\r
- <xs:element name=" ModuleEntryPoint " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>\r
- <xs:element name=" ModuleUnloadImage " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- <xs:sequence minOccurs="0" maxOccurs="1">\r
- <xs:element name=" Constructor " type=" C_NameType " minOccurs="0" maxOccurs="1"/>\r
- <xs:element name=" Destructor " type=" C_NameType " minOccurs="0" maxOccurs="1"/>\r
- </xs:sequence>\r
- <xs:sequence minOccurs="0" maxOccurs="1">\r
- <xs:element name=" DriverBinding " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>\r
- <xs:element name=" ComponentName " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>\r
- <xs:element name=" DriverConfig " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>\r
- <xs:element name=" DriverDiag " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- <xs:sequence minOccurs="0" maxOccurs="1">\r
- <xs:element name=" SetVirtualAddressMapCallBack " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>\r
- <xs:element name=" ExitBootServicesCallBack " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- </xs:choice>\r
- <xs:attributeGroup ref=" ExternAttributes "/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- <xs:attributeGroup ref="MsaAttributes"/>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element name="FvOption">\r
- <xs:complexType>\r
- <xs:attribute name="Name" type="xs:NCName" use="required"/>\r
- <xs:attribute name="Value" type="xs:normalizedString" use="required"/>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element name="PlatformList">\r
- <!-- Valid for DB usage only! -->\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en">This is used in the FrameworkDatabase file</xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="DbPathAndFilename"/>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
-</xs:schema>\r