merge 2.4, allow to extend the manifest for pakackge compatibilty. 17/52117/2 accepted/tizen/mobile/20151119.232205 accepted/tizen/tv/20151119.232227 accepted/tizen/wearable/20151119.232232 submit/tizen/20151119.090129
authorjongmyeongko <jongmyeong.ko@samsung.com>
Thu, 19 Nov 2015 06:37:36 +0000 (15:37 +0900)
committerjongmyeongko <jongmyeong.ko@samsung.com>
Thu, 19 Nov 2015 07:50:35 +0000 (16:50 +0900)
NOTE: .ref file is for reference.

Change-Id: I0783bbfae25f21b1de8aea93ba8bd27a3b63a788
Signed-off-by: jongmyeongko <jongmyeong.ko@samsung.com>
include/pkgmgrinfo_debug.h
parser/manifest.xsd.in
parser/manifest.xsd.ref [new file with mode: 0644]
parser/pkgmgr_parser.c

index 4999e01..0350124 100644 (file)
@@ -25,6 +25,7 @@
 #include <dlog.h>
 
 #define _LOGE(fmt, arg...) LOGE(fmt, ##arg)
+#define _LOGI(fmt, arg...) LOGI(fmt, ##arg)
 #define _LOGD(fmt, arg...) LOGD(fmt, ##arg)
 
 #define PKGMGR_INFO_ENABLE_DLOG
index fc75b7f..a3a7358 100644 (file)
@@ -27,6 +27,7 @@
           <xs:element ref="packages:ime"/> <!-- TBD -->
           <xs:element ref="packages:feature"/> <!-- TBD -->
         </xs:choice>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/>
       </xs:sequence>
       <xs:attribute name="storeclient-id" type="xs:string"/>
       <xs:attribute name="install-location" type="packages:InstallLocationType"/>
@@ -42,6 +43,7 @@
       <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:anyAttribute namespace="##any" processContents="lax"/>
     </xs:complexType>
   </xs:element>
 
       <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:complexType>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
+    </xs:complexType>
   </xs:element>
   <xs:element name="profile">
     <xs:complexType>
       <xs:attribute name="name" use="required" type="packages:ProfileType"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="watch-application">
           <xs:element ref="packages:label"/>
           <xs:element ref="packages:icon"/>
         </xs:choice>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/>
       </xs:sequence>
       <xs:attribute name="appid" use="required" type="xs:ID"/>
       <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 ref="packages:datacontrol"/>
           <xs:element ref="packages:background-category"/>
         </xs:choice>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/>
       </xs:sequence>
       <xs:attribute name="appid" use="required" type="xs:string"/>
       <xs:attribute name="auto-restart" 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:element ref="packages:datacontrol"/>
           <xs:element ref="packages:background-category"/>
         </xs:choice>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/>
       </xs:sequence>
       <xs:attribute name="appid" use="required" type="xs:ID"/>
       <xs:attribute name="exec" use="required"/>
       <xs:attribute name="multi-instance-mainid" type="xs:string"/>
       <xs:attribute name="ui-gadget" type="xs:boolean"/>
       <xs:attribute name="launch_mode" type="packages:LaunchType"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="ime-application">
           <xs:element ref="packages:label"/>
           <xs:element ref="packages:icon"/>
         </xs:choice>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/>
       </xs:sequence>
       <xs:attribute name="appid" use="required" type="xs:ID"/>
       <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:anyAttribute namespace="##any" processContents="lax"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="shortcut-list">
           <xs:element ref="packages:icon"/>
           <xs:element ref="packages:support-size"/>
         </xs:choice>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax"/>
       </xs:sequence>
       <xs:attribute name="appid" use="required" type="xs:ID"/>
       <xs:attribute name="exec" use="required"/>
       <xs:attribute name="main" type="xs:boolean"/>
       <xs:attribute name="update-period" type="xs:positiveInteger"/>
       <xs:attribute name="preview" type="xs:string"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="account">
   <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:attribute ref="xml:lang"/>
     <xs:attribute name="section" type="xs:string"/>
     <xs:attribute name="resolution" type="packages:ResolutionType"/>
