Add manifest scheme of package dependency
[platform/core/appfw/pkgmgr-info.git] / parser / manifest.xsd.in
index df8240b..9fd38f9 100644 (file)
 
   <xs:element name="manifest">
     <xs:complexType>
-      <xs:sequence>
-        <xs:choice maxOccurs="unbounded">
-          <xs:element ref="packages:label"/>
-          <xs:element ref="packages:icon"/>
-          <xs:element ref="packages:author"/>
-          <xs:element ref="packages:description"/>
-          <xs:element ref="packages:compatibility"/>
-          <xs:element ref="packages:profile"/>
-          <xs:element ref="packages:service-application"/>
-          <xs:element ref="packages:ui-application"/>
-          <xs:element ref="packages:ime-application"/>
-          <xs:element ref="packages:shortcut-list"/>
-          <xs:element ref="packages:livebox"/>
-          <xs:element ref="packages:account"/>
-                 <xs:element ref="packages:notifications"/>
-                 <xs:element ref="packages:privileges"/>
-          <xs:element ref="packages:font"/>
-                 <xs:element ref="packages:ime"/>
-        </xs:choice>
-      </xs:sequence>
-         <xs:attribute name="storeclient-id" type="xs:string"/>
-      <xs:attribute name="install-location" type="packages:InstallLocationType"/>
+      <xs:choice maxOccurs="unbounded">
+        <xs:element ref="packages:label"/>
+        <xs:element ref="packages:icon"/>
+        <xs:element ref="packages:author"/>
+        <xs:element ref="packages:description"/>
+        <xs:element ref="packages:compatibility"/>
+        <xs:element ref="packages:profile"/>
+        <xs:element ref="packages:watch-application"/>
+        <xs:element ref="packages:watchface"/>
+        <xs:element ref="packages:service-application"/>
+        <xs:element ref="packages:ui-application"/>
+        <xs:element ref="packages:ime-application"/>
+        <xs:element ref="packages:shortcut-list"/>
+        <xs:element ref="packages:widget"/>
+        <xs:element ref="packages:widget-application"/>
+        <xs:element ref="packages:account"/>
+        <xs:element ref="packages:notifications"/>
+        <xs:element ref="packages:privileges"/>
+        <xs:element ref="packages:font"/>
+        <xs:element ref="packages:ime"/>
+        <xs:element ref="packages:feature"/>
+        <xs:element ref="packages:trust-anchor"/>
+        <xs:element ref="packages:component-based-application"/>
+        <xs:element ref="packages:dependencies"/>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/>
+      </xs:choice>
+      <xs:attribute name="storeclient-id" type="xs:string"/>
+      <xs:attribute name="install-location" type="xs:string"/>
       <xs:attribute name="package" use="required" type="xs:string"/>
-         <xs:attribute name="main_package" type="xs:string"/>
-      <xs:attribute name="type" type="packages:PackageType"/>
-      <xs:attribute name="version" use="required" type="xs:NMTOKEN"/>
+      <xs:attribute name="type" type="xs:string"/>
+      <xs:attribute name="version" use="required" type="xs:string"/>
       <xs:attribute name="size" type="xs:NMTOKEN"/>
-         <xs:attribute name="root_path" type="xs:string"/>
-         <xs:attribute name="csc_path" type="xs:string"/>
-         <xs:attribute name="appsetting" type="xs:boolean"/>
-         <xs:attribute name="nodisplay-setting" type="xs:boolean"/>
-         <xs:attribute name="url" type="xs:string"/>
-         <xs:attribute name="api-version" type="xs:string"/>
+      <xs:attribute name="root_path" type="xs:string"/>
+      <xs:attribute name="csc_path" type="xs:string"/>
+      <xs:attribute name="appsetting" type="xs:boolean"/>
+      <xs:attribute name="nodisplay-setting" type="xs:boolean"/>
+      <xs:attribute name="url" type="xs:string"/>
+      <xs:attribute name="support-disable" type="xs:boolean"/>
+      <xs:attribute name="api-version" type="xs:string"/>
+      <xs:attribute name="backend-installer" type="xs:string"/>
+      <xs:attribute name="preload" type="xs:boolean"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
     </xs:complexType>
   </xs:element>
 
