]> git.argeo.org Git - gpl/argeo-suite.git/blob - org.argeo.app.core/src/org/argeo/app/core/schemas/xCard-4.0.xsd
Add cn to person entity
[gpl/argeo-suite.git] / org.argeo.app.core / src / org / argeo / app / core / schemas / xCard-4.0.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:ietf:params:xml:ns:vcard-4.0" xmlns:ns1="urn:ietf:params:xml:ns:vcard-4.0">
3 <!--
4
5 3.3
6 -->
7 <!-- mbaudier - 2022-05-31 : corrected regexp from RFC 6351 -->
8 <xs:simpleType name="iana-token">
9 <xs:annotation>
10 <xs:documentation>Section 3.3: vCard Format Specification</xs:documentation>
11 </xs:annotation>
12 <xs:restriction base="xs:string">
13 <xs:pattern value="[a-zA-Z0-9]+"/>
14 </xs:restriction>
15 </xs:simpleType>
16 <!-- mbaudier - 2022-05-31 : corrected regexp from RFC 6351 -->
17 <xs:simpleType name="x-name">
18 <xs:restriction base="xs:string">
19 <xs:pattern value="x-[a-zA-Z0-9]+"/>
20 </xs:restriction>
21 </xs:simpleType>
22 <!--
23
24 4.1
25 -->
26 <xs:element name="text" type="xs:string"/>
27 <xs:group name="value-text-list">
28 <xs:sequence>
29 <xs:element maxOccurs="unbounded" ref="ns1:text"/>
30 </xs:sequence>
31 </xs:group>
32 <!-- 4.2 -->
33 <xs:element name="uri" type="xs:anyURI"/>
34 <!-- 4.3.1 -->
35 <xs:element name="date" substitutionGroup="ns1:value-date-and-or-time">
36 <xs:simpleType>
37 <xs:restriction base="xs:string">
38 <xs:pattern value="\d{8}|\d{4}-\d\d|--\d\d(\d\d)?|---\d\d"/>
39 </xs:restriction>
40 </xs:simpleType>
41 </xs:element>
42 <!-- 4.3.2 -->
43 <xs:element name="time" substitutionGroup="ns1:value-date-and-or-time">
44 <xs:simpleType>
45 <xs:restriction base="xs:string">
46 <xs:pattern value="(\d\d(\d\d(\d\d)?)?|-\d\d(\d\d?)|--\d\d)(Z|[+\-]\d\d(\d\d)?)?"/>
47 </xs:restriction>
48 </xs:simpleType>
49 </xs:element>
50 <!-- 4.3.3 -->
51 <xs:element name="date-time" substitutionGroup="ns1:value-date-and-or-time">
52 <xs:simpleType>
53 <xs:restriction base="xs:string">
54 <xs:pattern value="(\d{8}|--\d{4}|---\d\d)T\d\d(\d\d(\d\d)?)?(Z|[+\-]\d\d(\d\d)?)?"/>
55 </xs:restriction>
56 </xs:simpleType>
57 </xs:element>
58 <!-- 4.3.4 -->
59 <xs:element name="value-date-and-or-time" abstract="true"/>
60 <!-- 4.3.5 -->
61 <xs:complexType name="value-timestamp">
62 <xs:sequence>
63 <xs:element ref="ns1:timestamp"/>
64 </xs:sequence>
65 </xs:complexType>
66 <xs:element name="timestamp">
67 <xs:simpleType>
68 <xs:restriction base="xs:string">
69 <xs:pattern value="\d{8}T\d{6}(Z|[+\-]\d\d(\d\d)?)?"/>
70 </xs:restriction>
71 </xs:simpleType>
72 </xs:element>
73 <!-- 4.4 -->
74 <xs:element name="boolean" type="xs:boolean"/>
75 <!-- 4.5 -->
76 <xs:element name="integer" type="xs:integer"/>
77 <!-- 4.6 -->
78 <xs:element name="float" type="xs:float"/>
79 <!-- 4.7 -->
80 <xs:element name="utc-offset">
81 <xs:simpleType>
82 <xs:restriction base="xs:string">
83 <xs:pattern value="[+\-]\d\d(\d\d)?"/>
84 </xs:restriction>
85 </xs:simpleType>
86 </xs:element>
87 <!-- 4.8 -->
88 <xs:element name="language-tag">
89 <xs:simpleType>
90 <xs:restriction base="xs:string">
91 <xs:pattern value="([a-z]{2,3}((-[a-z]{3}){0,3})?|[a-z]{4,8})(-[a-z]{4})?(-([a-z]{2}|\d{3}))?(-([0-9a-z]{5,8}|\d[0-9a-z]{3}))*(-[0-9a-wyz](-[0-9a-z]{2,8})+)*(-x(-[0-9a-z]{1,8})+)?|x(-[0-9a-z]{1,8})+|[a-z]{1,3}(-[0-9a-z]{2,8}){1,2}"/>
92 </xs:restriction>
93 </xs:simpleType>
94 </xs:element>
95 <!--
96
97 5.1
98 -->
99 <xs:group name="param-language">
100 <xs:annotation>
101 <xs:documentation>Section 5: Parameters</xs:documentation>
102 </xs:annotation>
103 <xs:sequence>
104 <xs:element minOccurs="0" ref="ns1:language"/>
105 </xs:sequence>
106 </xs:group>
107 <xs:element name="language">
108 <xs:complexType>
109 <xs:sequence>
110 <xs:element ref="ns1:language-tag"/>
111 </xs:sequence>
112 </xs:complexType>
113 </xs:element>
114 <!-- 5.2 -->
115 <xs:group name="param-pref">
116 <xs:sequence>
117 <xs:element minOccurs="0" ref="ns1:pref"/>
118 </xs:sequence>
119 </xs:group>
120 <xs:element name="pref">
121 <xs:complexType>
122 <xs:sequence>
123 <xs:element name="integer">
124 <xs:simpleType>
125 <xs:restriction base="xs:integer">
126 <xs:minInclusive value="1"/>
127 <xs:maxInclusive value="100"/>
128 </xs:restriction>
129 </xs:simpleType>
130 </xs:element>
131 </xs:sequence>
132 </xs:complexType>
133 </xs:element>
134 <!-- 5.4 -->
135 <xs:group name="param-altid">
136 <xs:sequence>
137 <xs:element minOccurs="0" ref="ns1:altid"/>
138 </xs:sequence>
139 </xs:group>
140 <xs:element name="altid">
141 <xs:complexType>
142 <xs:sequence>
143 <xs:element ref="ns1:text"/>
144 </xs:sequence>
145 </xs:complexType>
146 </xs:element>
147 <!-- 5.5 -->
148 <xs:group name="param-pid">
149 <xs:sequence>
150 <xs:element minOccurs="0" ref="ns1:pid"/>
151 </xs:sequence>
152 </xs:group>
153 <xs:element name="pid">
154 <xs:complexType>
155 <xs:sequence>
156 <xs:element maxOccurs="unbounded" name="text">
157 <xs:simpleType>
158 <xs:restriction base="xs:string">
159 <xs:pattern value="\d+(\.\d+)?"/>
160 </xs:restriction>
161 </xs:simpleType>
162 </xs:element>
163 </xs:sequence>
164 </xs:complexType>
165 </xs:element>
166 <!-- 5.6 -->
167 <xs:group name="param-type">
168 <xs:sequence>
169 <xs:element minOccurs="0" ref="ns1:type"/>
170 </xs:sequence>
171 </xs:group>
172 <xs:element name="type">
173 <xs:complexType>
174 <xs:sequence>
175 <xs:element maxOccurs="unbounded" name="text">
176 <xs:simpleType>
177 <xs:restriction base="xs:token">
178 <xs:enumeration value="work"/>
179 <xs:enumeration value="home"/>
180 </xs:restriction>
181 </xs:simpleType>
182 </xs:element>
183 </xs:sequence>
184 </xs:complexType>
185 </xs:element>
186 <!-- 5.7 -->
187 <xs:group name="param-mediatype">
188 <xs:sequence>
189 <xs:element minOccurs="0" ref="ns1:mediatype"/>
190 </xs:sequence>
191 </xs:group>
192 <xs:element name="mediatype">
193 <xs:complexType>
194 <xs:sequence>
195 <xs:element ref="ns1:text"/>
196 </xs:sequence>
197 </xs:complexType>
198 </xs:element>
199 <!-- 5.8 -->
200 <xs:group name="param-calscale">
201 <xs:sequence>
202 <xs:element minOccurs="0" ref="ns1:calscale"/>
203 </xs:sequence>
204 </xs:group>
205 <xs:element name="calscale">
206 <xs:complexType>
207 <xs:sequence>
208 <xs:element name="text">
209 <xs:simpleType>
210 <xs:restriction base="xs:token">
211 <xs:enumeration value="gregorian"/>
212 </xs:restriction>
213 </xs:simpleType>
214 </xs:element>
215 </xs:sequence>
216 </xs:complexType>
217 </xs:element>
218 <!-- 5.9 -->
219 <xs:group name="param-sort-as">
220 <xs:sequence>
221 <xs:element minOccurs="0" ref="ns1:sort-as"/>
222 </xs:sequence>
223 </xs:group>
224 <xs:element name="sort-as">
225 <xs:complexType>
226 <xs:sequence>
227 <xs:element maxOccurs="unbounded" ref="ns1:text"/>
228 </xs:sequence>
229 </xs:complexType>
230 </xs:element>
231 <!-- 5.10 -->
232 <xs:group name="param-geo">
233 <xs:sequence>
234 <xs:element minOccurs="0" name="geo">
235 <xs:complexType>
236 <xs:sequence>
237 <xs:element ref="ns1:uri"/>
238 </xs:sequence>
239 </xs:complexType>
240 </xs:element>
241 </xs:sequence>
242 </xs:group>
243 <!-- 5.11 -->
244 <xs:group name="param-tz">
245 <xs:sequence>
246 <xs:element minOccurs="0" name="tz">
247 <xs:complexType>
248 <xs:choice>
249 <xs:element ref="ns1:text"/>
250 <xs:element ref="ns1:uri"/>
251 </xs:choice>
252 </xs:complexType>
253 </xs:element>
254 </xs:sequence>
255 </xs:group>
256 <!--
257
258 6.1.3
259 -->
260 <xs:element name="source">
261 <xs:complexType>
262 <xs:sequence>
263 <xs:element name="parameters">
264 <xs:complexType>
265 <xs:sequence>
266 <xs:group ref="ns1:param-altid"/>
267 <xs:group ref="ns1:param-pid"/>
268 <xs:group ref="ns1:param-pref"/>
269 <xs:group ref="ns1:param-mediatype"/>
270 </xs:sequence>
271 </xs:complexType>
272 </xs:element>
273 <xs:element ref="ns1:uri"/>
274 </xs:sequence>
275 </xs:complexType>
276 </xs:element>
277 <!-- 6.1.4 -->
278 <xs:element name="kind">
279 <xs:complexType>
280 <xs:sequence>
281 <xs:element minOccurs="0" maxOccurs="unbounded" name="text">
282 <xs:simpleType>
283 <xs:union memberTypes="ns1:x-name ns1:iana-token">
284 <xs:simpleType>
285 <xs:restriction base="xs:token">
286 <xs:enumeration value="individual"/>
287 </xs:restriction>
288 </xs:simpleType>
289 <xs:simpleType>
290 <xs:restriction base="xs:token">
291 <xs:enumeration value="group"/>
292 </xs:restriction>
293 </xs:simpleType>
294 <xs:simpleType>
295 <xs:restriction base="xs:token">
296 <xs:enumeration value="org"/>
297 </xs:restriction>
298 </xs:simpleType>
299 <xs:simpleType>
300 <xs:restriction base="xs:token">
301 <xs:enumeration value="location"/>
302 </xs:restriction>
303 </xs:simpleType>
304 </xs:union>
305 </xs:simpleType>
306 </xs:element>
307 </xs:sequence>
308 </xs:complexType>
309 </xs:element>
310 <!-- 6.2.1 -->
311 <xs:element name="fn">
312 <xs:complexType>
313 <xs:sequence>
314 <xs:element minOccurs="0" name="parameters">
315 <xs:complexType>
316 <xs:sequence>
317 <xs:group ref="ns1:param-language"/>
318 <xs:group ref="ns1:param-altid"/>
319 <xs:group ref="ns1:param-pid"/>
320 <xs:group ref="ns1:param-pref"/>
321 <xs:group ref="ns1:param-type"/>
322 </xs:sequence>
323 </xs:complexType>
324 </xs:element>
325 <xs:element ref="ns1:text"/>
326 </xs:sequence>
327 </xs:complexType>
328 </xs:element>
329 <!-- 6.2.2 -->
330 <xs:element name="n">
331 <xs:complexType>
332 <xs:sequence>
333 <xs:element minOccurs="0" name="parameters">
334 <xs:complexType>
335 <xs:sequence>
336 <xs:group ref="ns1:param-language"/>
337 <xs:group ref="ns1:param-sort-as"/>
338 <xs:group ref="ns1:param-altid"/>
339 </xs:sequence>
340 </xs:complexType>
341 </xs:element>
342 <xs:element maxOccurs="unbounded" ref="ns1:surname"/>
343 <xs:element maxOccurs="unbounded" ref="ns1:given"/>
344 <xs:element maxOccurs="unbounded" ref="ns1:additional"/>
345 <xs:element maxOccurs="unbounded" ref="ns1:prefix"/>
346 <xs:element maxOccurs="unbounded" ref="ns1:suffix"/>
347 </xs:sequence>
348 </xs:complexType>
349 </xs:element>
350 <xs:element name="surname" type="xs:string"/>
351 <xs:element name="given" type="xs:string"/>
352 <xs:element name="additional" type="xs:string"/>
353 <xs:element name="prefix" type="xs:string"/>
354 <xs:element name="suffix" type="xs:string"/>
355 <!-- 6.2.3 -->
356 <xs:element name="nickname">
357 <xs:complexType>
358 <xs:sequence>
359 <xs:element minOccurs="0" name="parameters">
360 <xs:complexType>
361 <xs:sequence>
362 <xs:group ref="ns1:param-language"/>
363 <xs:group ref="ns1:param-altid"/>
364 <xs:group ref="ns1:param-pid"/>
365 <xs:group ref="ns1:param-pref"/>
366 <xs:group ref="ns1:param-type"/>
367 </xs:sequence>
368 </xs:complexType>
369 </xs:element>
370 <xs:group ref="ns1:value-text-list"/>
371 </xs:sequence>
372 </xs:complexType>
373 </xs:element>
374 <!-- 6.2.4 -->
375 <xs:element name="photo">
376 <xs:complexType>
377 <xs:sequence>
378 <xs:element minOccurs="0" name="parameters">
379 <xs:complexType>
380 <xs:sequence>
381 <xs:group ref="ns1:param-altid"/>
382 <xs:group ref="ns1:param-pid"/>
383 <xs:group ref="ns1:param-pref"/>
384 <xs:group ref="ns1:param-type"/>
385 <xs:group ref="ns1:param-mediatype"/>
386 </xs:sequence>
387 </xs:complexType>
388 </xs:element>
389 <xs:element ref="ns1:uri"/>
390 </xs:sequence>
391 </xs:complexType>
392 </xs:element>
393 <!-- 6.2.5 -->
394 <xs:element name="bday">
395 <xs:complexType>
396 <xs:sequence>
397 <xs:element minOccurs="0" name="parameters">
398 <xs:complexType>
399 <xs:sequence>
400 <xs:group ref="ns1:param-altid"/>
401 <xs:group ref="ns1:param-calscale"/>
402 </xs:sequence>
403 </xs:complexType>
404 </xs:element>
405 <xs:choice>
406 <xs:element ref="ns1:value-date-and-or-time"/>
407 <xs:element ref="ns1:text"/>
408 </xs:choice>
409 </xs:sequence>
410 </xs:complexType>
411 </xs:element>
412 <!-- 6.2.6 -->
413 <xs:element name="anniversary">
414 <xs:complexType>
415 <xs:sequence>
416 <xs:element minOccurs="0" name="parameters">
417 <xs:complexType>
418 <xs:sequence>
419 <xs:group ref="ns1:param-altid"/>
420 <xs:group ref="ns1:param-calscale"/>
421 </xs:sequence>
422 </xs:complexType>
423 </xs:element>
424 <xs:choice>
425 <xs:element ref="ns1:value-date-and-or-time"/>
426 <xs:element ref="ns1:text"/>
427 </xs:choice>
428 </xs:sequence>
429 </xs:complexType>
430 </xs:element>
431 <!-- 6.2.7 -->
432 <xs:element name="gender">
433 <xs:complexType>
434 <xs:sequence>
435 <xs:element ref="ns1:sex"/>
436 <xs:element minOccurs="0" ref="ns1:identity"/>
437 </xs:sequence>
438 </xs:complexType>
439 </xs:element>
440 <xs:element name="sex">
441 <xs:simpleType>
442 <xs:restriction base="xs:token">
443 <xs:enumeration value=""/>
444 <xs:enumeration value="M"/>
445 <xs:enumeration value="F"/>
446 <xs:enumeration value="O"/>
447 <xs:enumeration value="N"/>
448 <xs:enumeration value="U"/>
449 </xs:restriction>
450 </xs:simpleType>
451 </xs:element>
452 <xs:element name="identity" type="xs:string"/>
453 <!-- 6.3.1 -->
454 <xs:group name="param-label">
455 <xs:sequence>
456 <xs:element minOccurs="0" ref="ns1:label"/>
457 </xs:sequence>
458 </xs:group>
459 <xs:element name="label">
460 <xs:complexType>
461 <xs:sequence>
462 <xs:element ref="ns1:text"/>
463 </xs:sequence>
464 </xs:complexType>
465 </xs:element>
466 <xs:element name="adr">
467 <xs:complexType>
468 <xs:sequence>
469 <xs:element minOccurs="0" name="parameters">
470 <xs:complexType>
471 <xs:sequence>
472 <xs:group ref="ns1:param-language"/>
473 <xs:group ref="ns1:param-altid"/>
474 <xs:group ref="ns1:param-pid"/>
475 <xs:group ref="ns1:param-pref"/>
476 <xs:group ref="ns1:param-type"/>
477 <xs:group ref="ns1:param-geo"/>
478 <xs:group ref="ns1:param-tz"/>
479 <xs:group ref="ns1:param-label"/>
480 </xs:sequence>
481 </xs:complexType>
482 </xs:element>
483 <xs:element maxOccurs="unbounded" ref="ns1:pobox"/>
484 <xs:element maxOccurs="unbounded" ref="ns1:ext"/>
485 <xs:element maxOccurs="unbounded" ref="ns1:street"/>
486 <xs:element maxOccurs="unbounded" ref="ns1:locality"/>
487 <xs:element maxOccurs="unbounded" ref="ns1:region"/>
488 <xs:element maxOccurs="unbounded" ref="ns1:code"/>
489 <xs:element maxOccurs="unbounded" ref="ns1:country"/>
490 </xs:sequence>
491 </xs:complexType>
492 </xs:element>
493 <xs:element name="pobox" type="xs:string"/>
494 <xs:element name="ext" type="xs:string"/>
495 <xs:element name="street" type="xs:string"/>
496 <xs:element name="locality" type="xs:string"/>
497 <xs:element name="region" type="xs:string"/>
498 <xs:element name="code" type="xs:string"/>
499 <xs:element name="country" type="xs:string"/>
500 <!-- 6.4.1 -->
501 <xs:element name="tel">
502 <xs:complexType>
503 <xs:sequence>
504 <xs:element minOccurs="0" name="parameters">
505 <xs:complexType>
506 <xs:sequence>
507 <xs:group ref="ns1:param-altid"/>
508 <xs:group ref="ns1:param-pid"/>
509 <xs:group ref="ns1:param-pref"/>
510 <xs:element minOccurs="0" name="type">
511 <xs:complexType>
512 <xs:sequence>
513 <xs:element maxOccurs="unbounded" name="text">
514 <xs:simpleType>
515 <xs:restriction base="xs:token">
516 <xs:enumeration value="work"/>
517 <xs:enumeration value="home"/>
518 <xs:enumeration value="text"/>
519 <xs:enumeration value="voice"/>
520 <xs:enumeration value="fax"/>
521 <xs:enumeration value="cell"/>
522 <xs:enumeration value="video"/>
523 <xs:enumeration value="pager"/>
524 <xs:enumeration value="textphone"/>
525 </xs:restriction>
526 </xs:simpleType>
527 </xs:element>
528 </xs:sequence>
529 </xs:complexType>
530 </xs:element>
531 <xs:group ref="ns1:param-mediatype"/>
532 </xs:sequence>
533 </xs:complexType>
534 </xs:element>
535 <xs:choice>
536 <xs:element ref="ns1:text"/>
537 <xs:element ref="ns1:uri"/>
538 </xs:choice>
539 </xs:sequence>
540 </xs:complexType>
541 </xs:element>
542 <!-- 6.4.2 -->
543 <xs:element name="email">
544 <xs:complexType>
545 <xs:sequence>
546 <xs:element minOccurs="0" name="parameters">
547 <xs:complexType>
548 <xs:sequence>
549 <xs:group ref="ns1:param-altid"/>
550 <xs:group ref="ns1:param-pid"/>
551 <xs:group ref="ns1:param-pref"/>
552 <xs:group ref="ns1:param-type"/>
553 </xs:sequence>
554 </xs:complexType>
555 </xs:element>
556 <xs:element ref="ns1:text"/>
557 </xs:sequence>
558 </xs:complexType>
559 </xs:element>
560 <!-- 6.4.3 -->
561 <xs:element name="impp">
562 <xs:complexType>
563 <xs:sequence>
564 <xs:element minOccurs="0" name="parameters">
565 <xs:complexType>
566 <xs:sequence>
567 <xs:group ref="ns1:param-altid"/>
568 <xs:group ref="ns1:param-pid"/>
569 <xs:group ref="ns1:param-pref"/>
570 <xs:group ref="ns1:param-type"/>
571 <xs:group ref="ns1:param-mediatype"/>
572 </xs:sequence>
573 </xs:complexType>
574 </xs:element>
575 <xs:element ref="ns1:uri"/>
576 </xs:sequence>
577 </xs:complexType>
578 </xs:element>
579 <!-- 6.4.4 -->
580 <xs:element name="lang">
581 <xs:complexType>
582 <xs:sequence>
583 <xs:element minOccurs="0" name="parameters">
584 <xs:complexType>
585 <xs:sequence>
586 <xs:group ref="ns1:param-altid"/>
587 <xs:group ref="ns1:param-pid"/>
588 <xs:group ref="ns1:param-pref"/>
589 <xs:group ref="ns1:param-type"/>
590 </xs:sequence>
591 </xs:complexType>
592 </xs:element>
593 <xs:element ref="ns1:language-tag"/>
594 </xs:sequence>
595 </xs:complexType>
596 </xs:element>
597 <!-- 6.5.1 -->
598 <xs:group name="property-tz">
599 <xs:sequence>
600 <xs:element name="tz">
601 <xs:complexType>
602 <xs:sequence>
603 <xs:element minOccurs="0" name="parameters">
604 <xs:complexType>
605 <xs:sequence>
606 <xs:group ref="ns1:param-altid"/>
607 <xs:group ref="ns1:param-pid"/>
608 <xs:group ref="ns1:param-pref"/>
609 <xs:group ref="ns1:param-type"/>
610 <xs:group ref="ns1:param-mediatype"/>
611 </xs:sequence>
612 </xs:complexType>
613 </xs:element>
614 <xs:choice>
615 <xs:element ref="ns1:text"/>
616 <xs:element ref="ns1:uri"/>
617 <xs:element ref="ns1:utc-offset"/>
618 </xs:choice>
619 </xs:sequence>
620 </xs:complexType>
621 </xs:element>
622 </xs:sequence>
623 </xs:group>
624 <!-- 6.5.2 -->
625 <xs:group name="property-geo">
626 <xs:sequence>
627 <xs:element name="geo">
628 <xs:complexType>
629 <xs:sequence>
630 <xs:element minOccurs="0" name="parameters">
631 <xs:complexType>
632 <xs:sequence>
633 <xs:group ref="ns1:param-altid"/>
634 <xs:group ref="ns1:param-pid"/>
635 <xs:group ref="ns1:param-pref"/>
636 <xs:group ref="ns1:param-type"/>
637 <xs:group ref="ns1:param-mediatype"/>
638 </xs:sequence>
639 </xs:complexType>
640 </xs:element>
641 <xs:element ref="ns1:uri"/>
642 </xs:sequence>
643 </xs:complexType>
644 </xs:element>
645 </xs:sequence>
646 </xs:group>
647 <!-- 6.6.1 -->
648 <xs:element name="title">
649 <xs:complexType>
650 <xs:sequence>
651 <xs:element minOccurs="0" name="parameters">
652 <xs:complexType>
653 <xs:sequence>
654 <xs:group ref="ns1:param-language"/>
655 <xs:group ref="ns1:param-altid"/>
656 <xs:group ref="ns1:param-pid"/>
657 <xs:group ref="ns1:param-pref"/>
658 <xs:group ref="ns1:param-type"/>
659 </xs:sequence>
660 </xs:complexType>
661 </xs:element>
662 <xs:element ref="ns1:text"/>
663 </xs:sequence>
664 </xs:complexType>
665 </xs:element>
666 <!-- 6.6.2 -->
667 <xs:element name="role">
668 <xs:complexType>
669 <xs:sequence>
670 <xs:element minOccurs="0" name="parameters">
671 <xs:complexType>
672 <xs:sequence>
673 <xs:group ref="ns1:param-language"/>
674 <xs:group ref="ns1:param-altid"/>
675 <xs:group ref="ns1:param-pid"/>
676 <xs:group ref="ns1:param-pref"/>
677 <xs:group ref="ns1:param-type"/>
678 </xs:sequence>
679 </xs:complexType>
680 </xs:element>
681 <xs:element ref="ns1:text"/>
682 </xs:sequence>
683 </xs:complexType>
684 </xs:element>
685 <!-- 6.6.3 -->
686 <xs:element name="logo">
687 <xs:complexType>
688 <xs:sequence>
689 <xs:element minOccurs="0" name="parameters">
690 <xs:complexType>
691 <xs:sequence>
692 <xs:group ref="ns1:param-language"/>
693 <xs:group ref="ns1:param-altid"/>
694 <xs:group ref="ns1:param-pid"/>
695 <xs:group ref="ns1:param-pref"/>
696 <xs:group ref="ns1:param-type"/>
697 <xs:group ref="ns1:param-mediatype"/>
698 </xs:sequence>
699 </xs:complexType>
700 </xs:element>
701 <xs:element ref="ns1:uri"/>
702 </xs:sequence>
703 </xs:complexType>
704 </xs:element>
705 <!-- 6.6.4 -->
706 <xs:element name="org">
707 <xs:complexType>
708 <xs:sequence>
709 <xs:element minOccurs="0" name="parameters">
710 <xs:complexType>
711 <xs:sequence>
712 <xs:group ref="ns1:param-language"/>
713 <xs:group ref="ns1:param-altid"/>
714 <xs:group ref="ns1:param-pid"/>
715 <xs:group ref="ns1:param-pref"/>
716 <xs:group ref="ns1:param-type"/>
717 <xs:group ref="ns1:param-sort-as"/>
718 </xs:sequence>
719 </xs:complexType>
720 </xs:element>
721 <xs:group ref="ns1:value-text-list"/>
722 </xs:sequence>
723 </xs:complexType>
724 </xs:element>
725 <!-- 6.6.5 -->
726 <xs:element name="member">
727 <xs:complexType>
728 <xs:sequence>
729 <xs:element minOccurs="0" name="parameters">
730 <xs:complexType>
731 <xs:sequence>
732 <xs:group ref="ns1:param-altid"/>
733 <xs:group ref="ns1:param-pid"/>
734 <xs:group ref="ns1:param-pref"/>
735 <xs:group ref="ns1:param-mediatype"/>
736 </xs:sequence>
737 </xs:complexType>
738 </xs:element>
739 <xs:element ref="ns1:uri"/>
740 </xs:sequence>
741 </xs:complexType>
742 </xs:element>
743 <!-- 6.6.6 -->
744 <xs:element name="related">
745 <xs:complexType>
746 <xs:sequence>
747 <xs:element minOccurs="0" name="parameters">
748 <xs:complexType>
749 <xs:sequence>
750 <xs:group ref="ns1:param-altid"/>
751 <xs:group ref="ns1:param-pid"/>
752 <xs:group ref="ns1:param-pref"/>
753 <xs:element minOccurs="0" name="type">
754 <xs:complexType>
755 <xs:sequence>
756 <xs:element maxOccurs="unbounded" name="text">
757 <xs:simpleType>
758 <xs:restriction base="xs:token">
759 <xs:enumeration value="work"/>
760 <xs:enumeration value="home"/>
761 <xs:enumeration value="contact"/>
762 <xs:enumeration value="acquaintance"/>
763 <xs:enumeration value="friend"/>
764 <xs:enumeration value="met"/>
765 <xs:enumeration value="co-worker"/>
766 <xs:enumeration value="colleague"/>
767 <xs:enumeration value="co-resident"/>
768 <xs:enumeration value="neighbor"/>
769 <xs:enumeration value="child"/>
770 <xs:enumeration value="parent"/>
771 <xs:enumeration value="sibling"/>
772 <xs:enumeration value="spouse"/>
773 <xs:enumeration value="kin"/>
774 <xs:enumeration value="muse"/>
775 <xs:enumeration value="crush"/>
776 <xs:enumeration value="date"/>
777 <xs:enumeration value="sweetheart"/>
778 <xs:enumeration value="me"/>
779 <xs:enumeration value="agent"/>
780 <xs:enumeration value="emergency"/>
781 </xs:restriction>
782 </xs:simpleType>
783 </xs:element>
784 </xs:sequence>
785 </xs:complexType>
786 </xs:element>
787 <xs:group ref="ns1:param-mediatype"/>
788 </xs:sequence>
789 </xs:complexType>
790 </xs:element>
791 <xs:choice>
792 <xs:element ref="ns1:uri"/>
793 <xs:element ref="ns1:text"/>
794 </xs:choice>
795 </xs:sequence>
796 </xs:complexType>
797 </xs:element>
798 <!-- 6.7.1 -->
799 <xs:element name="categories">
800 <xs:complexType>
801 <xs:sequence>
802 <xs:element minOccurs="0" name="parameters">
803 <xs:complexType>
804 <xs:sequence>
805 <xs:group ref="ns1:param-altid"/>
806 <xs:group ref="ns1:param-pid"/>
807 <xs:group ref="ns1:param-pref"/>
808 <xs:group ref="ns1:param-type"/>
809 </xs:sequence>
810 </xs:complexType>
811 </xs:element>
812 <xs:group ref="ns1:value-text-list"/>
813 </xs:sequence>
814 </xs:complexType>
815 </xs:element>
816 <!-- 6.7.2 -->
817 <xs:element name="note">
818 <xs:complexType>
819 <xs:sequence>
820 <xs:element minOccurs="0" name="parameters">
821 <xs:complexType>
822 <xs:sequence>
823 <xs:group ref="ns1:param-language"/>
824 <xs:group ref="ns1:param-altid"/>
825 <xs:group ref="ns1:param-pid"/>
826 <xs:group ref="ns1:param-pref"/>
827 <xs:group ref="ns1:param-type"/>
828 </xs:sequence>
829 </xs:complexType>
830 </xs:element>
831 <xs:element ref="ns1:text"/>
832 </xs:sequence>
833 </xs:complexType>
834 </xs:element>
835 <!-- 6.7.3 -->
836 <xs:element name="prodid">
837 <xs:complexType>
838 <xs:sequence>
839 <xs:element ref="ns1:text"/>
840 </xs:sequence>
841 </xs:complexType>
842 </xs:element>
843 <!-- 6.7.4 -->
844 <xs:element name="rev" type="ns1:value-timestamp"/>
845 <!-- 6.7.5 -->
846 <xs:element name="sound">
847 <xs:complexType>
848 <xs:sequence>
849 <xs:element minOccurs="0" name="parameters">
850 <xs:complexType>
851 <xs:sequence>
852 <xs:group ref="ns1:param-language"/>
853 <xs:group ref="ns1:param-altid"/>
854 <xs:group ref="ns1:param-pid"/>
855 <xs:group ref="ns1:param-pref"/>
856 <xs:group ref="ns1:param-type"/>
857 <xs:group ref="ns1:param-mediatype"/>
858 </xs:sequence>
859 </xs:complexType>
860 </xs:element>
861 <xs:element ref="ns1:uri"/>
862 </xs:sequence>
863 </xs:complexType>
864 </xs:element>
865 <!-- 6.7.6 -->
866 <xs:element name="uid">
867 <xs:complexType>
868 <xs:sequence>
869 <xs:element ref="ns1:uri"/>
870 </xs:sequence>
871 </xs:complexType>
872 </xs:element>
873 <!-- 6.7.7 -->
874 <xs:element name="clientpidmap">
875 <xs:complexType>
876 <xs:sequence>
877 <xs:element ref="ns1:sourceid"/>
878 <xs:element ref="ns1:uri"/>
879 </xs:sequence>
880 </xs:complexType>
881 </xs:element>
882 <xs:element name="sourceid" type="xs:positiveInteger"/>
883 <!-- 6.7.8 -->
884 <xs:element name="url">
885 <xs:complexType>
886 <xs:sequence>
887 <xs:element minOccurs="0" name="parameters">
888 <xs:complexType>
889 <xs:sequence>
890 <xs:group ref="ns1:param-altid"/>
891 <xs:group ref="ns1:param-pid"/>
892 <xs:group ref="ns1:param-pref"/>
893 <xs:group ref="ns1:param-type"/>
894 <xs:group ref="ns1:param-mediatype"/>
895 </xs:sequence>
896 </xs:complexType>
897 </xs:element>
898 <xs:element ref="ns1:uri"/>
899 </xs:sequence>
900 </xs:complexType>
901 </xs:element>
902 <!-- 6.8.1 -->
903 <xs:element name="key">
904 <xs:complexType>
905 <xs:sequence>
906 <xs:element minOccurs="0" name="parameters">
907 <xs:complexType>
908 <xs:sequence>
909 <xs:group ref="ns1:param-altid"/>
910 <xs:group ref="ns1:param-pid"/>
911 <xs:group ref="ns1:param-pref"/>
912 <xs:group ref="ns1:param-type"/>
913 <xs:group ref="ns1:param-mediatype"/>
914 </xs:sequence>
915 </xs:complexType>
916 </xs:element>
917 <xs:choice>
918 <xs:element ref="ns1:uri"/>
919 <xs:element ref="ns1:text"/>
920 </xs:choice>
921 </xs:sequence>
922 </xs:complexType>
923 </xs:element>
924 <!-- 6.9.1 -->
925 <xs:element name="fburl">
926 <xs:complexType>
927 <xs:sequence>
928 <xs:element minOccurs="0" name="parameters">
929 <xs:complexType>
930 <xs:sequence>
931 <xs:group ref="ns1:param-altid"/>
932 <xs:group ref="ns1:param-pid"/>
933 <xs:group ref="ns1:param-pref"/>
934 <xs:group ref="ns1:param-type"/>
935 <xs:group ref="ns1:param-mediatype"/>
936 </xs:sequence>
937 </xs:complexType>
938 </xs:element>
939 <xs:element ref="ns1:uri"/>
940 </xs:sequence>
941 </xs:complexType>
942 </xs:element>
943 <!-- 6.9.2 -->
944 <xs:element name="caladruri">
945 <xs:complexType>
946 <xs:sequence>
947 <xs:element minOccurs="0" name="parameters">
948 <xs:complexType>
949 <xs:sequence>
950 <xs:group ref="ns1:param-altid"/>
951 <xs:group ref="ns1:param-pid"/>
952 <xs:group ref="ns1:param-pref"/>
953 <xs:group ref="ns1:param-type"/>
954 <xs:group ref="ns1:param-mediatype"/>
955 </xs:sequence>
956 </xs:complexType>
957 </xs:element>
958 <xs:element ref="ns1:uri"/>
959 </xs:sequence>
960 </xs:complexType>
961 </xs:element>
962 <!-- 6.9.3 -->
963 <xs:element name="caluri">
964 <xs:complexType>
965 <xs:sequence>
966 <xs:element minOccurs="0" name="parameters">
967 <xs:complexType>
968 <xs:sequence>
969 <xs:group ref="ns1:param-altid"/>
970 <xs:group ref="ns1:param-pid"/>
971 <xs:group ref="ns1:param-pref"/>
972 <xs:group ref="ns1:param-type"/>
973 <xs:group ref="ns1:param-mediatype"/>
974 </xs:sequence>
975 </xs:complexType>
976 </xs:element>
977 <xs:element ref="ns1:uri"/>
978 </xs:sequence>
979 </xs:complexType>
980 </xs:element>
981 <!-- Top-level grammar -->
982 <xs:group name="property">
983 <xs:choice>
984 <xs:element ref="ns1:adr"/>
985 <xs:element ref="ns1:anniversary"/>
986 <xs:element ref="ns1:bday"/>
987 <xs:element ref="ns1:caladruri"/>
988 <xs:element ref="ns1:caluri"/>
989 <xs:element ref="ns1:categories"/>
990 <xs:element ref="ns1:clientpidmap"/>
991 <xs:element ref="ns1:email"/>
992 <xs:element ref="ns1:fburl"/>
993 <xs:element ref="ns1:fn"/>
994 <xs:group ref="ns1:property-geo"/>
995 <xs:element ref="ns1:impp"/>
996 <xs:element ref="ns1:key"/>
997 <xs:element ref="ns1:kind"/>
998 <xs:element ref="ns1:lang"/>
999 <xs:element ref="ns1:logo"/>
1000 <xs:element ref="ns1:member"/>
1001 <xs:element ref="ns1:n"/>
1002 <xs:element ref="ns1:nickname"/>
1003 <xs:element ref="ns1:note"/>
1004 <xs:element ref="ns1:org"/>
1005 <xs:element ref="ns1:photo"/>
1006 <xs:element ref="ns1:prodid"/>
1007 <xs:element ref="ns1:related"/>
1008 <xs:element ref="ns1:rev"/>
1009 <xs:element ref="ns1:role"/>
1010 <xs:element ref="ns1:gender"/>
1011 <xs:element ref="ns1:sound"/>
1012 <xs:element ref="ns1:source"/>
1013 <xs:element ref="ns1:tel"/>
1014 <xs:element ref="ns1:title"/>
1015 <xs:group ref="ns1:property-tz"/>
1016 <xs:element ref="ns1:uid"/>
1017 <xs:element ref="ns1:url"/>
1018 </xs:choice>
1019 </xs:group>
1020 <xs:element name="vcards">
1021 <xs:complexType>
1022 <xs:sequence>
1023 <xs:element maxOccurs="unbounded" ref="ns1:vcard"/>
1024 </xs:sequence>
1025 </xs:complexType>
1026 </xs:element>
1027 <xs:element name="vcard">
1028 <xs:complexType>
1029 <xs:choice maxOccurs="unbounded">
1030 <xs:group ref="ns1:property"/>
1031 <xs:element ref="ns1:group"/>
1032 </xs:choice>
1033 </xs:complexType>
1034 </xs:element>
1035 <xs:element name="group">
1036 <xs:complexType>
1037 <xs:group minOccurs="0" maxOccurs="unbounded" ref="ns1:property"/>
1038 <xs:attribute name="name" use="required"/>
1039 </xs:complexType>
1040 </xs:element>
1041 </xs:schema>