1" Author: Thomas Barthel
2" Last change: 2007 May 8
3let g:xmldata_xsd = {
4	\ 'schema': [
5		\ [ 'include', 'import', 'redefine', 'annotation', 'simpleType', 'complexType', 'element', 'attribute', 'attributeGroup', 'group', 'notation', 'annotation'],
6		\ { 'targetNamespace' : [], 'version' : [], 'xmlns' : [], 'finalDefault' : [], 'blockDefault' : [], 'id' : [], 'elementFormDefault' : [], 'attributeFormDefault' : [], 'xml:lang' : [] }],
7	\ 'redefine' : [
8		\ ['annotation', 'simpleType', 'complexType', 'attributeGroup', 'group'],
9		\ {'schemaLocation' : [], 'id' : []} ],
10	\ 'include' : [
11		\ ['annotation'],
12		\ {'namespace' : [], 'id' : []} ],
13	\ 'import' : [
14		\ ['annotation'],
15		\ {'namespace' : [], 'schemaLocation' : [], 'id' : []} ],
16	\ 'complexType' : [
17		\ ['annotation', 'simpleContent', 'complexContent', 'all', 'choice', 'sequence', 'group', 'attribute', 'attributeGroup', 'anyAttribute'],
18		\ {'name' : [], 'id' : [], 'abstract' : [], 'final' : [], 'block' : [], 'mixed' : []} ],
19	\ 'complexContent' : [
20		\ ['annotation', 'restriction', 'extension'],
21		\ {'mixed' : [], 'id' : [] } ],
22	\ 'simpleType' : [
23		\ ['annotation', 'restriction', 'list', 'union'],
24		\ {'name' : [], 'final' : [], 'id' : []} ],
25	\ 'simpleContent' : [
26		\ ['annotation', 'restriction', 'extension'],
27		\ {'id' : []} ],
28	\ 'element' : [
29		\ ['annotation', 'complexType', 'simpleType', 'unique', 'key', 'keyref'],
30		\ {'name' : [], 'id' : [], 'ref' : [], 'type' : [], 'minOccurs' : [], 'maxOccurs' : [], 'nillable' : [], 'substitutionGroup' : [], 'abstract' : [], 'final' : [], 'block' : [], 'default' : [], 'fixed' : [], 'form' : []} ],
31	\ 'attribute' : [
32		\ ['annotation', 'simpleType'],
33		\ {'name' : [], 'id' : [], 'ref' : [], 'type' : [], 'use' : [], 'default' : [], 'fixed' : [], 'form' : []} ],
34	\ 'group' : [
35		\ ['annotation', 'all', 'choice', 'sequence'],
36		\ {'name' : [], 'ref' : [], 'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
37	\ 'choice' : [
38		\ ['annotation', 'element', 'group', 'choice', 'sequence', 'any'],
39		\ {'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
40	\ 'sequence' : [
41		\ ['annotation', 'element', 'group', 'choice', 'sequence', 'any'],
42		\ {'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
43	\ 'all' : [
44		\ ['annotation', 'element'],
45		\ {'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
46	\ 'any' : [
47		\ ['annotation'],
48		\ {'namespace' : [], 'processContents' : [], 'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
49	\ 'unique' : [
50		\ ['annotation', 'selector', 'field'],
51		\ {'name' : [],  'id' : []} ],
52	\ 'key' : [
53		\ ['annotation', 'selector', 'field'],
54		\ {'name' : [],  'id' : []} ],
55	\ 'keyref' : [
56		\ ['annotation', 'selector', 'field'],
57		\ {'name' : [], 'refer' : [], 'id' : []} ],
58	\ 'selector' : [
59		\ ['annotation'],
60		\ {'xpath' : [],  'id' : []} ],
61	\ 'field' : [
62		\ ['annotation'],
63		\ {'xpath' : [],  'id' : []} ],
64	\ 'restriction' : [
65		\ ['annotation', 'simpleType', 'minExclusive', 'maxExclusive', 'minInclusive', 'maxInclusive', 'totalDigits', 'fractionDigits', 'length', 'minLength', 'maxLength', 'enumeration', 'whiteSpace', 'pattern'],
66		\ {'base' : [], 'id' : []} ],
67	\ 'minExclusive' : [
68		\ ['annotation'],
69		\ {'value' : [], 'id' : [], 'fixed' : []}],
70	\ 'maxExclusive' : [
71		\ ['annotation'],
72		\ {'value' : [], 'id' : [], 'fixed' : []}],
73	\ 'minInclusive' : [
74		\ ['annotation'],
75		\ {'value' : [], 'id' : [], 'fixed' : []}],
76	\ 'maxInclusive' : [
77		\ ['annotation'],
78		\ {'value' : [], 'id' : [], 'fixed' : []}],
79	\ 'totalDigits' : [
80	    \ ['annotation'],
81		\ {'value' : [], 'id' : [], 'fixed' : []}],
82	\ 'fractionDigits' : [
83		\ ['annotation'],
84		\ {'value' : [], 'id' : [], 'fixed' : []}],
85     \ 'length' : [
86     	\ ['annotation'],
87     	\ {'value' : [], 'id' : [], 'fixed' : []}],
88     \ 'minLength' : [
89     	\ ['annotation'],
90     	\ {'value' : [], 'id' : [], 'fixed' : []}],
91     \ 'maxLength' : [
92     	\ ['annotation'],
93     	\ {'value' : [], 'id' : [], 'fixed' : []}],
94     \ 'enumeration' : [
95     	\ ['annotation'],
96     	\ {'value' : [], 'id' : []}],
97     \ 'whiteSpace' : [
98     	\ ['annotation'],
99     	\ {'value' : [], 'id' : [], 'fixed' : []}],
100     \ 'pattern' : [
101     	\ ['annotation'],
102     	\ {'value' : [], 'id' : []}],
103     \ 'extension' : [
104     	\ ['annotation', 'all', 'choice', 'sequence', 'group', 'attribute', 'attributeGroup', 'anyAttribute'],
105		\ {'base' : [], 'id' : []} ],
106	 \ 'attributeGroup' : [
107	 	\ ['annotation', 'attribute', 'attributeGroup', 'anyAttribute'],
108	 	\ {'name' : [], 'id' : [], 'ref' : []} ],
109	 \ 'anyAttribute' : [
110	 	\ ['annotation'],
111	 	\ {'namespace' : [], 'processContents' : [], 'id' : []} ],
112	 \ 'list' : [
113		\ ['annotation', 'simpleType'],
114		\ {'itemType' : [], 'id' : []} ],
115	 \ 'union' : [
116	 	\ ['annotation', 'simpleType'],
117	 	\ {'id' : [], 'memberTypes' : []} ],
118	 \ 'notation' : [
119	 	\ ['annotation'],
120	 	\ {'name' : [], 'id' : [], 'public' : [], 'system' : []} ],
121	 \ 'annotation' : [
122	 	\ ['appinfo', 'documentation'],
123	 	\ {} ],
124	 \ 'appinfo' : [
125	 	\ [],
126	 	\ {'source' : [], 'id' : []} ],
127	 \ 'documentation' : [
128		\ [],
129		\ {'source' : [], 'id' : [], 'xml' : []} ]
130	\ }
131