-    <xs:simpleType name="InstallLocationType">
-      <xs:restriction base="xs:string">
-        <xs:enumeration value="auto"/>
-        <xs:enumeration value="internal-only"/>
-        <xs:enumeration value="prefer-external"/>
-      </xs:restriction>
-    </xs:simpleType>
-    <xs:simpleType name="PackageType">
-      <xs:restriction base="xs:string">
-        <xs:enumeration value="rpm"/>
-        <xs:enumeration value="tpk"/>
-        <xs:enumeration value="wgt"/>
-        <xs:enumeration value="apk"/>
-        <xs:enumeration value="coretpk"/>
-      </xs:restriction>
-    </xs:simpleType>
-    <xs:simpleType name="ProfileType">
-      <xs:restriction base="xs:string">
-        <xs:enumeration value="mobile"/>
-        <xs:enumeration value="wearable"/>
-        <xs:enumeration value="TV"/>
-       </xs:restriction>
-    </xs:simpleType>
-    <xs:simpleType name="TypeType">
-      <xs:restriction base="xs:string">
-        <xs:enumeration value="capp"/>
-        <xs:enumeration value="c++app"/>
-        <xs:enumeration value="webapp"/>
-       </xs:restriction>
-    </xs:simpleType>
-    <xs:simpleType name="HwAccelerationType">
-      <xs:restriction base="xs:string">
-        <xs:enumeration value="use-GL"/>
-        <xs:enumeration value="not-use-GL"/>
-        <xs:enumeration value="use-system-setting"/>
-       </xs:restriction>
-    </xs:simpleType>
-       <xs:simpleType name="ScreenReaderType">
-         <xs:restriction base="xs:string">
-               <xs:enumeration value="screenreader-off"/>
-               <xs:enumeration value="screenreader-on"/>
-               <xs:enumeration value="use-system-setting"/>
-          </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="RecentImage">
-         <xs:restriction base="xs:string">
-               <xs:enumeration value="icon"/>
-               <xs:enumeration value="capture"/>
-          </xs:restriction>
-       </xs:simpleType>
-
   <xs:element name="author">
     <xs:complexType mixed="true">
       <xs:attribute name="email"/>
       <xs:attribute name="href"/>
       <xs:attribute ref="xml:lang"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="description">
     <xs:complexType mixed="true">
       <xs:attribute ref="xml:lang"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="compatibility">
-    <xs:complexType/>
-  </xs:element>
-  <xs:element name="device-profile">
-    <xs:complexType/>
+    <xs:complexType>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
+    </xs:complexType>
   </xs:element>
   <xs:element name="profile">
     <xs:complexType>
-      <xs:attribute name="name" type="packages:ProfileType"/>
+      <xs:attribute name="name" use="required" type="xs:string"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="watch-application">
+    <xs:complexType>
+      <xs:choice maxOccurs="unbounded" minOccurs="0">
+        <xs:element ref="packages:label"/>
+        <xs:element ref="packages:icon"/>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/>
+      </xs:choice>
+      <xs:attribute name="appid" use="required" type="xs:string"/>
+      <xs:attribute name="exec" use="required"/>
+      <xs:attribute name="ambient-support" type="xs:boolean"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
     </xs:complexType>
   </xs:element>
+  <xs:element name="watchface">
+  </xs:element>
   <xs:element name="service-application">
     <xs:complexType>
-      <xs:sequence>
-        <xs:choice maxOccurs="unbounded" minOccurs="0">
-          <xs:element ref="packages:label"/>
-          <xs:element ref="packages:icon"/>
-          <xs:element ref="packages:application-service"/>
-          <xs:element ref="packages:app-control"/>
-          <xs:element ref="packages:category"/>
-          <xs:element ref="packages:metadata"/>
-                 <xs:element ref="packages:permission"/>
-        </xs:choice>
-      </xs:sequence>
+      <xs:choice maxOccurs="unbounded" minOccurs="0">
+        <xs:element ref="packages:label"/>
+        <xs:element ref="packages:icon"/>
+        <xs:element ref="packages:application-service"/>
+        <xs:element ref="packages:app-control"/>
+        <xs:element ref="packages:category"/>
+        <xs:element ref="packages:metadata"/>
+        <xs:element ref="packages:permission"/>
+        <xs:element ref="packages:datacontrol"/>
+        <xs:element ref="packages:background-category"/>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/>
+      </xs:choice>
       <xs:attribute name="appid" use="required" type="xs:string"/>
