List of elements used in midPoint / Prism schemas

Core XSD Elements

Table 1. XSD concepts used in midPoint

Element

Type / Use in Midpoint

Description

xsd:annotation

syntactic (overhead)

Holder for xsd:documentation or xsd:appinfo

xsd:any

model

allows any elements (used for extensions / custom structured data)

xsd:anyAttribute

model

allows any attributes

xsd:appinfo

syntactic (overhead)

Holder for application specific annotations

xsd:attribute

model

Represents attributes (since addition of support for YAML / XML - midPoint mostly treats attributes as elements)

xsd:complexContent

model

Represents complex content

xsd:complexType

model

Represents complex type

xsd:documentation

documentation

xsd:element

model

Represents element (in midPoint these can be objects, properties or containers)

xsd:enumeration

model

Enumarate possible value

xsd:extension

model

Extends possible value set

xsd:choice

model

allows only one of the elements contained in the <choice> declaration to be present within the containing element.

xsd:import

model

Imports schema

xsd:include

model

Includes schema

xsd:minInclusive

model

xsd:restriction

model

Restricts possible value set

xsd:sequence

syntactic (overhead)

Represents sequence of elements, but midPoint is order-agnostic so this is overhead.

xsd:schema

model

Definition of schema document

xsd:simpleContent

model

Represents simple content (may be used in complexType when type contains attributes)

xsd:simpleType

model

Represents simple type

JAXB XSD Elements

Table 2. JAXB / XJC concepts used in midPoint schemas
Element Type / Use in Midpoint Description

jaxb:dom

jaxb:globalBindings

jaxb:typesafeEnumClass

jaxb:typesafeEnumMember

xjc:dom

xjc:serializable

xjc:typeSubstitution

midPoint/Prism XSD Annotations

Table 3. Prism modeling annotations
Element Type / Use in Midpoint Description

a:container

model

complex types that are considered prism containers.

a:object

model

This annotation marks complex types that are considered prism objects.

a:type

model

Type override annotation

a:composite

model

Marks composite reference. Composite references do not refer to the target object by OID but rather contain the entire target object forming a composition.

a:operational

model

Marks operational property. Operational properties are auxiliary data (or meta-data) that are usually not modifiable by the end user. They are generated and maintained by the system.

a:experimental

model

Marks experimental functionality.

a:maxOccurs

model

maxOccurs XSD attribute, but can also be used with top-level elements.

a:oid

model

Target of the reference.

a:type

model

Type of the reference target object.

a:extension

model

Complex type annotation. Complex type that contains this annotation defines the content of the 'extension' item of data type specified by the content of this annotation.

a:objectReference

model

object reference. This annotation specifies that an element or data type is object reference (PrismReference).

a:objectReferenceTargetType

model

Object reference annotation: reference target type. Content of this annotation specifies the object type that the reference points to.

a:elaborate

model

Marks elaborate items. Elaborate items are complicated data structure that may deviate from normal principles of the system.

a:valueEnumerationRef

model

Reference to an object that directly or indirectly represents possible values for

a:matchingRule

model

Matching rules are algorithms that specify how to compare, normalize and/or order the values.

Table 4. midPoint Model Lifecycle Annotations
Element Type / Use in Midpoint Description

a:deprecated

schema lifecycle

Marks deprecated parts of the schema.

a:since

schema lifecycle

Version of data model in which was the item introduced.

a:deprecatedSince

schema lifecycle

Version of data model in which was the item marked as deprecated.

a:plannedRemoval

schema lifecycle

Version of data model in which the item is likely to be removed.

a:plannedChange

schema lifecycle

Version of data model in which the item is likely to be changed in a non-compatible way.

a:schemaMigration

schema lifecycle

Annotation that describes schema changes that need to be migrated.

Table 5. midPoint User Interface Annotations
Element Type / Use in Midpoint Description

a:displayName

user inteface

item display name. The content of this annotation specifies a human-readable string that describes the type.

a:displayOrder

user inteface

display order

a:help

user inteface

help text. The help text is usually displayed as a tooltip or when a special icon is clicked.

a:processing

user inteface

Specifies the "depth" of item processing. In midPoint 3.8 this is only supported by the user interface (presentation layer) and only as an experimental feature.

a:emphasized

user inteface

Set true for definitions that are more important than others and that should be emphasized during presentation.

a:label

user inteface

Displayable label of enumeration item.

a:access

security

access restrictions. This annotation specifies the allowed operations for an item.

Table 6. midPoint Data Store Annotations
Element Type / Use in Midpoint Description

a:indexed

storage

indexed property. Property that has this annotation should be indexed in the data store.

a:indexOnly

storage

index-only property. Property that has this annotation should be indexed in the data store but not stored in "full" object representation.

a:index

storage

Specifies type of index that is maintained for this item. The data store maintains this type of index for the item.

a:relational

storage

Marks a container that contains relational data. The relational container provides data that are normally stored in a simple relational table.

a:expensive

system

Marks an expensive item. Expensive items are not returned from some operations by default. They have to be explicitly requested.

Table 7. Prism Data Processing Annotations
Element Type / Use in Midpoint Description

a:ignore

processing

Item marker annotation: ignored item. Item that has this annotation should be ignored by any processing.

a:defaultNamespace

processing

When resolving unqualified elements, what should be the default namespace to look into at first.

a:ignoredNamespace

processing

When resolving unqualified elements, what namespace(s) should be ignored.

a:heterogeneousListItem

processing

This substitutable element can be used in "heterogeneous list" items, i.e. items that can have several values with different types.

a:instantiationOrder

processing

When parsing a field that is known to contain an abstract data type (e.g. LocalizableMessageType) and has no xsi:type, one has to guess which subtype to instantiate.