Introduce entity:relatedTo mixin.
[gpl/argeo-suite.git] / org.argeo.entity.api / src / org / argeo / entity / entity.cnd
index 16ff3b79a86956807cd97d7ece329b71bb8cb640..0b3127b305115cf16c82412b1f1b23df15825bdb 100644 (file)
@@ -2,28 +2,35 @@
 <xsd = "http://www.w3.org/2001/XMLSchema">
 <h = "http://www.w3.org/1999/xhtml">
 // see https://www.w3.org/2003/01/geo/
-//<geo = "http://www.w3.org/2003/01/geo/wgs84_pos#">
+<geo = "http://www.w3.org/2003/01/geo/wgs84_pos#">
+<svg = "http://www.w3.org/2000/svg">
 
 <ldap = "http://www.argeo.org/ns/ldap">
 <entity = 'http://www.argeo.org/ns/entity'>
 
 [entity:entity] > mix:created, mix:referenceable
 mixin
-//- entity:uid (String) m // an implementation dependent UID for each entity
-//- entity:type (String) // the type of this entity
+
+[entity:local] > entity:entity
+mixin
+- entity:type (String) m
+
+[entity:relatedTo]
+mixin
++ entity:relatedTo (nt:address) *
 
 //
 // ENTITY DEFINITION
 //
-[entity:definition] > entity:composite, mix:created, mix:lastModified, mix:referenceable
+//[entity:definition] > entity:composite, mix:created, mix:lastModified, mix:referenceable
 //- entity:type (String) multiple
 
 //[entity:part]
 
 //[entity:reference]
 
-[entity:composite]
-orderable
+//[entity:composite]
+//orderable
 //+ * (entity:part)
 //+ * (entity:reference)
 //+ * (entity:composite)
@@ -36,11 +43,13 @@ orderable
 
 [entity:term]
 orderable
-+ * (entity:term) = entity:term *
+- name (NAME) m
+- * (*)
++ term (entity:term) = entity:term *
 
 [entity:terms] > mix:referenceable
 orderable
-+ * (entity:term) = entity:term *
++ term (entity:term) = entity:term *
 
 //
 // FORM
@@ -51,8 +60,19 @@ mixin
 [entity:formSubmission]
 mixin
 
-[entity:formSet]
+[entity:formSet] > mix:title
+mixin
+
+//
+// GRAPHICS
+//
+[entity:box]
 mixin
+- svg:width (DOUBLE)
+- svg:height (DOUBLE)
+- svg:length (DOUBLE)
+- svg:unit (STRING)
+- svg:dur (DOUBLE)
 
 // LDAP-LIKE ENTITIES
 // A real person
@@ -60,3 +80,17 @@ mixin
 mixin
 - ldap:sn (String)
 - ldap:givenName (String)
+- ldap:mail (String) *
+
+[entity:user] > entity:person
+mixin
+- ldap:distinguishedName (String)
+- ldap:uid (String)
+
+// GEOGRAPHY
+[entity:geopoint]
+mixin
+- geo:long (DOUBLE)
+- geo:lat (DOUBLE)
+- geo:alt (DOUBLE)
+