merged the new schema except to those PCD related

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@556 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
jwang36 2006-06-19 06:24:35 +00:00
parent 1cf9cdcc9c
commit f014786935
7 changed files with 208 additions and 20 deletions

View File

@ -236,6 +236,7 @@
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
<xs:attribute name="ModuleTypeList" type="ModuleTypeList" use="optional"/>
<xs:attribute name="Name" type="KeywordType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="LibraryAttributes">
<!-- LibraryAttributes is used for Libraries / Library elements in FPD files -->
@ -275,6 +276,7 @@
<xs:attribute name="RecommendedInstanceVersion" type="xs:decimal" use="optional"/>
<xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>
<xs:attribute name="Usage" type="LibraryUsage" use="required"/>
<xs:attribute name="Name" type="xs:normalizedString" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="MsaGuidAttributes">
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
@ -298,6 +300,10 @@
<!-- DO NOT USE remove Version from use, Start using ModuleVersion instead -->
<xs:attribute name="Version" type="VersionDataType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="FfsAttributes">
<xs:attribute name="FfsFormatKeyword" type="FfsNameType" use="required"/>
<xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="MsaAttributes">
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>

View File

@ -103,6 +103,7 @@
<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>
@ -131,10 +132,56 @@
</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>
@ -336,6 +383,7 @@
<xs:complexType>
<xs:sequence minOccurs="1">
<xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver" type="PcdDriverTypes"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Extern">
<xs:complexType>
<xs:choice minOccurs="1">
@ -375,7 +423,6 @@
<xs:attributeGroup ref="ExternAttributes"/>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>
<!-- Remove Arch and use Arch Attribute in above. -->
<xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
<xs:complexType>
@ -554,7 +601,7 @@
<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:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
<!-- DO NOT USE removing GuidValue from use -->
@ -702,7 +749,7 @@
<xs:element name="IndustryStdHeader">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="Header" type="UiNameType"/>
<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" ref="HelpText"/>
</xs:sequence>
@ -717,7 +764,7 @@
<xs:complexType>
<xs:sequence minOccurs="1">
<xs:element minOccurs="0" maxOccurs="unbounded" name="Library">
<xs:complexType>
<xs:complexType mixed="true">
<xs:simpleContent>
<xs:extension base="xs:NCName">
<xs:attributeGroup ref="LibraryAttributes"/>
@ -775,7 +822,10 @@
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element minOccurs="1" maxOccurs="1" ref="IncludeHeader"/>
<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>
@ -784,6 +834,15 @@
<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 name="IncludeHeader" type="PathAndFilename" minOccurs="1" maxOccurs="1"/>
<xs:element ref="HelpText" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
<xs:attributeGroup ref="LibraryClassAttributes"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
@ -927,6 +986,42 @@
</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="SectionAttributes"/>
</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" 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: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>
@ -975,7 +1070,10 @@
</xs:annotation>
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element minOccurs="1" maxOccurs="unbounded" ref="PackageName"/>
<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>
@ -1008,7 +1106,7 @@
</xs:annotation>
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element minOccurs="1" name="Package">
<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>
@ -1033,9 +1131,22 @@
<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 mixed="true">
<xs:simpleContent>
<xs:extension base="UiNameType">
<xs:attributeGroup ref="PackageAttributes"/>
</xs:extension>
</xs:simpleContent>
</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>
@ -1742,13 +1853,10 @@
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="SystemTable">
<xs:complexType>
<xs:complexType mixed="true">
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:choice>
<xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>
<!-- Remove Entry from Use -->
<xs:element minOccurs="0" maxOccurs="1" name="Entry" type="xs:normalizedString"/>
</xs:choice>
<!-- Remove Entry from Use -->
<xs:element minOccurs="0" maxOccurs="1" name="Entry" type="xs:normalizedString"/>
</xs:sequence>
<xs:attributeGroup ref="SystemTableAttributes"/>
</xs:complexType>
@ -1890,4 +1998,14 @@
</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:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -47,6 +47,15 @@
<xs:enumeration value="SOMETIMES_PRODUCED"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ModuleListType">
<xs:list itemType="FrameworkModuleTypes"/>
</xs:simpleType>
<xs:simpleType name="IntermediateOutputType">
<xs:restriction base="UCNameType">
<xs:enumeration value="MODULE"/>
<xs:enumeration value="UNIFIED"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BuildTargets">
<xs:restriction base="xs:NCName">
<xs:enumeration value="DEBUG"/>
@ -54,6 +63,19 @@
<xs:enumeration value="BOTH"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BuildTargetList">
<xs:union memberTypes="UCNameType DEBUG RELEASE"/>
</xs:simpleType>
<xs:simpleType name="DEBUG">
<xs:restriction base="UCNameType">
<xs:pattern value="DEBUG"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="RELEASE">
<xs:restriction base="UCNameType">
<xs:pattern value="RELEASE"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ComponentExecutionPhase">
<xs:restriction base="UCNameType">
<xs:enumeration value="MDE"/>
@ -503,4 +525,12 @@
<xs:element name="ToolArgs" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="FfsNameType">
<xs:annotation>
<xs:documentation xml:lang="en"> This defines what an FFS Name can consist of.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][_\-a-zA-Z0-9]*(.)?[a-zA-Z0-9]*"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