-      <xs:attribute name="auto-restart" use="required" type="xs:boolean"/>
+      <xs:attribute name="auto-restart" type="xs:boolean"/>
       <xs:attribute name="exec" use="required"/>
-      <xs:attribute name="on-boot" use="required" type="xs:boolean"/>
-      <xs:attribute name="type" use="required" type="packages:TypeType"/>
-         <xs:attribute name="permission-type" type="xs:string"/>
+      <xs:attribute name="on-boot" type="xs:boolean"/>
+      <xs:attribute name="type" use="required" type="xs:string"/>
+      <xs:attribute name="multiple" type="xs:boolean"/>
+      <xs:attribute name="taskmanage" type="xs:boolean"/>
+      <xs:attribute name="permission-type" type="xs:string"/>
+      <xs:attribute name="component-type" type="xs:string"/>
+      <xs:attribute name="nodisplay" type="xs:boolean"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="ui-application">
     <xs:complexType>
-      <xs:sequence>
-        <xs:choice maxOccurs="unbounded" minOccurs="0">
-          <xs:element ref="packages:label"/>
-          <xs:element ref="packages:icon"/>
-                 <xs:element ref="packages:image"/>
-          <xs:element ref="packages:application-service"/>
-          <xs:element ref="packages:app-control"/>
-          <xs:element ref="packages:category"/>
-          <xs:element ref="packages:metadata"/>
-                 <xs:element ref="packages:permission"/>
-        </xs:choice>
-      </xs:sequence>
+      <xs:choice maxOccurs="unbounded" minOccurs="0">
+        <xs:element ref="packages:label"/>
+        <xs:element ref="packages:icon"/>
+        <xs:element ref="packages:image"/>
+        <xs:element ref="packages:application-service"/>
+        <xs:element ref="packages:app-control"/>
+        <xs:element ref="packages:category"/>
+        <xs:element ref="packages:metadata"/>
+        <xs:element ref="packages:permission"/>
+        <xs:element ref="packages:datacontrol"/>
+        <xs:element ref="packages:background-category"/>
+        <xs:element ref="packages:splash-screens"/>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/>
+      </xs:choice>
       <xs:attribute name="appid" use="required" type="xs:string"/>
       <xs:attribute name="exec" use="required"/>
       <xs:attribute name="multiple" type="xs:boolean"/>
       <xs:attribute name="nodisplay" type="xs:boolean"/>
       <xs:attribute name="taskmanage" type="xs:boolean"/>
       <xs:attribute name="enabled" type="xs:boolean"/>
-      <xs:attribute name="type" use="required" type="packages:TypeType"/>
+      <xs:attribute name="type" use="required" type="xs:string"/>
       <xs:attribute name="categories" type="xs:NCName"/>
       <xs:attribute name="extraid"/>
-      <xs:attribute name="hw-acceleration" type="packages:HwAccelerationType"/>
-         <xs:attribute name="screen-reader" type="packages:ScreenReaderType"/>
-         <xs:attribute name="recentimage" type="packages:RecentImage"/>
-         <xs:attribute name="mainapp" type="xs:boolean"/>
+      <xs:attribute name="hw-acceleration" type="xs:string"/>
+      <xs:attribute name="screen-reader" type="xs:string"/>
+      <xs:attribute name="recentimage" type="xs:string"/>
+      <xs:attribute name="mainapp" type="xs:boolean"/>
       <xs:attribute name="indicatordisplay" type="xs:boolean"/>
       <xs:attribute name="portrait-effectimage" type="xs:string"/>
       <xs:attribute name="landscape-effectimage" type="xs:string"/>
