Edited by Gerard Lemson and Laurent Bourgès. Updated : 13/05/2008 : Laurent : added Identity complexType to store all flavor for objectType identifiers : Updated : 11/08/2008 : Laurent : Identity and Reference identifiers are now attributes UPdated: 2/05/2014 Gerard : Copied for use in VO-DML. New targetNamespace, new location. This class contains all flavor for objectType identifiers : <br/> - primary key value : numeric <br/> - string id : string for XML ID / IDREF standard mechanism in xml schemas <br/> - string URI : URI format for external references Represents an id for the containing element in the database where the document is stored. Represents the ID of the object in the IVO context. Should be globally unique. Maybe type should be IVOIdentifier. Represents a local ID in the XML document. Useful when inserting a new, purely transient resource in a SimDB. Represents an identifier assigned by the publisher, no restrictions on it are assumed, though in the future the dataype may be restricted. Represents an id in the database where the document is stored. All complex types eventually inherit from this type. Represents a full identity object identifying this object. This class defines a reference (close to Identity class) as it contains both xmlId and ivoId and publisherDID identifiers : <br/> It also allows one to indirectly reference fragments of objects using a nested referecne that follows the containment hierarchy upwards. Represents the ID of the object in the IVO context. Should be globally unique. Maybe type should be IVOIdentifier. Represents the ID of the object in the IVO context. Should be globally unique. Maybe type should be IVOIdentifier. Represents a reference to an element in the same XML document. Useful when inserting a new, purely transient resource in a SimDB. Indicates an indirect reference to an object. Uses less direct means than the ivoId or publisherDID, which are unique, to identify a referenced object. Example, can use a reference to a container, an indication of the colleciton on the container plus a restriction on a property of the contained object which is constrained to be uniqueInCollection. Note, the reference to the container could be built up the same way. NB This concept has similarities to the UFI concept [TBD add ref to that]. TBD "Is" a FragmentReference "a" Reference? I.e. should FragmentReference be an xsd:extension Reference? PRO: Removes one level in hierarchy, as a reference need not have a nested <fragment> PRO: Conceptually, a fragment reference indedd is-a" reference. CON: This concept is introduce to make a user's life easier, forcing them to use xmi:type reduces that usability. TBD: Consider a string version of this nesting, iso this element hierarchy. Reference to the container of the referenced fragment. Note, this can be null, therefore a fragment reference can not be used to refer to a root entity object! TBD do we need that constraint? Or can we release it and simply rely on the fragment identification to work with null The name of the collection on the container which contains the referenced object. TBD Decide whether we need this element. Can we infer it from the actual reference that contains this fragment? Does that rely on an type only having 1 collection of a given type? Does it rely on a type being the target of at most one collection (i.e., have at most one container?) The name of the property that is used to restrict the fragment. NB this may be one of the ID-s defined in the Identity complexType! The value of the property that is used to restrict the fragment. It's datatype is supposed to be of any type here. Q: We use string as an attribute. Do we need something this general? anySimpleType/anyType?