View File

@ -114,7 +114,7 @@
<xs:element minOccurs="0" maxOccurs="1" name="ModuleName" type="UiNameType"/>
</xs:choice>
<xs:element minOccurs="1" maxOccurs="1" ref="ModuleType"/>
<xs:element minOccurs="1" maxOccurs="1" ref="ComponentType"/>
<xs:element minOccurs="0" maxOccurs="1" ref="ComponentType"/>
<xs:choice>
<!-- Guid needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
@ -139,11 +139,6 @@
<!-- ModifiedDate needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="1" name="SupportedArchitectures">
<xs:simpleType>
<xs:list itemType="SupportedArchitectures"/>
</xs:simpleType>
</xs:element>
<xs:element default="false" minOccurs="0" name="BinaryModule" type="xs:boolean"/>
<!-- Specification needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052 -->
<xs:element minOccurs="0" maxOccurs="1" ref="Specification"/>

View File

@ -273,6 +273,7 @@
</xs:complexType>
</xs:element>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>
<xs:choice>
<!-- DO NOT USE! REMOVE PcdBuildDeclarations in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDeclarations"/>
@ -281,6 +282,7 @@
</xs:choice>
<!-- BuildOptions stays in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="ModuleSaBuildOptions"/>
</xs:sequence>
<xs:attributeGroup ref="MsaAttributes"/>
</xs:complexType>
@ -323,6 +325,7 @@
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element ref="Platform"/>
<xs:element name="Filename" type="PathAndFilename" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
@ -361,6 +364,32 @@
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FlashDeviceDefinitions">
<xs:complexType>
<xs:annotation>
<xs:documentation xml:lang="en">We allow specifying the Flash layout in this directory, or we allow specifying a flashmap filename</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="FlashDefinition" type="FlashData"/>
<xs:element minOccurs="0" maxOccurs="1" ref="FvImages"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PlatformDefinitions">
<xs:complexType>
<xs:sequence>
<!-- This is the list of ALL architectures that are supported by this Platform -->
<xs:element minOccurs="1" maxOccurs="1" name="SupportedArchitectures" type="ArchListType"/>
<xs:element minOccurs="1" maxOccurs="1" name="BuildTargets" type="BuildTargetList"/>
<xs:element default="UNIFIED" name="IntermediateDirectories" type="IntermediateOutputType"/>
<xs:element minOccurs="0" maxOccurs="1" name="OutputDirectory" type="xs:anyURI"/>
<!-- SkuInfo is only defined if Sku enabled -->
<xs:element minOccurs="0" maxOccurs="1" ref="SkuInfo"/>
<xs:element minOccurs="0" maxOccurs="1" ref="FlashDeviceDefinitions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="FfsFormatDeclarations"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="Components">
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="ModuleSA"/>

View File

@ -326,4 +326,9 @@
<xs:pattern value="([0-9])+[a-zA-Z0-9]*(-?.?([a-zA-Z0-9])*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="KeywordType">
<xs:restriction base="xs:normalizedString">
<xs:pattern value="[a-zA-Z]+(_*[a-zA-Z0-9]*)*"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

View File

@ -24,6 +24,8 @@
<xs:element minOccurs="1" maxOccurs="1" ref="FdbHeader"/>
<xs:element minOccurs="1" maxOccurs="1" ref="PackageList"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PlatformList"/>
<xs:element minOccurs="1" maxOccurs="1" ref="FarList"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
@ -34,6 +36,7 @@
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="PlatformHeader"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PlatformDefinitions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="SkuInfo"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Flash"/>
<!-- DO NOT USE! removing TianoImage, use FrameworkModules instead. -->
@ -138,6 +141,7 @@
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="MsaHeader"/>
<xs:element minOccurs="0" maxOccurs="1" ref="ModuleDefinitions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDefinitions"/>
<xs:element minOccurs="1" maxOccurs="1" ref="SourceFiles"/>
<xs:choice minOccurs="0">
@ -164,6 +168,7 @@
<xs:element minOccurs="0" maxOccurs="1" ref="PcdCoded"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="ModuleBuildOptions"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
</xs:sequence>
</xs:complexType>
@ -175,13 +180,13 @@
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="SpdHeader"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PackageDefinitions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" ref="IndustryStdIncludes"/>
<!-- DO NOT USE removing THIS INSTANCE of PackageDependencies, this is moving to FDP installation process -->
<xs:element minOccurs="0" maxOccurs="1" ref="PackageDependencies"/>
<!-- DO NOT USE removing MsaFiles, use MsaFileList instead , do not wrap in choice, too many entries to convert all at once. -->
<xs:element minOccurs="0" maxOccurs="1" ref="MsaFiles"/>
<xs:element minOccurs="0" maxOccurs="1" ref="MsaFileList"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PackageHeaders"/>
<xs:element minOccurs="0" maxOccurs="1" ref="GuidDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" ref="ProtocolDeclarations"/>