+      <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:anyAttribute namespace="##any" processContents="lax"/>
   </xs:complexType>
   </xs:element>
   <xs:simpleType name="SectionType">
           <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:sequence>
     </xs:complexType>
           <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:sequence>
     </xs:complexType>
     <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:anyAttribute processContents="lax"/>
   </xs:complexType>
   </xs:element>
   <xs:element name="datacontrol">
     <xs:attribute name="providerid" type="xs:string"/>
     <xs:attribute name="access" type="xs:string"/>
     <xs:attribute name="type" type="xs:string"/>
+    <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="packages:BackgroundCategoryType"/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
     </xs:complexType>
   </xs:element>
   <xs:simpleType name="BackgroundCategoryType">
diff --git a/parser/manifest.xsd.ref b/parser/manifest.xsd.ref
new file mode 100644 (file)
index 0000000..fc75b7f
--- /dev/null
@@ -0,0 +1,396 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://tizen.org/ns/packages" xmlns:packages="http://tizen.org/ns/packages">
+  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
+
+  <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:watch-application"/>
+          <xs:element ref="packages:watchface"/> <!-- TBD -->
+          <xs:element ref="packages:service-application"/>
+          <xs:element ref="packages:ui-application"/>
+          <xs:element ref="packages:ime-application"/> <!-- TBD -->
+          <xs:element ref="packages:shortcut-list"/> <!-- TBD -->
+          <xs:element ref="packages:widget"/> <!-- TBD -->
+          <xs:element ref="packages:widget-application"/> <!-- TBD -->
+          <xs:element ref="packages:account"/> <!-- TBD -->
+          <xs:element ref="packages:notifications"/> <!-- TBD -->
+          <xs:element ref="packages:privileges"/>
+          <xs:element ref="packages:font"/> <!-- TBD -->
+          <xs:element ref="packages:ime"/> <!-- TBD -->
+          <xs:element ref="packages:feature"/> <!-- TBD -->
+        </xs:choice>
+      </xs:sequence>
+      <xs:attribute name="storeclient-id" type="xs:string"/>
+      <xs:attribute name="install-location" type="packages:InstallLocationType"/>
+      <xs:attribute name="package" use="required" type="xs:string"/>
+      <xs:attribute name="type" type="packages:PackageType"/>
+      <xs:attribute name="version" use="required" type="xs:NMTOKEN"/>
+      <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="support-disable" type="xs:boolean"/>
+      <xs:attribute name="api-version" type="xs:string"/>
+      <xs:attribute name="backend-installer" type="xs:string"/>
+    </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="on"/>
+      <xs:enumeration value="off"/>
+      <xs:enumeration value="default"/>
+      <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:complexType>
+  </xs:element>
+  <xs:element name="description">
+    <xs:complexType mixed="true">
+      <xs:attribute ref="xml:lang"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="compatibility">
+    <xs:complexType/>
+  </xs:element>
+  <xs:element name="profile">
+    <xs:complexType>
+      <xs:attribute name="name" use="required" type="packages:ProfileType"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="watch-application">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:choice maxOccurs="unbounded" minOccurs="0">
+          <xs:element ref="packages:label"/>
+          <xs:element ref="packages:icon"/>
+        </xs:choice>
+      </xs:sequence>
+      <xs:attribute name="appid" use="required" type="xs:ID"/>
+      <xs:attribute name="exec" use="required"/>
+      <xs:attribute name="ambient-support" type="xs:boolean"/>
+    </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:element ref="packages:datacontrol"/>
+          <xs:element ref="packages:background-category"/>
+        </xs:choice>
+      </xs:sequence>
+      <xs:attribute name="appid" use="required" type="xs:string"/>
+      <xs:attribute name="auto-restart" type="xs:boolean"/>
+      <xs:attribute name="exec" use="required"/>
+      <xs:attribute name="on-boot" type="xs:boolean"/>
+      <xs:attribute name="type" use="required" type="packages:TypeType"/>
+      <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: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:element ref="packages:datacontrol"/>
+          <xs:element ref="packages:background-category"/>
+        </xs:choice>
+      </xs:sequence>
+      <xs:attribute name="appid" use="required" type="xs:ID"/>
+      <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="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="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="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="packages:LaunchType"/>
+    </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:attribute name="appid" use="required" type="xs:ID"/>
+      <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:complexType>
+  </xs:element>
+  <xs:element name="shortcut-list">
+  </xs:element>
+  <xs:element name="widget">
+  </xs:element>
+  <xs:element name="widget-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:support-size"/>
+        </xs:choice>
+      </xs:sequence>
+      <xs:attribute name="appid" use="required" type="xs:ID"/>
+      <xs:attribute name="exec" use="required"/>
+      <xs:attribute name="main" type="xs:boolean"/>
+      <xs:attribute name="update-period" type="xs:positiveInteger"/>
+      <xs:attribute name="preview" type="xs:string"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="account">
+  </xs:element>
+  <xs:element name="notifications">
+  </xs:element>
+  <xs:element name="ime">
+  </xs:element>
+  <xs:element name="feature">
+  </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:complexType>
+  </xs:element>
+  <xs:element name="privilege">
+  </xs:element>
+  <xs:element name="font">
+  </xs:element>
+  <xs:element name="label">
+    <xs:complexType mixed="true">
+      <xs:attribute ref="xml:lang"/>
+    </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: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="LaunchType">
+  <xs:restriction base="xs:string">
+    <xs:enumeration value="caller"/>
+    <xs:enumeration value="single"/>
+    <xs:enumeration value="group"/>
+    <xs:enumeration value="singleton"/>
+   </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: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: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: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:anyAttribute processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="metadata">
+    <xs:complexType>
+      <xs:attribute name="key" use="required" type="xs:string"/>
+      <xs:attribute name="value" type="xs:string"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="permission">
+  <xs:complexType>
+    <xs:attribute name="type" type="xs:string"/>
+  </xs:complexType>
+  </xs:element>
+  <xs:element name="datacontrol">
+  <xs:complexType>
+    <xs:attribute name="providerid" type="xs:string"/>
+    <xs:attribute name="access" type="xs:string"/>
+    <xs:attribute name="type" type="xs:string"/>
+  </xs:complexType>
+  </xs:element>
+  <xs:element name="operation">
+    <xs:complexType>
+      <xs:attribute name="name" use="required"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="uri">
+    <xs:complexType>
+      <xs:attribute name="name" use="required"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="mime">
+    <xs:complexType>
+      <xs:attribute name="name" use="required"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="subapp">
+    <xs:complexType>
+      <xs:attribute name="name" use="required"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="background-category">
+    <xs:complexType mixed="true">
+      <xs:attribute name="value" type="packages:BackgroundCategoryType"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:simpleType name="BackgroundCategoryType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="media"/>
+      <xs:enumeration value="download"/>
+      <xs:enumeration value="background-network"/>
+      <xs:enumeration value="location"/>
+      <xs:enumeration value="sensor"/>
+      <xs:enumeration value="iot-communication"/>
+      <xs:enumeration value="system"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:element name="support-size">
+  </xs:element>
+</xs:schema>
index f888aee..17462c7 100644 (file)
@@ -1740,7 +1740,7 @@ static int __ps_process_application(xmlTextReaderPtr reader, application_x *appl
                        application->datacontrol = g_list_append(application->datacontrol, datacontrol);
                        ret = __ps_process_datacontrol(reader, datacontrol);
                } else
-                       return -1;
+                       continue;
                if (ret < 0) {
                        _LOGD("Processing application failed\n");
                        return ret;
@@ -1844,8 +1844,8 @@ static int __start_process(xmlTextReaderPtr reader, manifest_x * mfx, uid_t uid)
                } else if (!strcmp(ASCII(node), "feature")) {
                        continue;
                } else {
-                       _LOGE("Unknown element: %s", ASCII(node));
-                       return -1;
+                       _LOGI("Unknown element: %s", ASCII(node));
+                       continue;
                }
 
                if (ret < 0) {