diff options
Diffstat (limited to 'data/domain/meta.osxml')
-rw-r--r-- | data/domain/meta.osxml | 22 |
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"/> |