OSDN Git Service

ver0.96リリース候補
[charactermanaj/CharacterManaJ.git] / resources / schema / character.xsd
1 <?xml version="1.0" encoding="utf-8"?>\r
2 <xs:schema\r
3   targetNamespace="http://charactermanaj.sourceforge.jp/schema/charactermanaj"\r
4   xmlns="http://charactermanaj.sourceforge.jp/schema/charactermanaj"\r
5   xmlns:xs="http://www.w3.org/2001/XMLSchema"\r
6   xmlns:xml="http://www.w3.org/XML/1998/namespace"\r
7   attributeFormDefault="qualified"\r
8   elementFormDefault="qualified">\r
9   <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>\r
10   <xs:include schemaLocation="character_inc.xsd"/>\r
11   <xs:element name="character">\r
12     <xs:annotation>\r
13       <xs:documentation xml:lang="ja">キャラクターデータの定義</xs:documentation>\r
14     </xs:annotation>\r
15     <xs:complexType>\r
16       <xs:sequence>\r
17         <xs:element name="name" nillable="false" minOccurs="1" maxOccurs="unbounded">\r
18           <xs:annotation>\r
19             <xs:documentation xml:lang="ja">キャラクターデータ名。該当するlangがなければ最初の定義をデフォルト値とする。</xs:documentation>\r
20           </xs:annotation>\r
21           <xs:complexType>\r
22             <xs:simpleContent>\r
23               <xs:extension base="tokenNotEmpty">\r
24                  <xs:attribute ref="xml:lang" use="required" />\r
25               </xs:extension>\r
26             </xs:simpleContent>\r
27           </xs:complexType>\r
28         </xs:element>\r
29 \r
30         <xs:element name="information" minOccurs="0" maxOccurs="1">\r
31           <xs:annotation>\r
32             <xs:documentation xml:lang="ja">備考</xs:documentation>\r
33           </xs:annotation>\r
34           <xs:complexType>\r
35             <xs:sequence>\r
36               <xs:element name="author" minOccurs="0" maxOccurs="unbounded" nillable="false">\r
37                 <xs:annotation>\r
38                   <xs:documentation xml:lang="ja">作者名</xs:documentation>\r
39                 </xs:annotation>\r
40                 <xs:complexType>\r
41                   <xs:simpleContent>\r
42                     <xs:extension base="xs:string">\r
43                       <xs:attribute ref="xml:lang" use="required" />\r
44                     </xs:extension>\r
45                   </xs:simpleContent>\r
46                 </xs:complexType>\r
47               </xs:element>\r
48               <xs:element name="description" minOccurs="1" maxOccurs="unbounded" nillable="false">\r
49                 <xs:annotation>\r
50                   <xs:documentation xml:lang="ja">説明文</xs:documentation>\r
51                 </xs:annotation>\r
52                 <xs:complexType>\r
53                   <xs:simpleContent>\r
54                     <xs:extension base="xs:string">\r
55                       <xs:attribute ref="xml:lang" use="required" />\r
56                     </xs:extension>\r
57                   </xs:simpleContent>\r
58                 </xs:complexType>\r
59               </xs:element>\r
60             </xs:sequence>\r
61           </xs:complexType>\r
62         </xs:element>\r
63         \r
64         <xs:element name="image-size">\r
65           <xs:annotation>\r
66             <xs:documentation xml:lang="ja">イメージのサイズ(幅と高さ)</xs:documentation>\r
67           </xs:annotation>\r
68           <xs:complexType>\r
69             <xs:sequence>\r
70               <xs:element name="width">\r
71                 <xs:simpleType>\r
72                   <xs:restriction base="xs:unsignedInt">\r
73                     <xs:minExclusive value="0"/>\r
74                   </xs:restriction>\r
75                 </xs:simpleType>\r
76               </xs:element>\r
77               <xs:element name="height">\r
78                 <xs:simpleType>\r
79                   <xs:restriction base="xs:unsignedInt">\r
80                     <xs:minExclusive value="0"/>\r
81                   </xs:restriction>\r
82                 </xs:simpleType>\r
83               </xs:element>\r
84             </xs:sequence>\r
85           </xs:complexType>\r
86         </xs:element>\r
87         \r
88         <xs:element name="settings" minOccurs="0" maxOccurs="1">\r
89           <xs:annotation>\r
90             <xs:documentation xml:lang="ja">雑多なプロパティのコレクション</xs:documentation>\r
91           </xs:annotation>\r
92           <xs:complexType>\r
93             <xs:sequence>\r
94               <xs:element name="entry" minOccurs="0" maxOccurs="unbounded">\r
95                 <xs:annotation>\r
96                   <xs:documentation xml:lang="ja">雑多なプロパティ</xs:documentation>\r
97                 </xs:annotation>\r
98                 <xs:complexType>\r
99                   <xs:simpleContent>\r
100                     <xs:extension base="xs:string">\r
101                       <xs:attribute name="key" form="unqualified" use="required" type="xs:string"/>\r
102                     </xs:extension>\r
103                   </xs:simpleContent>\r
104                 </xs:complexType>\r
105               </xs:element>\r
106             </xs:sequence>\r
107           </xs:complexType>\r
108         </xs:element>\r
109         \r
110         <xs:element name="categories">\r
111           <xs:annotation>\r
112             <xs:documentation xml:lang="ja">カテゴリの定義リスト、出現順で画面に表示される。</xs:documentation>\r
113           </xs:annotation>\r
114           <xs:complexType>\r
115             <xs:sequence>\r
116               <xs:element name="category" minOccurs="1" maxOccurs="unbounded">\r
117                 <xs:annotation>\r
118                   <xs:documentation xml:lang="ja">カテゴリの定義</xs:documentation>\r
119                 </xs:annotation>\r
120                 <xs:complexType>\r
121                   <xs:sequence>\r
122                     <xs:element name="visible-rows" nillable="false" type="xs:positiveInteger">\r
123                       <xs:annotation>\r
124                         <xs:documentation xml:lang="ja">表示するパーツの行数(初期値)</xs:documentation>\r
125                       </xs:annotation>\r
126                     </xs:element>\r
127                     <xs:element name="display-name" nillable="false" minOccurs="1" maxOccurs="unbounded">\r
128                       <xs:annotation>\r
129                         <xs:documentation xml:lang="ja">カテゴリの表示名、該当するlangがない場合は最初のものをデフォルトとする。</xs:documentation>\r
130                       </xs:annotation>\r
131                       <xs:complexType>\r
132                         <xs:simpleContent>\r
133                           <xs:extension base="tokenNotEmpty">\r
134                             <xs:attribute ref="xml:lang" use="required"/>\r
135                           </xs:extension>\r
136                         </xs:simpleContent>\r
137                       </xs:complexType>\r
138                     </xs:element>\r
139                     <xs:element name="layers">\r
140                       <xs:annotation>\r
141                         <xs:documentation xml:lang="ja">パーツを構成するレイヤーの定義リスト</xs:documentation>\r
142                       </xs:annotation>\r
143                       <xs:complexType>\r
144                         <xs:sequence>\r
145                           <xs:element name="layer" minOccurs="1" maxOccurs="unbounded">\r
146                             <xs:annotation>\r
147                               <xs:documentation xml:lang="ja">パーツを構成するレイヤーの定義</xs:documentation>\r
148                             </xs:annotation>\r
149                             <xs:complexType>\r
150                               <xs:sequence>\r
151                                 <xs:element name="display-name" nillable="false" minOccurs="1" maxOccurs="unbounded">\r
152                                   <xs:annotation>\r
153                                     <xs:documentation xml:lang="ja">レイヤーの表示名、該当するlangがない場合は最初のものをデフォルトとする。</xs:documentation>\r
154                                   </xs:annotation>\r
155                                   <xs:complexType>\r
156                                     <xs:simpleContent>\r
157                                       <xs:extension base="tokenNotEmpty">\r
158                                         <xs:attribute ref="xml:lang" use="required"/>\r
159                                       </xs:extension>\r
160                                     </xs:simpleContent>\r
161                                   </xs:complexType>\r
162                                 </xs:element>\r
163                                 <xs:element name="order" nillable="false" type="xs:integer">\r
164                                   <xs:annotation>\r
165                                     <xs:documentation xml:lang="ja">パーツ全体でレイヤーを重ね合わせる順序。</xs:documentation>\r
166                                   </xs:annotation>\r
167                                 </xs:element>\r
168                                 <xs:element name="colorGroup" minOccurs="0" maxOccurs="1">\r
169                                   <xs:annotation>\r
170                                     <xs:documentation xml:lang="ja">色設定を連動させるグループの指定(省略可)</xs:documentation>\r
171                                   </xs:annotation>\r
172                                   <xs:complexType>\r
173                                     <xs:attribute name="refid" form="unqualified" type="tokenNotEmpty" use="required">\r
174                                       <xs:annotation>\r
175                                         <xs:documentation xml:lang="ja">カラーグループID</xs:documentation>\r
176                                       </xs:annotation>\r
177                                     </xs:attribute>\r
178                                     <xs:attribute name="init-sync" form="unqualified" use="required">\r
179                                       <xs:annotation>\r
180                                         <xs:documentation xml:lang="ja">初期状態で連動させるか?</xs:documentation>\r
181                                       </xs:annotation>\r
182                                       <xs:simpleType>\r
183                                         <xs:restriction base="xs:boolean">\r
184                                           <xs:pattern value="true"/>\r
185                                           <xs:pattern value="false"/>\r
186                                         </xs:restriction>\r
187                                       </xs:simpleType>\r
188                                     </xs:attribute>\r
189                                   </xs:complexType>\r
190                                 </xs:element>\r
191                                 <xs:element name="dir" nillable="false" type="tokenNotEmpty">\r
192                                   <xs:annotation>\r
193                                     <xs:documentation xml:lang="ja">このレイヤーの画像を格納しているディレクトリ名</xs:documentation>\r
194                                   </xs:annotation>\r
195                                 </xs:element>\r
196                               </xs:sequence>\r
197                               <xs:attribute name="id" form="unqualified" type="tokenNotEmpty" use="required">\r
198                                 <xs:annotation>\r
199                                   <xs:documentation xml:lang="ja">レイヤーの識別子</xs:documentation>\r
200                                 </xs:annotation>\r
201                               </xs:attribute>\r
202                             </xs:complexType>\r
203                           </xs:element>\r
204                         </xs:sequence>\r
205                       </xs:complexType>\r
206                     </xs:element>\r
207                   </xs:sequence>\r
208                   <xs:attribute name="id" form="unqualified" type="tokenNotEmpty" use="required">\r
209                     <xs:annotation>\r
210                       <xs:documentation xml:lang="ja">カテゴリーの識別子</xs:documentation>\r
211                     </xs:annotation>\r
212                   </xs:attribute>\r
213                   <xs:attribute name="multipleSelectable" form="unqualified" use="required">\r
214                     <xs:annotation>\r
215                       <xs:documentation xml:lang="ja">このカテゴリで複数のパーツが選択可能であるか?</xs:documentation>\r
216                     </xs:annotation>\r
217                     <xs:simpleType>\r
218                       <xs:restriction base="xs:boolean">\r
219                         <xs:pattern value="true"/>\r
220                         <xs:pattern value="false"/>\r
221                       </xs:restriction>\r
222                     </xs:simpleType>\r
223                   </xs:attribute>\r
224                 </xs:complexType>\r
225               </xs:element>\r
226             </xs:sequence>\r
227           </xs:complexType>\r
228         </xs:element>\r
229 \r
230         <xs:element name="colorGroups" minOccurs="0" maxOccurs="1">\r
231           <xs:annotation>\r
232             <xs:documentation xml:lang="ja">カラーグループの定義リスト</xs:documentation>\r
233           </xs:annotation>\r
234           <xs:complexType>\r
235             <xs:sequence>\r
236               <xs:element name="colorGroup" minOccurs="1" maxOccurs="unbounded">\r
237                 <xs:annotation>\r
238                   <xs:documentation xml:lang="ja">カラーグループの定義</xs:documentation>\r
239                 </xs:annotation>\r
240                 <xs:complexType>\r
241                   <xs:sequence>\r
242                     <xs:element name="display-name" nillable="false" minOccurs="1" maxOccurs="unbounded">\r
243                       <xs:annotation>\r
244                         <xs:documentation xml:lang="ja">カラーグループの表示名。該当するlangがない場合は最初をデフォルトとする。</xs:documentation>\r
245                       </xs:annotation>\r
246                       <xs:complexType>\r
247                         <xs:simpleContent>\r
248                           <xs:extension base="tokenNotEmpty">\r
249                             <xs:attribute ref="xml:lang" use="required"/>\r
250                           </xs:extension>\r
251                         </xs:simpleContent>\r
252                       </xs:complexType>\r
253                     </xs:element>\r
254                   </xs:sequence>\r
255                   <xs:attribute name="id" form="unqualified" type="tokenNotEmpty" use="required">\r
256                     <xs:annotation>\r
257                       <xs:documentation xml:lang="ja">カラーグループの識別子</xs:documentation>\r
258                     </xs:annotation>\r
259                   </xs:attribute>\r
260                 </xs:complexType>\r
261               </xs:element>\r
262             </xs:sequence>\r
263           </xs:complexType>\r
264         </xs:element>\r
265         \r
266         <xs:element name="recommendations" minOccurs="0" maxOccurs="1">\r
267           <xs:annotation>\r
268             <xs:documentation xml:lang="ja">お薦めリンクのリスト</xs:documentation>\r
269           </xs:annotation>\r
270           <xs:complexType>\r
271             <xs:sequence>\r
272               <xs:element name="recommendation" nillable="false" minOccurs="0" maxOccurs="unbounded">\r
273                 <xs:annotation>\r
274                   <xs:documentation xml:lang="ja">お勧めリンク</xs:documentation>\r
275                 </xs:annotation>\r
276                 <xs:complexType>\r
277                   <xs:sequence>\r
278                     <xs:element name="description" minOccurs="1" maxOccurs="unbounded" nillable="false">\r
279                       <xs:annotation>\r
280                         <xs:documentation xml:lang="ja">説明文</xs:documentation>\r
281                       </xs:annotation>\r
282                       <xs:complexType>\r
283                         <xs:simpleContent>\r
284                           <xs:extension base="xs:string">\r
285                             <xs:attribute ref="xml:lang" use="required">\r
286                               <xs:annotation>\r
287                                 <xs:documentation xml:lang="ja">言語</xs:documentation>\r
288                               </xs:annotation>\r
289                             </xs:attribute>\r
290                           </xs:extension>\r
291                         </xs:simpleContent>\r
292                       </xs:complexType>\r
293                     </xs:element>\r
294                     <xs:element name="URL" minOccurs="1" maxOccurs="unbounded" nillable="false">\r
295                       <xs:annotation>\r
296                         <xs:documentation xml:lang="ja">URL</xs:documentation>\r
297                       </xs:annotation>\r
298                       <xs:complexType>\r
299                         <xs:simpleContent>\r
300                           <xs:extension base="xs:string">\r
301                             <xs:attribute ref="xml:lang" use="required">\r
302                               <xs:annotation>\r
303                                 <xs:documentation xml:lang="ja">言語</xs:documentation>\r
304                               </xs:annotation>\r
305                             </xs:attribute>\r
306                           </xs:extension>\r
307                         </xs:simpleContent>\r
308                       </xs:complexType>\r
309                     </xs:element>\r
310                   </xs:sequence>\r
311                 </xs:complexType>\r
312               </xs:element>\r
313             </xs:sequence>\r
314           </xs:complexType>\r
315         </xs:element>\r
316 \r
317         <xs:element name="presets" minOccurs="0" maxOccurs="1" type="presetsType">\r
318           <xs:annotation>\r
319             <xs:documentation xml:lang="ja">定義済みパーツ組み合わせ例(プリセット)の定義リスト、定義順に表示される。</xs:documentation>\r
320           </xs:annotation>\r
321                 </xs:element>\r
322 \r
323       </xs:sequence>\r
324       <xs:attribute name="id" form="unqualified" type="tokenNotEmpty" use="required"/>\r
325       <xs:attribute name="rev" form="unqualified" type="tokenNotEmpty" use="required"/>\r
326       <xs:attribute name="version" form="unqualified" type="tokenNotEmpty" use="required">\r
327         <xs:annotation>\r
328           <xs:documentation xml:lang="ja">このXMLのバージョン番号、1.0固定。</xs:documentation>\r
329         </xs:annotation>\r
330       </xs:attribute>\r
331     </xs:complexType>\r
332 \r
333     <xs:key name="category-id">\r
334       <xs:selector xpath="categories/category"/>\r
335       <xs:field xpath="@id"/>\r
336     </xs:key>\r
337     <xs:key name="layer-id">\r
338       <xs:selector xpath="categories/category/layers/layer"/>\r
339       <xs:field xpath="@id"/>\r
340     </xs:key>\r
341     <xs:key name="colorGroup-id">\r
342       <xs:selector xpath="colorGroups/colorGroup"/>\r
343       <xs:field xpath="@id"/>\r
344     </xs:key>\r
345   </xs:element>\r
346 </xs:schema>\r