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