+      <xs:attribute name="effectimage-type" type="xs:string"/>
       <xs:attribute name="guestmode-visibility" type="xs:string"/>
-         <xs:attribute name="launchcondition" type="xs:boolean"/>
-         <xs:attribute name="permission-type" type="xs:string"/>
-         <xs:attribute name="component-type" type="xs:string"/>
-         <xs:attribute name="submode" type="xs:boolean"/>
-         <xs:attribute name="submode-mainid" type="xs:string"/>
+      <xs:attribute name="launchcondition" type="xs:boolean"/>
+      <xs:attribute name="permission-type" type="xs:string"/>
+      <xs:attribute name="component-type" type="xs:string"/>
+      <xs:attribute name="submode" type="xs:boolean"/>
+      <xs:attribute name="submode-mainid" type="xs:string"/>
+      <xs:attribute name="process-pool" type="xs:boolean"/>
+      <xs:attribute name="auto-restart" type="xs:boolean"/>
+      <xs:attribute name="on-boot" type="xs:boolean"/>
+      <xs:attribute name="multi-instance" type="xs:boolean"/>
+      <xs:attribute name="multi-instance-mainid" type="xs:string"/>
+      <xs:attribute name="ui-gadget" type="xs:boolean"/>
+      <xs:attribute name="launch_mode" type="xs:string"/>
+      <xs:attribute name="splash-screen-display" type="xs:boolean"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="ime-application">
     <xs:complexType>
-      <xs:sequence>
-        <xs:choice maxOccurs="unbounded">
-          <xs:element ref="packages:label"/>
-          <xs:element ref="packages:icon"/>
-        </xs:choice>
-      </xs:sequence>
+      <xs:choice maxOccurs="unbounded">
+        <xs:element ref="packages:label"/>
+        <xs:element ref="packages:icon"/>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/>
+      </xs:choice>
       <xs:attribute name="appid" use="required" type="xs:string"/>
       <xs:attribute name="exec" use="required" type="xs:NCName"/>
       <xs:attribute name="multiple" type="xs:boolean"/>
       <xs:attribute name="nodisplay" type="xs:boolean"/>
-      <xs:attribute name="type" use="required" type="packages:TypeType"/>
+      <xs:attribute name="type" use="required" type="xs:string"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="shortcut-list">
   </xs:element>
-  <xs:element name="livebox">
+  <xs:element name="widget">
+  </xs:element>
+  <xs:element name="widget-application">
+    <xs:complexType>
+      <xs:choice maxOccurs="unbounded" minOccurs="0">
+        <xs:element ref="packages:label"/>
+        <xs:element ref="packages:icon"/>
+        <xs:element ref="packages:metadata"/>
+        <xs:element ref="packages:support-size"/>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/>
+      </xs:choice>
+      <xs:attribute name="appid" use="required" type="xs:string"/>
+      <xs:attribute name="exec" use="required"/>
+      <xs:attribute name="main" type="xs:boolean"/>
+      <xs:attribute name="update-period" type="xs:nonNegativeInteger"/>
+      <xs:attribute name="max-instance" type="xs:nonNegativeInteger"/>
+      <xs:attribute name="preview" type="xs:string"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
+    </xs:complexType>
   </xs:element>
   <xs:element name="account">
   </xs:element>
   </xs:element>
   <xs:element name="ime">
   </xs:element>
+  <xs:element name="feature">
+  </xs:element>
+  <xs:element name="trust-anchor">
+    <xs:complexType>
+      <xs:attribute name="use-system-certs" type="xs:string"/>
+    </xs:complexType>
+  </xs:element>
   <xs:element name="privileges">
     <xs:complexType>
-      <xs:sequence>
-        <xs:choice maxOccurs="unbounded" minOccurs="0">
-          <xs:element ref="packages:privilege"/>
-        </xs:choice>
-      </xs:sequence>
+      <xs:choice maxOccurs="unbounded" minOccurs="0">
+        <xs:element ref="packages:privilege"/>
+        <xs:element ref="packages:appdefined-privilege"/>
+      </xs:choice>
     </xs:complexType>
   </xs:element>
   <xs:element name="privilege">
