summaryrefslogtreecommitdiff
path: root/data/domain/meta.osxml
diff options
context:
space:
mode:
Diffstat (limited to 'data/domain/meta.osxml')
-rw-r--r--data/domain/meta.osxml22
1 files changed, 12 insertions, 10 deletions
diff --git a/data/domain/meta.osxml b/data/domain/meta.osxml
index 7e96699..d214921 100644
--- a/data/domain/meta.osxml
+++ b/data/domain/meta.osxml
@@ -9,7 +9,6 @@
<struct name="meta" cardinality="{1}" transparent="true">
<field>
- <childRef ref="title"/>
<childRef ref="author"/>
<childRef ref="version"/>
</field>
@@ -22,21 +21,24 @@
<!-- 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">
+ <struct name="person">
<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>
+ <!-- wrapper author tag to allow specifying no authors whatsoever. But if
+ an author is specified it has to be at least one primary author. -->
+ <struct name="authors" transparent="true" cardinality="{0-1}">
+ <field>
+ <childRef ref="author"/>
+ </field>
+ </struct>
+
+ <!-- no explicit cardinality, because we might have multiple authors -->
+ <struct name="author" isa="person"/>
+
<!-- but we need at least one primary author -->
<struct name="primaryAuthor" cardinality="{>0}" isa="author"/>