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.osxml47
1 files changed, 47 insertions, 0 deletions
diff --git a/data/domain/meta.osxml b/data/domain/meta.osxml
new file mode 100644
index 0000000..7e96699
--- /dev/null
+++ b/data/domain/meta.osxml
@@ -0,0 +1,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>