67
66
<td align="left" valign="top" >
68
67
<code><span class="keyword">|</span></code></td>
69
68
<td align="left" valign="top" >
70
<code><span class="constructor">System</span> <span class="keyword">of</span> <code class="type">string</code></code></td>
74
<td align="left" valign="top" >
75
<code><span class="keyword">|</span></code></td>
76
<td align="left" valign="top" >
77
<code><span class="constructor">Public</span> <span class="keyword">of</span> <code class="type">(string * string)</code></code></td>
81
<td align="left" valign="top" >
82
<code><span class="keyword">|</span></code></td>
83
<td align="left" valign="top" >
84
<code><span class="constructor">Anonymous</span></code></td>
88
<td align="left" valign="top" >
89
<code><span class="keyword">|</span></code></td>
90
<td align="left" valign="top" >
91
<code><span class="constructor">Private</span> <span class="keyword">of</span> <code class="type"><a href="Pxp_core_types.S.html#TYPEprivate_id">private_id</a></code></code></td>
69
<code><span id="TYPEELText_id.System"><span class="constructor">System</span></span> <span class="keyword">of</span> <code class="type">string</code></code></td>
73
<td align="left" valign="top" >
74
<code><span class="keyword">|</span></code></td>
75
<td align="left" valign="top" >
76
<code><span id="TYPEELText_id.Public"><span class="constructor">Public</span></span> <span class="keyword">of</span> <code class="type">(string * string)</code></code></td>
80
<td align="left" valign="top" >
81
<code><span class="keyword">|</span></code></td>
82
<td align="left" valign="top" >
83
<code><span id="TYPEELText_id.Anonymous"><span class="constructor">Anonymous</span></span></code></td>
87
<td align="left" valign="top" >
88
<code><span class="keyword">|</span></code></td>
89
<td align="left" valign="top" >
90
<code><span id="TYPEELText_id.Private"><span class="constructor">Private</span></span> <span class="keyword">of</span> <code class="type"><a href="Pxp_core_types.S.html#TYPEprivate_id">private_id</a></code></code></td>
124
123
<td align="left" valign="top" >
125
124
<code> </code></td>
126
125
<td align="left" valign="top" >
127
<code>rid_private : <code class="type"><a href="Pxp_core_types.S.html#TYPEprivate_id">private_id</a> option</code>;</code></td>
131
<td align="left" valign="top" >
132
<code> </code></td>
133
<td align="left" valign="top" >
134
<code>rid_public : <code class="type">string option</code>;</code></td>
138
<td align="left" valign="top" >
139
<code> </code></td>
140
<td align="left" valign="top" >
141
<code>rid_system : <code class="type">string option</code>;</code></td>
145
<td align="left" valign="top" >
146
<code> </code></td>
147
<td align="left" valign="top" >
148
<code>rid_system_base : <code class="type">string option</code>;</code></td>
126
<code><span id="TYPEELTresolver_id.rid_private">rid_private</span> :<code class="type"><a href="Pxp_core_types.S.html#TYPEprivate_id">private_id</a> option</code>;</code></td>
130
<td align="left" valign="top" >
131
<code> </code></td>
132
<td align="left" valign="top" >
133
<code><span id="TYPEELTresolver_id.rid_public">rid_public</span> :<code class="type">string option</code>;</code></td>
137
<td align="left" valign="top" >
138
<code> </code></td>
139
<td align="left" valign="top" >
140
<code><span id="TYPEELTresolver_id.rid_system">rid_system</span> :<code class="type">string option</code>;</code></td>
144
<td align="left" valign="top" >
145
<code> </code></td>
146
<td align="left" valign="top" >
147
<code><span id="TYPEELTresolver_id.rid_system_base">rid_system_base</span> :<code class="type">string option</code>;</code></td>
172
171
<td align="left" valign="top" >
173
172
<code><span class="keyword">|</span></code></td>
174
173
<td align="left" valign="top" >
175
<code><span class="constructor">External</span> <span class="keyword">of</span> <code class="type"><a href="Pxp_core_types.S.html#TYPEext_id">ext_id</a></code></code></td>
174
<code><span id="TYPEELTdtd_id.External"><span class="constructor">External</span></span> <span class="keyword">of</span> <code class="type"><a href="Pxp_core_types.S.html#TYPEext_id">ext_id</a></code></code></td>
176
175
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >DTD is completely external</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
179
178
<td align="left" valign="top" >
180
179
<code><span class="keyword">|</span></code></td>
181
180
<td align="left" valign="top" >
182
<code><span class="constructor">Derived</span> <span class="keyword">of</span> <code class="type"><a href="Pxp_core_types.S.html#TYPEext_id">ext_id</a></code></code></td>
181
<code><span id="TYPEELTdtd_id.Derived"><span class="constructor">Derived</span></span> <span class="keyword">of</span> <code class="type"><a href="Pxp_core_types.S.html#TYPEext_id">ext_id</a></code></code></td>
183
182
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >DTD is derived from an external DTD</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
186
185
<td align="left" valign="top" >
187
186
<code><span class="keyword">|</span></code></td>
188
187
<td align="left" valign="top" >
189
<code><span class="constructor">Internal</span></code></td>
188
<code><span id="TYPEELTdtd_id.Internal"><span class="constructor">Internal</span></span></code></td>
190
189
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >DTD is completely internal</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
209
208
<td align="left" valign="top" >
210
209
<code><span class="keyword">|</span></code></td>
211
210
<td align="left" valign="top" >
212
<code><span class="constructor">Empty</span></code></td>
211
<code><span id="TYPEELTcontent_model_type.Empty"><span class="constructor">Empty</span></span></code></td>
213
212
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Nothing is allowed as content</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
216
215
<td align="left" valign="top" >
217
216
<code><span class="keyword">|</span></code></td>
218
217
<td align="left" valign="top" >
219
<code><span class="constructor">Any</span></code></td>
218
<code><span id="TYPEELTcontent_model_type.Any"><span class="constructor">Any</span></span></code></td>
220
219
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Everything is allowed as content</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
223
222
<td align="left" valign="top" >
224
223
<code><span class="keyword">|</span></code></td>
225
224
<td align="left" valign="top" >
226
<code><span class="constructor">Mixed</span> <span class="keyword">of</span> <code class="type"><a href="Pxp_core_types.S.html#TYPEmixed_spec">mixed_spec</a> list</code></code></td>
225
<code><span id="TYPEELTcontent_model_type.Mixed"><span class="constructor">Mixed</span></span> <span class="keyword">of</span> <code class="type"><a href="Pxp_core_types.S.html#TYPEmixed_spec">mixed_spec</a> list</code></code></td>
227
226
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >The contents consist of elements and <code class="code"><span class="constructor">PCDATA</span></code>
228
227
in arbitrary order. What is allowed in
229
228
particular is given as <code class="code">mixed_spec</code>.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
246
245
<td align="left" valign="top" >
247
246
<code><span class="keyword">|</span></code></td>
248
247
<td align="left" valign="top" >
249
<code><span class="constructor">MPCDATA</span></code></td>
248
<code><span id="TYPEELTmixed_spec.MPCDATA"><span class="constructor">MPCDATA</span></span></code></td>
250
249
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code class="code"><span class="constructor">PCDATA</span></code> children are allowed</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
253
252
<td align="left" valign="top" >
254
253
<code><span class="keyword">|</span></code></td>
255
254
<td align="left" valign="top" >
256
<code><span class="constructor">MChild</span> <span class="keyword">of</span> <code class="type">string</code></code></td>
255
<code><span id="TYPEELTmixed_spec.MChild"><span class="constructor">MChild</span></span> <span class="keyword">of</span> <code class="type">string</code></code></td>
257
256
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >This kind of Element is allowed</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
266
265
<td align="left" valign="top" >
267
266
<code><span class="keyword">|</span></code></td>
268
267
<td align="left" valign="top" >
269
<code><span class="constructor">Optional</span> <span class="keyword">of</span> <code class="type"><a href="Pxp_core_types.S.html#TYPEregexp_spec">regexp_spec</a></code></code></td>
268
<code><span id="TYPEELTregexp_spec.Optional"><span class="constructor">Optional</span></span> <span class="keyword">of</span> <code class="type"><a href="Pxp_core_types.S.html#TYPEregexp_spec">regexp_spec</a></code></code></td>
270
269
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >subexpression?</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
273
272
<td align="left" valign="top" >
274
273
<code><span class="keyword">|</span></code></td>
275
274
<td align="left" valign="top" >
276
<code><span class="constructor">Repeated</span> <span class="keyword">of</span> <code class="type"><a href="Pxp_core_types.S.html#TYPEregexp_spec">regexp_spec</a></code></code></td>
275
<code><span id="TYPEELTregexp_spec.Repeated"><span class="constructor">Repeated</span></span> <span class="keyword">of</span> <code class="type"><a href="Pxp_core_types.S.html#TYPEregexp_spec">regexp_spec</a></code></code></td>
277
276
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >subexpression*</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
280
279
<td align="left" valign="top" >
281
280
<code><span class="keyword">|</span></code></td>
282
281
<td align="left" valign="top" >
283
<code><span class="constructor">Repeated1</span> <span class="keyword">of</span> <code class="type"><a href="Pxp_core_types.S.html#TYPEregexp_spec">regexp_spec</a></code></code></td>
282
<code><span id="TYPEELTregexp_spec.Repeated1"><span class="constructor">Repeated1</span></span> <span class="keyword">of</span> <code class="type"><a href="Pxp_core_types.S.html#TYPEregexp_spec">regexp_spec</a></code></code></td>
284
283
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >subexpression+</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
287
286
<td align="left" valign="top" >
288
287
<code><span class="keyword">|</span></code></td>
289
288
<td align="left" valign="top" >
290
<code><span class="constructor">Alt</span> <span class="keyword">of</span> <code class="type"><a href="Pxp_core_types.S.html#TYPEregexp_spec">regexp_spec</a> list</code></code></td>
289
<code><span id="TYPEELTregexp_spec.Alt"><span class="constructor">Alt</span></span> <span class="keyword">of</span> <code class="type"><a href="Pxp_core_types.S.html#TYPEregexp_spec">regexp_spec</a> list</code></code></td>
291
290
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >subexpr1 | subexpr2 | ... | subexprN</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
294
293
<td align="left" valign="top" >
295
294
<code><span class="keyword">|</span></code></td>
296
295
<td align="left" valign="top" >
297
<code><span class="constructor">Seq</span> <span class="keyword">of</span> <code class="type"><a href="Pxp_core_types.S.html#TYPEregexp_spec">regexp_spec</a> list</code></code></td>
296
<code><span id="TYPEELTregexp_spec.Seq"><span class="constructor">Seq</span></span> <span class="keyword">of</span> <code class="type"><a href="Pxp_core_types.S.html#TYPEregexp_spec">regexp_spec</a> list</code></code></td>
298
297
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >subexpr1 , subexpr2 , ... , subexprN</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
301
300
<td align="left" valign="top" >
302
301
<code><span class="keyword">|</span></code></td>
303
302
<td align="left" valign="top" >
304
<code><span class="constructor">Child</span> <span class="keyword">of</span> <code class="type">string</code></code></td>
303
<code><span id="TYPEELTregexp_spec.Child"><span class="constructor">Child</span></span> <span class="keyword">of</span> <code class="type">string</code></code></td>
305
304
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >This kind of Element is allowed here</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
314
313
<td align="left" valign="top" >
315
314
<code><span class="keyword">|</span></code></td>
316
315
<td align="left" valign="top" >
317
<code><span class="constructor">A_cdata</span></code></td>
316
<code><span id="TYPEELTatt_type.A_cdata"><span class="constructor">A_cdata</span></span></code></td>
318
317
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code class="code"><span class="constructor">CDATA</span></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
321
320
<td align="left" valign="top" >
322
321
<code><span class="keyword">|</span></code></td>
323
322
<td align="left" valign="top" >
324
<code><span class="constructor">A_id</span></code></td>
323
<code><span id="TYPEELTatt_type.A_id"><span class="constructor">A_id</span></span></code></td>
325
324
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code class="code"><span class="constructor">ID</span></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
328
327
<td align="left" valign="top" >
329
328
<code><span class="keyword">|</span></code></td>
330
329
<td align="left" valign="top" >
331
<code><span class="constructor">A_idref</span></code></td>
330
<code><span id="TYPEELTatt_type.A_idref"><span class="constructor">A_idref</span></span></code></td>
332
331
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code class="code"><span class="constructor">IDREF</span></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
335
334
<td align="left" valign="top" >
336
335
<code><span class="keyword">|</span></code></td>
337
336
<td align="left" valign="top" >
338
<code><span class="constructor">A_idrefs</span></code></td>
337
<code><span id="TYPEELTatt_type.A_idrefs"><span class="constructor">A_idrefs</span></span></code></td>
339
338
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code class="code"><span class="constructor">IDREFS</span></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
342
341
<td align="left" valign="top" >
343
342
<code><span class="keyword">|</span></code></td>
344
343
<td align="left" valign="top" >
345
<code><span class="constructor">A_entity</span></code></td>
344
<code><span id="TYPEELTatt_type.A_entity"><span class="constructor">A_entity</span></span></code></td>
346
345
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code class="code"><span class="constructor">ENTITY</span></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
349
348
<td align="left" valign="top" >
350
349
<code><span class="keyword">|</span></code></td>
351
350
<td align="left" valign="top" >
352
<code><span class="constructor">A_entities</span></code></td>
351
<code><span id="TYPEELTatt_type.A_entities"><span class="constructor">A_entities</span></span></code></td>
353
352
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code class="code"><span class="constructor">ENTITIES</span></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
356
355
<td align="left" valign="top" >
357
356
<code><span class="keyword">|</span></code></td>
358
357
<td align="left" valign="top" >
359
<code><span class="constructor">A_nmtoken</span></code></td>
358
<code><span id="TYPEELTatt_type.A_nmtoken"><span class="constructor">A_nmtoken</span></span></code></td>
360
359
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code class="code"><span class="constructor">NMTOKEN</span></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
363
362
<td align="left" valign="top" >
364
363
<code><span class="keyword">|</span></code></td>
365
364
<td align="left" valign="top" >
366
<code><span class="constructor">A_nmtokens</span></code></td>
365
<code><span id="TYPEELTatt_type.A_nmtokens"><span class="constructor">A_nmtokens</span></span></code></td>
367
366
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code class="code"><span class="constructor">NMTOKENS</span></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
370
369
<td align="left" valign="top" >
371
370
<code><span class="keyword">|</span></code></td>
372
371
<td align="left" valign="top" >
373
<code><span class="constructor">A_notation</span> <span class="keyword">of</span> <code class="type">string list</code></code></td>
372
<code><span id="TYPEELTatt_type.A_notation"><span class="constructor">A_notation</span></span> <span class="keyword">of</span> <code class="type">string list</code></code></td>
374
373
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code class="code"><span class="constructor">NOTATION</span></code> (name1 | name2 | ... | nameN)</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
377
376
<td align="left" valign="top" >
378
377
<code><span class="keyword">|</span></code></td>
379
378
<td align="left" valign="top" >
380
<code><span class="constructor">A_enum</span> <span class="keyword">of</span> <code class="type">string list</code></code></td>
379
<code><span id="TYPEELTatt_type.A_enum"><span class="constructor">A_enum</span></span> <span class="keyword">of</span> <code class="type">string list</code></code></td>
381
380
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >(name1 | name2 | ... | nameN)</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
390
389
<td align="left" valign="top" >
391
390
<code><span class="keyword">|</span></code></td>
392
391
<td align="left" valign="top" >
393
<code><span class="constructor">D_required</span></code></td>
392
<code><span id="TYPEELTatt_default.D_required"><span class="constructor">D_required</span></span></code></td>
394
393
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code class="code"><span class="keywordsign">#</span><span class="constructor">REQUIRED</span></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
397
396
<td align="left" valign="top" >
398
397
<code><span class="keyword">|</span></code></td>
399
398
<td align="left" valign="top" >
400
<code><span class="constructor">D_implied</span></code></td>
399
<code><span id="TYPEELTatt_default.D_implied"><span class="constructor">D_implied</span></span></code></td>
401
400
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code class="code"><span class="keywordsign">#</span><span class="constructor">IMPLIED</span></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
404
403
<td align="left" valign="top" >
405
404
<code><span class="keyword">|</span></code></td>
406
405
<td align="left" valign="top" >
407
<code><span class="constructor">D_default</span> <span class="keyword">of</span> <code class="type">string</code></code></td>
406
<code><span id="TYPEELTatt_default.D_default"><span class="constructor">D_default</span></span> <span class="keyword">of</span> <code class="type">string</code></code></td>
408
407
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >a value default -- the value is already expanded</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
411
410
<td align="left" valign="top" >
412
411
<code><span class="keyword">|</span></code></td>
413
412
<td align="left" valign="top" >
414
<code><span class="constructor">D_fixed</span> <span class="keyword">of</span> <code class="type">string</code></code></td>
413
<code><span id="TYPEELTatt_default.D_fixed"><span class="constructor">D_fixed</span></span> <span class="keyword">of</span> <code class="type">string</code></code></td>
415
414
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code class="code"><span class="constructor">FIXED</span></code> value default -- the value is already expanded</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
426
425
<td align="left" valign="top" >
427
426
<code><span class="keyword">|</span></code></td>
428
427
<td align="left" valign="top" >
429
<code><span class="constructor">Value</span> <span class="keyword">of</span> <code class="type">string</code></code></td>
433
<td align="left" valign="top" >
434
<code><span class="keyword">|</span></code></td>
435
<td align="left" valign="top" >
436
<code><span class="constructor">Valuelist</span> <span class="keyword">of</span> <code class="type">string list</code></code></td>
440
<td align="left" valign="top" >
441
<code><span class="keyword">|</span></code></td>
442
<td align="left" valign="top" >
443
<code><span class="constructor">Implied_value</span></code></td>
428
<code><span id="TYPEELTatt_value.Value"><span class="constructor">Value</span></span> <span class="keyword">of</span> <code class="type">string</code></code></td>
432
<td align="left" valign="top" >
433
<code><span class="keyword">|</span></code></td>
434
<td align="left" valign="top" >
435
<code><span id="TYPEELTatt_value.Valuelist"><span class="constructor">Valuelist</span></span> <span class="keyword">of</span> <code class="type">string list</code></code></td>
439
<td align="left" valign="top" >
440
<code><span class="keyword">|</span></code></td>
441
<td align="left" valign="top" >
442
<code><span id="TYPEELTatt_value.Implied_value"><span class="constructor">Implied_value</span></span></code></td>