+    <xs:complexType mixed="true">
+      <xs:attribute name="type" type="xs:string"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="provides-appdefined-privileges">
+    <xs:complexType>
+      <xs:choice maxOccurs="unbounded" minOccurs="0">
+        <xs:element ref="packages:appdefined-privilege"/>
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="appdefined-privilege">
+    <xs:complexType mixed="true">
+      <xs:attribute name="type" type="xs:string"/>
+      <xs:attribute name="license" type="xs:string"/>
+    </xs:complexType>
   </xs:element>
   <xs:element name="font">
   </xs:element>
   <xs:element name="label">
     <xs:complexType mixed="true">
       <xs:attribute ref="xml:lang"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="icon">
-       <xs:complexType mixed="true">
-         <xs:attribute ref="xml:lang"/>
-         <xs:attribute name="section" type="xs:string"/>
-         <xs:attribute name="resolution" type="packages:ResolutionType"/>
-       </xs:complexType>
+  <xs:complexType mixed="true">
+    <xs:attribute ref="xml:lang"/>
+    <xs:attribute name="section" type="xs:string"/>
+    <xs:attribute name="resolution" type="xs:string"/>
+    <xs:attribute name="dpi" type="xs:string"/>
+    <xs:anyAttribute namespace="##any" processContents="lax"/>
+  </xs:complexType>
   </xs:element>
   <xs:element name="image">
-       <xs:complexType mixed="true">
-         <xs:attribute ref="xml:lang"/>
-         <xs:attribute name="section" type="xs:string"/>
-       </xs:complexType>
-  </xs:element>
-  <xs:simpleType name="SectionType">
-       <xs:restriction base="xs:string">
-         <xs:enumeration value="notification"/>
-         <xs:enumeration value="setting"/>
-        </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="ResolutionType">
-       <xs:restriction base="xs:string">
-         <xs:enumeration value="xhigh"/>
-         <xs:enumeration value="high"/>
-        </xs:restriction>
-  </xs:simpleType>
+  <xs:complexType mixed="true">
+    <xs:attribute ref="xml:lang"/>
+    <xs:attribute name="section" type="xs:string"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
+  </xs:complexType>
+  </xs:element>
   <xs:element name="application-service">
     <xs:complexType>
-      <xs:sequence>
-        <xs:choice maxOccurs="unbounded">
-          <xs:element ref="packages:operation"/>
-          <xs:element ref="packages:uri"/>
-          <xs:element ref="packages:mime"/>
-          <xs:element ref="packages:subapp"/>
-        </xs:choice>
-      </xs:sequence>
+      <xs:choice maxOccurs="unbounded">
+        <xs:element ref="packages:operation"/>
+        <xs:element ref="packages:uri"/>
+        <xs:element ref="packages:mime"/>
+        <xs:element ref="packages:subapp"/>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/>
+      </xs:choice>
     </xs:complexType>
   </xs:element>
   <xs:element name="app-control">
     <xs:complexType>
-      <xs:sequence>
-        <xs:choice maxOccurs="unbounded">
-          <xs:element ref="packages:operation"/>
-          <xs:element ref="packages:uri"/>
-          <xs:element ref="packages:mime"/>
-          <xs:element ref="packages:subapp"/>
-        </xs:choice>
-      </xs:sequence>
+      <xs:choice maxOccurs="unbounded">
+        <xs:element ref="packages:operation"/>
+        <xs:element ref="packages:uri"/>
+        <xs:element ref="packages:mime"/>
+        <xs:element ref="packages:subapp"/>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/>
+      </xs:choice>
+      <xs:attribute name="id" type="xs:string"/>
+      <xs:attribute name="visibility" type="xs:string"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="category">
     <xs:complexType>
-      <xs:sequence>
-        <xs:choice maxOccurs="unbounded">
-          <xs:any minOccurs="0" processContents="lax"/>
-        </xs:choice>
-      </xs:sequence>
+      <xs:choice maxOccurs="unbounded">
+        <xs:any minOccurs="0" processContents="lax"/>
+      </xs:choice>
+      <xs:attribute name="name" use="required"/>
       <xs:anyAttribute processContents="lax"/>
     </xs:complexType>
   </xs:element>
     <xs:complexType>
       <xs:attribute name="key" use="required" type="xs:string"/>
       <xs:attribute name="value" type="xs:string"/>
