Introduce entity:relatedTo mixin.
[gpl/argeo-suite.git] / org.argeo.entity.api / src / org / argeo / entity / entity.cnd
index 67116cd69ca88a05a9dd225c006930b8d87792cb..0b3127b305115cf16c82412b1f1b23df15825bdb 100644 (file)
@@ -1,28 +1,96 @@
-<ldap = 'http://www.argeo.org/ns/ldap'>
+// Standard namespaces
+<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#">
+<svg = "http://www.w3.org/2000/svg">
+
+<ldap = "http://www.argeo.org/ns/ldap">
 <entity = 'http://www.argeo.org/ns/entity'>
 
-[entity:entity] > mix:title, mix:created, mix:lastModified, mix:referenceable
+[entity:entity] > mix:created, mix:referenceable
+mixin
+
+[entity:local] > entity:entity
+mixin
+- entity:type (String) m
+
+[entity:relatedTo]
 mixin
-//- entity:uid (String) m // an implementation dependent UID for each entity
-//- entity:type (String) // the type of this entity
++ entity:relatedTo (nt:address) *
+
+//
+// ENTITY DEFINITION
+//
+//[entity:definition] > entity:composite, mix:created, mix:lastModified, mix:referenceable
+//- entity:type (String) multiple
+
+//[entity:part]
+
+//[entity:reference]
+
+//[entity:composite]
+//orderable
+//+ * (entity:part)
+//+ * (entity:reference)
+//+ * (entity:composite)
+
+//
+// TYPOLOGY
+//
+[entity:typologies]
++ * (entity:terms) = entity:terms
 
-[entity:definition] > entity:composite, mix:title, mix:created, mix:lastModified, mix:referenceable
+[entity:term]
+orderable
+- name (NAME) m
+- * (*)
++ term (entity:term) = entity:term *
+
+[entity:terms] > mix:referenceable
+orderable
++ term (entity:term) = entity:term *
+
+//
+// FORM
+//
+[entity:form]
 mixin
 
-[entity:part]
+[entity:formSubmission]
 mixin
 
-[entity:reference]
+[entity:formSet] > mix:title
 mixin
 
-[entity:composite]
+//
+// GRAPHICS
+//
+[entity:box]
 mixin
-orderable
-+ * (entity:part)
-+ * (entity:reference)
-+ * (entity:composite)
+- svg:width (DOUBLE)
+- svg:height (DOUBLE)
+- svg:length (DOUBLE)
+- svg:unit (STRING)
+- svg:dur (DOUBLE)
 
 // LDAP-LIKE ENTITIES
 // A real person
 [entity:person] > entity:entity
 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)
+