blob: 7e96699741689ed3aa3c56d8f16e4870f47a6a02 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
<?xml version="1.0"?>
<domain name="meta">
<import rel="typesystem" src="affiliation"/>
<import rel="typesystem" src="email"/>
<import rel="typesystem" src="version"/>
<import rel="domain" src="book"/>
<import rel="domain" src="headings"/>
<struct name="meta" cardinality="{1}" transparent="true">
<field>
<childRef ref="title"/>
<childRef ref="author"/>
<childRef ref="version"/>
</field>
<parentRef ref="book">
<field name="meta" isSubtree="true" optional="true"/>
</parentRef>
<parentRef ref="chapter">
<field name="meta" isSubtree="true" optional="true"/>
</parentRef>
<!-- One could also include "article" and other things here -->
</struct>
<!-- A title is just a heading -->
<struct name="title">
<field>
<childRef ref="heading"/>
</field>
</struct>
<!-- no explicit cardinality, because we might have multiple authors -->
<struct name="author">
<primitive isSubtree="true" name="firstName" type="string"/>
<primitive isSubtree="true" name="lastName" type="string"/>
<primitive isSubtree="true" name="email" type="email" optional="true"/>
<primitive isSubtree="true" name="affiliation" type="affiliation" optional="true"/>
</struct>
<!-- but we need at least one primary author -->
<struct name="primaryAuthor" cardinality="{>0}" isa="author"/>
<!-- version intermediate struct -->
<struct name="version" cardinality="{0-1}">
<primitive type="version"/>
</struct>
</domain>
|