+      <xs:anyAttribute processContents="lax"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="permission">
-       <xs:complexType>
-         <xs:attribute name="type" type="xs:string"/>
-       </xs:complexType>
+  <xs:complexType>
+    <xs:attribute name="type" type="xs:string"/>
+    <xs:anyAttribute processContents="lax"/>
+  </xs:complexType>
+  </xs:element>
+  <xs:element name="datacontrol">
+  <xs:complexType>
+    <xs:choice maxOccurs="unbounded" minOccurs="0">
+      <xs:element ref="packages:privilege"/>
+    </xs:choice>
+    <xs:attribute name="providerid" type="xs:string"/>
+    <xs:attribute name="access" type="xs:string"/>
+    <xs:attribute name="type" type="xs:string"/>
+    <xs:attribute name="trusted" type="xs:boolean"/>
+    <xs:anyAttribute processContents="lax"/>
+  </xs:complexType>
   </xs:element>
   <xs:element name="operation">
     <xs:complexType>
       <xs:attribute name="name" use="required"/>
+      <xs:anyAttribute processContents="lax"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="uri">
     <xs:complexType>
       <xs:attribute name="name" use="required"/>
+      <xs:anyAttribute processContents="lax"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="mime">
     <xs:complexType>
       <xs:attribute name="name" use="required"/>
+      <xs:anyAttribute processContents="lax"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="subapp">
     <xs:complexType>
       <xs:attribute name="name" use="required"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="background-category">
+    <xs:complexType mixed="true">
+      <xs:attribute name="value" type="xs:string"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="support-size">
+  </xs:element>
+  <xs:element name="splash-screens">
+    <xs:complexType>
+      <xs:choice maxOccurs="unbounded" minOccurs="0">
+        <xs:element ref="packages:splash-screen"/>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/>
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="splash-screen">
+    <xs:complexType>
+      <xs:attribute name="src" use="required" type="xs:string"/>
+      <xs:attribute name="type" use="required" type="xs:string"/>
+      <xs:attribute name="dpi" type="xs:string"/>
+      <xs:attribute name="orientation" use="required" type="xs:string"/>
+      <xs:attribute name="indicator-display" type="xs:string"/>
+      <xs:attribute name="app-control-operation" type="xs:string"/>
+      <xs:attribute name="color-depth" type="xs:string"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="component-based-application">
+    <xs:complexType>
+      <xs:choice maxOccurs="unbounded" minOccurs="0">
+        <xs:element ref="packages:icon"/>
+        <xs:element ref="packages:label"/>
+        <xs:element ref="packages:metadata"/>
+        <xs:element ref="packages:background-category"/>
+        <xs:element ref="packages:frame-component"/>
+        <xs:element ref="packages:service-component"/>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/>
+      </xs:choice>
+      <xs:attribute name="appid" use="required" type="xs:string"/>
+      <xs:attribute name="exec" use="required"/>
+      <xs:attribute name="type" use="required" type="xs:string"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="frame-component">
+    <xs:complexType>
+      <xs:choice maxOccurs="unbounded" minOccurs="0">
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/>
+      </xs:choice>
+      <xs:attribute name="id" use="required" type="xs:string"/>
+      <xs:attribute name="launch_mode" type="xs:string"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-component">
+    <xs:complexType>
+      <xs:choice maxOccurs="unbounded" minOccurs="0">
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/>
+      </xs:choice>
+      <xs:attribute name="id" use="required" type="xs:string"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="dependencies">
+    <xs:complexType>
+      <xs:choice maxOccurs="unbounded" minOccurs="0">
+        <xs:element ref="packages:dependency"/>
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="dependency">
+    <xs:complexType mixed="true">
+      <xs:attribute name="type" use="required" type="xs:string"/>
+      <xs:attribute name="required-version" type="xs:string"/>
     </xs:complexType>
   </xs:element>
 </xs:schema>