/alps/pcitool

To get this branch, use:
bzr branch http://suren.me/webbzr/alps/pcitool

« back to all changes in this revision

Viewing changes to xml/model.xsd

  • Committer: Suren A. Chilingaryan
  • Date: 2015-09-10 03:08:04 UTC
  • mfrom: (277.2.17 test_xml)
  • Revision ID: csa@suren.me-20150910030804-djti3wcmk4yubhp7
Initial integration of XML support

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0" encoding="ISO-8859-1"?>
 
2
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
3
    
 
4
    <xsd:element name="model">
 
5
        <xsd:complexType>
 
6
            <xsd:sequence>
 
7
                <xsd:element name="banks" type="banks_type"/>
 
8
                <xsd:element name="views" type="views_type" minOccurs="0" maxOccurs="1"/>
 
9
            </xsd:sequence>
 
10
        </xsd:complexType>
 
11
        <xsd:key name="Registerkey">
 
12
            <xsd:selector xpath="views/view/name"/>
 
13
            <xsd:field xpath="."/>
 
14
        </xsd:key>
 
15
        <xsd:keyref refer="Registerkey" name="RegisterkeyRef">
 
16
            <xsd:selector xpath="banks/bank/registers/register/views/view"/>
 
17
            <xsd:field xpath="."/>
 
18
        </xsd:keyref>
 
19
        <xsd:key name="Registerbitskey">
 
20
            <xsd:selector xpath="views/view/name"/>
 
21
            <xsd:field xpath="."/>
 
22
        </xsd:key>
 
23
        <xsd:keyref refer="Registerbitskey" name="RegisterbitskeyRef">
 
24
            <xsd:selector xpath="banks/bank/registers/register/registers_bits/register_bits/views/view"/>
 
25
            <xsd:field xpath="."/>
 
26
        </xsd:keyref>
 
27
    </xsd:element>
 
28
    
 
29
    
 
30
        <xsd:complexType name="views_type">
 
31
            <xsd:sequence>
 
32
                <xsd:element name="view" type="view_type" maxOccurs="unbounded"/>
 
33
            </xsd:sequence>
 
34
        </xsd:complexType>
 
35
    
 
36
    
 
37
    <xsd:complexType name="banks_type">
 
38
        <xsd:sequence>
 
39
            <xsd:element name="bank" type="banktype" minOccurs="1" maxOccurs="12"/>
 
40
        </xsd:sequence>
 
41
    </xsd:complexType>
 
42
    
 
43
    <xsd:complexType name="banktype">
 
44
        <xsd:sequence>
 
45
            <xsd:element name="bank_description" type="bank_description_t"/>
 
46
            <xsd:element name="registers" type="registerstype" minOccurs="0" maxOccurs="1"/>
 
47
        </xsd:sequence>
 
48
    </xsd:complexType>
 
49
    
 
50
    <xsd:complexType name="bank_description_t">
 
51
        <xsd:sequence>
 
52
            <xsd:element name="bar" type="bar_type"/>
 
53
            <xsd:element name="size" type="hexa_and_integer64_t"/>
 
54
            <xsd:element name="protocol" type="xsd:string"/>
 
55
            <xsd:element name="read_address" type="hex64_t"/>
 
56
            <xsd:element name="write_address" type="hex64_t"/>
 
57
            <xsd:element name="word_size" type="uint8_t"/>
 
58
            <xsd:element name="endianess" type="endianess_type"/>
 
59
            <xsd:element name="format" type="xsd:string"/>
 
60
            <xsd:element name="name" type="xsd:string"/>
 
61
            <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
 
62
        </xsd:sequence>
 
63
    </xsd:complexType>
 
64
    
 
65
    
 
66
    <xsd:complexType name="registerstype">
 
67
        <xsd:sequence>
 
68
            <xsd:element name="register" type="register_type" minOccurs="0" maxOccurs="256"/>
 
69
        </xsd:sequence>
 
70
    </xsd:complexType>
 
71
    
 
72
    <xsd:complexType name="register_type">
 
73
        <xsd:sequence>
 
74
            <xsd:element name="address" type="hexa_and_integer32_t"/>
 
75
            <xsd:element name="offset" type="uint8_t"/>
 
76
            <xsd:element name="size" type="uint8_t"/>
 
