summaryrefslogtreecommitdiff
path: root/Tools/XMLSchema/SurfaceArea.xsd
blob: d79e574ee0279b1befeec97d499cf5cb567f3c49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?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: SurfaceArea.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="FrameworkHeaders.xsd"/>
  <xs:include schemaLocation="FrameworkDataElements.xsd"/>
  <xs:include schemaLocation="FrameworkPlatformDataElements.xsd"/>
  <xs:annotation>
    <xs:documentation xml:lang="en">This describes the valid content of a FrameworkDatabase (DB) File.</xs:documentation>
  </xs:annotation>
  <xs:element name="FrameworkDatabase">
    <xs:complexType>
      <xs:sequence>
        <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="0" maxOccurs="1" ref="FarList"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:annotation>
    <xs:documentation xml:lang="en">This describes the valid content of a Framework Platform Description (FPD) File.</xs:documentation>
  </xs:annotation>
  <xs:element name="PlatformSurfaceArea">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" ref="PlatformHeader"/>
        <!-- This section will be for new definitions of how we put together the Framework Binary Images -->
        <xs:element minOccurs="0" maxOccurs="1" ref="PlatformDefinitions"/>
        <!-- The Flash section is the legacy implementation of Flash -->
        <xs:element minOccurs="0" maxOccurs="1" ref="Flash"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="FrameworkModules"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="DynamicPcdBuildDefinitions"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:annotation>
    <xs:documentation xml:lang="en">This describes the valid content for a Module Surface Area Description (MSA) file.</xs:documentation>
  </xs:annotation>
  <xs:element name="ModuleSurfaceArea">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" ref="MsaHeader"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="ModuleDefinitions"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDefinitions"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="NonProcessedFiles"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="PackageDependencies"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="Events"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="HiiPackages"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="PcdCoded"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="ModuleBuildOptions"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:annotation>
    <xs:documentation xml:lang="en">This describes the valid content for a Package Surface Area Description (SPD) file.</xs:documentation>
  </xs:annotation>
  <xs:element name="PackageSurfaceArea">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" ref="SpdHeader"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="PackageDefinitions"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDeclarations"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="IndustryStdIncludes"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="MsaFiles"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="PackageHeaders"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="GuidDeclarations"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="ProtocolDeclarations"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="PpiDeclarations"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="PcdDeclarations"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <!-- This element is listed here, only because we are using elements from both the FrameworkDataElements and FrameworkPlatformDataElements files. -->
  <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"/>
        <xs:element minOccurs="0" maxOccurs="1" name="ForceDebugTarget" type="KeywordType"/>
        <!-- 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: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="PlatformGuid" type="GuidType"/>
                    <xs:element minOccurs="1" maxOccurs="1" name="PlatformVersion" type="VersionDataType"/>
                  </xs:sequence>
                  <!-- The Id is a number used to track heritage  the first entry will be 0 and increment from then on. -->
                  <xs:attribute name="Id" type="xs:nonNegativeInteger" use="required"/>
                  <!-- If the original module was installed from a FAR, track the FAR it came from. -->
                  <xs:attribute name="FarGuid" type="GuidType" use="optional"/>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>