<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.TianoCore.org/2006/Edk2.0" xmlns="http://www.TianoCore.org/2006/Edk2.0">
  <!--
    Filename: FrameworkHeaders.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.
    
    APPROVED: 14-Jun-2006
  -->
  <xs:include schemaLocation="FrameworkDataElements.xsd"/>
  <xs:element name="FdbHeader">
    <xs:annotation>
      <xs:documentation xml:lang="en">This is the header for the Framework Package Database (DB) file.</xs:documentation>
      <xs:documentation xml:lang="en">The Guid MUST change if backward compatibility breaks caused by a new release of XML Schema.</xs:documentation>
      <xs:documentation xml:lang="en">The Version will change if a minor change to XML Schema has been made, but backward compatiblity is maintained.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" name="DatabaseName" type="UiNameType" fixed="FrameworkDatabase"/>
        <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="License"/>
        <xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" fixed="FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="FarHeader">
    <xs:annotation>
      <xs:documentation xml:lang="en">This is the header for the Framework Archive Manifest file.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" name="FarName" type="UiNameType"/>
        <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="License"/>
        <xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" fixed="FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="MsaHeader">
    <xs:annotation>
      <xs:documentation xml:lang="en">This header is for the Module Surface Area Description (MSA) files</xs:documentation>
      <xs:documentation xml:lang="en">The Guid MUST change if the Module changes break backward compatibility.</xs:documentation>
      <xs:documentation xml:lang="en">The Version MUST change if the Module changes, however, backward compatiblity is maintained.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" name="ModuleName" type="UiNameType"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="ModuleType"/>
        <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="License"/>
        <xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" fixed="FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="PlatformHeader">
    <xs:annotation>
      <xs:documentation xml:lang="en">This header is for the Framework Platform Description (FPD) files.</xs:documentation>
      <xs:documentation xml:lang="en">The Guid MUST change if the FPD changes break backward compatibility.</xs:documentation>
      <xs:documentation xml:lang="en">The Version MUST change if the FPD changes, however, backward compatiblity is maintained.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" name="PlatformName" type="UiNameType"/>
        <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="License"/>
        <xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" fixed="FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SpdHeader">
    <xs:annotation>
      <xs:documentation xml:lang="en">This head is for the Surface Area Package Description file (SPD)</xs:documentation>
      <xs:documentation xml:lang="en">The Guid MUST change when the contents of the file undergo MAJOR FUNCTIONALITY changes.</xs:documentation>
      <xs:documentation xml:lang="en">The Version MUST change when the contents of the file undergo MINOR FUNCTIONALITY changes.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" name="PackageName" type="UiNameType"/>
        <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="License"/>
        <xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" fixed="FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