77
            <xsd:element name="default" type="hexa_and_integer32_t"/>
 
78
            <xsd:element name="rwmask" type="rwmask_type"/>
 
79
            <xsd:element name="mode" type="pcilib_register_mode_t"/>
 
80
            <xsd:element name="name" type="xsd:string"/>
 
81
            <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
 
82
            <xsd:element name="views" type="reg_to_views_type" minOccurs="0" maxOccurs="1"/>
 
83
            <xsd:element name="registers_bits" type="registers_bits_type" minOccurs="0" maxOccurs="1"/>
 
84
            <xsd:element name="value_min" type="hexa_and_integer32_t" minOccurs="0" maxOccurs="1"/>
 
85
            <xsd:element name="value_max" type="hexa_and_integer32_t" minOccurs="0" maxOccurs="1"/>
 
86
          </xsd:sequence>
 
87
    </xsd:complexType>
 
88
    
 
89
    <xsd:complexType name="registers_bits_type">
 
90
        <xsd:sequence>
 
91
            <xsd:element name="register_bits" type="register_bits_type" minOccurs="1" maxOccurs="32"/>
 
92
        </xsd:sequence>
 
93
    </xsd:complexType>
 
94
    
 
95
    <xsd:complexType name="reg_to_views_type">
 
96
        <xsd:sequence>
 
97
            <xsd:element name="view" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/>
 
98
        </xsd:sequence>
 
99
    </xsd:complexType>
 
100
    
 
101
    <xsd:complexType name="register_bits_type">
 
102
        <xsd:sequence>
 
103
            <xsd:element name="offset" type="uint8_t"/>
 
104
            <xsd:element name="size" type="uint8_t"/>
 
105
            <xsd:element name="mode" type="pcilib_register_mode_t"/>
 
106
            <xsd:element name="name" type="xsd:string"/>
 
107
            <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
 
108
            <xsd:element name="views" type="reg_to_views_type" minOccurs="0" maxOccurs="1"/>
 
109
        </xsd:sequence>
 
110
 
 
111
    </xsd:complexType>
 
112
    
 
113
    <xsd:simpleType name="uint8_t">
 
114
        <xsd:restriction base="xsd:integer">
 
115
            <xsd:minInclusive value="0"/>
 
116
            <xsd:maxInclusive value="255"/>
 
117
        </xsd:restriction>
 
118
    </xsd:simpleType>
 
119
    
 
120
    <xsd:simpleType name="size_t">
 
121
        <xsd:restriction base="xsd:integer">
 
122
            <xsd:minInclusive value="0"/>
 
123
            <xsd:maxInclusive value="18446744073709551615"/>
 
124
        </xsd:restriction>
 
125
    </xsd:simpleType>
 
126
    
 
127
    <xsd:simpleType name="uintptr_t">
 
128
        <xsd:restriction base="xsd:integer">
 
129
            <xsd:minInclusive value="0"/>
 
130
            <xsd:maxInclusive value="18446744073709551615"/>
 
131
        </xsd:restriction>
 
132
    </xsd:simpleType>
 
133
    
 
134
    <xsd:simpleType name="uint32_t">
 
135
        <xsd:restriction base="xsd:integer">
 
136
            <xsd:minInclusive value="0"/>
 
137
            <xsd:maxInclusive value="4294967295"/>
 
138
        </xsd:restriction>
 
139
    </xsd:simpleType>
 
140
    
 
141
    <xsd:simpleType name="pcilib_register_mode_t">
 
142
        <xsd:restriction base="xsd:string">
 
143
            <xsd:enumeration value="R"/>
 
144
            <xsd:enumeration value="W"/>
 
145
            <xsd:enumeration value="RW"/>
 
146
            <xsd:enumeration value="W1C"/>
 
147
            <xsd:enumeration value="RW1C"/>
 
148
        </xsd:restriction>
 
149
    </xsd:simpleType>
 
150
    
 
151
    <xsd:simpleType name="bank_adress_type">
 
152
        <xsd:restriction base="xsd:string">
 
153
            <xsd:enumeration value="bank 0"/>
 
154
            <xsd:enumeration value="bank 1"/>
 
155
            <xsd:enumeration value="bank 2"/>
 
156
            <xsd:enumeration value="bank 3"/>
 
157
            <xsd:enumeration value="DMA bank"/>
 
