1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.w3.org/ns/widgets" xmlns:widgets="http://www.w3.org/ns/widgets">
3 <xs:include schemaLocation="common.xsd"/>
4 <xs:include schemaLocation="access.xsd"/>
5 <xs:include schemaLocation="updates.xsd"/>
6 <xs:import namespace="http://tizen.org/ns/widgets" schemaLocation="widgets.tizen.xsd"/>
7 <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
9 Widget Packaging and Configuration <http://www.w3.org/TR/widgets/>
12 <xs:element name="widget">
15 <xs:extension base="widgets:group.widgetContent">
16 <xs:attributeGroup ref="widgets:global.attrs"/>
17 <xs:attributeGroup ref="widgets:global.xml"/>
18 <xs:attributeGroup ref="widgets:extension"/>
19 <xs:attribute name="id" type="xs:anyURI"/>
20 <xs:attribute name="defaultlocale"/>
21 <xs:attribute name="version" type="widgets:data.versionNumber"/>
22 <xs:attribute name="min-version" type="widgets:data.versionNumber"/>
23 <xs:attribute name="height" type="widgets:data.positiveNumber"/>
24 <xs:attribute name="width" type="widgets:data.positiveNumber"/>
25 <xs:attribute name="viewmodes">
29 <xs:restriction base="xs:token">
30 <xs:enumeration value="windowed"/>
31 <xs:enumeration value="floating"/>
32 <xs:enumeration value="fullscreen"/>
33 <xs:enumeration value="maximized"/>
34 <xs:enumeration value="minimized"/>
40 <!-- Requirment from IDE UX -->
41 <xs:attribute ref="xml:lang"/>
46 <xs:complexType name="group.widgetContent" mixed="true">
47 <xs:choice minOccurs="0" maxOccurs="unbounded">
49 <xs:element ref="widgets:name"/>
50 <xs:element ref="widgets:description"/>
51 <xs:element ref="widgets:icon"/>
52 <xs:element ref="widgets:author"/>
53 <xs:element ref="widgets:license"/>
54 <xs:element ref="widgets:content"/>
55 <xs:element ref="widgets:feature"/>
56 <xs:element ref="widgets:preference"/>
58 <xs:element ref="tizen:app-control" maxOccurs="unbounded" xmlns:tizen="http://tizen.org/ns/widgets"/>
59 <xs:element ref="tizen:setting" maxOccurs="unbounded" xmlns:tizen="http://tizen.org/ns/widgets"/>
60 <xs:element ref="tizen:ime" minOccurs="0" maxOccurs="1" xmlns:tizen="http://tizen.org/ns/widgets"/>
61 <xs:element ref="tizen:service" minOccurs="0" maxOccurs="unbounded" xmlns:tizen="http://tizen.org/ns/widgets"/>
62 <xs:element ref="tizen:application" minOccurs="1" maxOccurs="1" xmlns:tizen="http://tizen.org/ns/widgets"/>
63 <xs:element ref="tizen:content" minOccurs="1" maxOccurs="1" xmlns:tizen="http://tizen.org/ns/widgets"/>
64 <xs:element ref="tizen:privilege" minOccurs="0" maxOccurs="unbounded" xmlns:tizen="http://tizen.org/ns/widgets"/>
65 <xs:element ref="tizen:content-security-policy" minOccurs="0" maxOccurs="1" xmlns:tizen="http://tizen.org/ns/widgets"/>
66 <xs:element ref="tizen:content-security-policy-report-only" minOccurs="0" maxOccurs="1" xmlns:tizen="http://tizen.org/ns/widgets"/>
67 <xs:element ref="tizen:allow-navigation" minOccurs="0" maxOccurs="1" xmlns:tizen="http://tizen.org/ns/widgets"/>
68 <xs:element ref="tizen:app-widget" minOccurs="0" maxOccurs="unbounded" xmlns:tizen="http://tizen.org/ns/widgets"/>
69 <xs:element ref="tizen:account" minOccurs="0" maxOccurs="unbounded" xmlns:tizen="http://tizen.org/ns/widgets"/>
70 <xs:element ref="tizen:metadata" minOccurs="0" maxOccurs="unbounded" xmlns:tizen="http://tizen.org/ns/widgets"/>
71 <xs:element ref="tizen:splash" minOccurs="0" maxOccurs="1" xmlns:tizen="http://tizen.org/ns/widgets"/>
72 <xs:element ref="tizen:category" minOccurs="0" maxOccurs="unbounded" xmlns:tizen="http://tizen.org/ns/widgets"/>
73 <xs:element ref="tizen:profile" minOccurs="0" maxOccurs="unbounded" xmlns:tizen="http://tizen.org/ns/widgets"/>
74 <!-- W3C testcases fail - should accept any element -->
75 <!-- <xs:group minOccurs="0" maxOccurs="unbounded" ref="widgets:foreignElement"/> -->
77 <xs:element ref="widgets:access"/>
78 <!-- <xs:element ref="widgets:update-description"/> -->
81 <xs:element name="name">
82 <xs:complexType mixed="true">
83 <xs:choice minOccurs="0" maxOccurs="unbounded">
84 <xs:element ref="widgets:span"/>
85 <xs:group ref="widgets:foreignElement"/>
87 <!-- Requirment from IDE UX -->
88 <xs:attribute ref="xml:lang"/>
89 <xs:attributeGroup ref="widgets:global.attrs"/>
90 <xs:attributeGroup ref="widgets:global.xml"/>
91 <xs:attributeGroup ref="widgets:extension"/>
92 <xs:attribute name="short"/>
95 <xs:element name="description">
96 <xs:complexType mixed="true">
97 <xs:choice minOccurs="0" maxOccurs="unbounded">
98 <xs:element ref="widgets:span"/>
99 <xs:group ref="widgets:foreignElement"/>
101 <!-- Requirment from IDE UX -->
102 <xs:attribute ref="xml:lang"/>
103 <xs:attributeGroup ref="widgets:global.attrs"/>
104 <xs:attributeGroup ref="widgets:global.xml"/>
105 <xs:attributeGroup ref="widgets:extension"/>
108 <xs:element name="icon">
110 <xs:attributeGroup ref="widgets:global.attrs"/>
111 <xs:attributeGroup ref="widgets:foreignAttribute"/>
112 <!-- w3c testcase - must ignore
113 <xs:attribute name="src" use="required" type="xs:anyURI"/>
115 <xs:attribute name="src" type="xs:anyURI"/>
116 <xs:attribute name="height" type="widgets:data.positiveNumber"/>
117 <xs:attribute name="width" type="widgets:data.positiveNumber"/>
120 <xs:element name="author">
121 <xs:complexType mixed="true">
122 <xs:choice minOccurs="0" maxOccurs="unbounded">
123 <xs:element ref="widgets:span"/>
124 <xs:group ref="widgets:foreignElement"/>
125 <!-- W3C testcases fail - should accept any element -->
127 <xs:attributeGroup ref="widgets:global.attrs"/>
128 <xs:attributeGroup ref="widgets:global.xml"/>
129 <xs:attributeGroup ref="widgets:extension"/>
130 <xs:attribute name="href" type="xs:anyURI"/>
131 <xs:attribute name="email" type="xs:string"/>
132 <!-- fails W3C testcases
133 <xs:attribute name="email">
135 <xs:restriction base="xs:string">
136 <xs:pattern value=".+@.+"/>
143 <xs:element name="license">
144 <xs:complexType mixed="true">
145 <xs:choice minOccurs="0" maxOccurs="unbounded">
146 <xs:element ref="widgets:span"/>
147 <xs:group ref="widgets:foreignElement"/>
149 <!-- Requirment from IDE UX -->
150 <xs:attribute ref="xml:lang"/>
151 <xs:attributeGroup ref="widgets:global.attrs"/>
152 <xs:attributeGroup ref="widgets:global.xml"/>
153 <xs:attributeGroup ref="widgets:extension"/>
154 <xs:attribute name="href" type="xs:anyURI"/>
157 <xs:element name="content">
159 <xs:attributeGroup ref="widgets:global.attrs"/>
160 <xs:attributeGroup ref="widgets:foreignAttribute"/>
161 <!-- w3c testcase - ignore not valid
162 <xs:attribute name="src" use="required" type="xs:anyURI"/>
164 <xs:attribute name="src" type="xs:string"/>
165 <xs:attribute name="type"/>
166 <xs:attribute name="encoding"/>
169 <xs:element name="feature">
170 <xs:complexType mixed="true">
171 <xs:choice minOccurs="0" maxOccurs="unbounded">
172 <xs:element ref="widgets:param"/>
173 <xs:group ref="widgets:foreignElement"/>
175 <xs:attributeGroup ref="widgets:global.attrs"/>
176 <xs:attributeGroup ref="widgets:global.xml"/>
177 <xs:attributeGroup ref="widgets:extension"/>
178 <!-- w3c tescase - must ignore
179 <xs:attribute name="name" use="required" type="xs:anyURI"/>
181 <xs:attribute name="name" type="xs:anyURI"/>
182 <xs:attribute name="required" type="widgets:data.boolean"/>
185 <xs:element name="param">
186 <xs:complexType mixed="true">
187 <xs:group minOccurs="0" maxOccurs="unbounded" ref="widgets:foreignElement"/>
188 <xs:attributeGroup ref="widgets:global.attrs"/>
189 <xs:attributeGroup ref="widgets:global.xml"/>
190 <xs:attributeGroup ref="widgets:extension"/>
191 <xs:attribute name="name"/>
192 <xs:attribute name="value"/>
193 <!-- w3c testcase - must ignore
194 <xs:attribute name="name" use="required"/>
195 <xs:attribute name="value" use="required"/>
199 <xs:element name="span">
200 <xs:complexType mixed="true">
201 <xs:choice minOccurs="0" maxOccurs="unbounded">
202 <xs:element ref="widgets:span"/>
203 <xs:group ref="widgets:foreignElement"/>
205 <xs:attributeGroup ref="widgets:global.attrs"/>
206 <xs:attributeGroup ref="widgets:global.xml"/>
209 <xs:element name="preference">
210 <xs:complexType mixed="true">
211 <xs:group minOccurs="0" maxOccurs="unbounded" ref="widgets:foreignElement"/>
212 <xs:attributeGroup ref="widgets:global.attrs"/>
213 <xs:attributeGroup ref="widgets:global.xml"/>
214 <xs:attributeGroup ref="widgets:extension"/>
215 <!-- w3c testcase -required but missing
216 <xs:attribute name="name" use="required"/>
218 <xs:attribute name="name"/>
219 <xs:attribute name="value"/>
220 <xs:attribute name="readonly" type="widgets:data.boolean"/>