158
        </xsd:restriction>
 
159
    </xsd:simpleType>
 
160
    
 
161
    <xsd:simpleType name="endianess_type">
 
162
        <xsd:restriction base="xsd:string">
 
163
            <xsd:enumeration value="little"/>
 
164
            <xsd:enumeration value="big"/>
 
165
            <xsd:enumeration value="host"/>
 
166
        </xsd:restriction>
 
167
    </xsd:simpleType>
 
168
    
 
169
    <xsd:simpleType name="bar_type">
 
170
        <xsd:restriction base="xsd:integer">
 
171
            <xsd:enumeration value="0"/>
 
172
            <xsd:enumeration value="1"/>
 
173
        </xsd:restriction>
 
174
    </xsd:simpleType>
 
175
    
 
176
    <xsd:simpleType name="space_adress_type">
 
177
        <xsd:restriction base="xsd:string">
 
178
            <xsd:enumeration value="write adress"/>
 
179
            <xsd:enumeration value="read adress"/>
 
180
            <xsd:enumeration value="space adress"/>
 
181
            <xsd:enumeration value="0"/>
 
182
        </xsd:restriction>
 
183
    </xsd:simpleType>
 
184
    
 
185
    <xsd:simpleType name="rwmask_type">
 
186
        <xsd:restriction base="xsd:string">
 
187
            <xsd:enumeration value="all"/>
 
188
            <xsd:enumeration value="0"/>
 
189
        </xsd:restriction>
 
190
    </xsd:simpleType>
 
191
    
 
192
    <xsd:simpleType name="hexa_and_integer32_t">
 
193
        <xsd:union memberTypes="uint32_t hex32_t"/>
 
194
    </xsd:simpleType>
 
195
    
 
196
    <xsd:simpleType name="hex32_t">
 
197
        <xsd:restriction base="xsd:string">
 
198
            <xsd:pattern value="0x([a-fA-F0-9]){0,8}"/>
 
199
        </xsd:restriction>
 
200
    </xsd:simpleType>
 
201
    
 
202
    <xsd:simpleType name="hexa_and_integer64_t">
 
203
        <xsd:union memberTypes="size_t hex64_t"/>
 
204
    </xsd:simpleType>
 
205
    
 
206
    <xsd:simpleType name="hex64_t">
 
207
        <xsd:restriction base="xsd:string">
 
208
            <xsd:pattern value="0x([a-fA-F0-9]){0,16}"/>
 
209
        </xsd:restriction>
 
210
    </xsd:simpleType>
 
211
    
 
212
    <xsd:complexType name="view_type">
 
213
        <xsd:sequence>
 
214
            <xsd:element name="name" type="xsd:ID"/>
 
215
            <xsd:element name="unit" type="xsd:string" minOccurs="0" maxOccurs="1"/>
 
216
            <xsd:element name="read_from_register" type="xsd:string" minOccurs="0" maxOccurs="1"/>
 
217
            <xsd:element name="write_to_register" type="xsd:string" minOccurs="0" maxOccurs="1"/>
 
218
            <xsd:element name="enum" type="enum_t" minOccurs="0" maxOccurs="unbounded"/>
 
219
            <xsd:element name="description" type="xsd:string"/>
 
220
        </xsd:sequence>
 
221
        <xsd:attribute name="type" type="viewtype_type" use="required"/>
 
222
    </xsd:complexType>
 
223
    
 
224
        <xsd:complexType name="enum_t">
 
225
                <xsd:simpleContent>
 
226
                        <xsd:extension base="xsd:string">
 
227
                                <xsd:attribute name="value" type="hexa_and_integer64_t" use="required"/>
 
228
                        <xsd:attribute name="min" type="hexa_and_integer64_t"/>
 
229
                        <xsd:attribute name="max" type="hexa_and_integer64_t"/>
 
230
                        </xsd:extension>
 
231
                </xsd:simpleContent>
 
232
        </xsd:complexType>
 
233
 
 
234
    <xsd:simpleType name="viewtype_type">
 
235
        <xsd:restriction base="xsd:string">
 
236
            <xsd:enumeration value="enum"/>
 
237
            <xsd:enumeration value="formula"/>
 
238
        </xsd:restriction>
 
239
    </xsd:simpleType>
 
240
    
 
241
</xsd:schema>