Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Page Properties
hiddentrue
idREFACTURE


Product Version
Report Notepresentable, review (move stuff into tutorials)
Assignee

Resources & Remarks

  • There is already good text available in the tutorial section - it needs to be split into concept article and tutorial.
  • The app schemata article, originally located in the Tutorials section, has been moved into this article. The REST endpoint overview around the application schemata topic should probably be moved back into the tutorials and linked here.
  • v2.2 - Inga: "floating" secondary object type infos added
  • Antje: add Content Stream Properties as a new section in the hidden part.
  • Antje: move Content Stream Properties to the public section "System Properties"
  • Antje: contentStreamAllowed attribute added for SOTs

Modification History

NameDateProduct VersionAction
Antje08 FEB 20212020 WinterNew page properties macro.
Agnieszka02 JUNE 20212021 SummerrLANG (partial)
Antje12 JUL 20222022 Autumnadd fulltextIndexed attribute for String Properties
Agnieszka06 SEP 20222022 AutumnrLANG (partial)
Antje14 OCT 2022all versionstable columns can have cardinality "multi"
Antje06 MAR 20232023 Springrestructuring, add instantiable system:document type


...

Tenant-specific (or app-specific) properties and object types should be defined in a tenant (or app) schema, whereas the properties and object types defined in the global schema are available for all tenants and apps.

Schema Outline

A schema contains property definitions and object type definitions in XML format in the following mandatory order. It is possible to skip parts but not to change their order.

  1. Label (as of 2023 Autumn)
  2. Property definitions
  3. Object Type definitions:
    1. Document type definitions
    2. Folder type definitions
    3. Secondary object type definitions

The label is an optional string field to specify a project-specific schema versioning information. Its string value is limited to 128 characters.

Code Block
titleA valid example schema
linenumberstrue
<schema xmlns="http://optimal-systems.org/ns/dmscloud/schema/v5.0/" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://optimal-systems.org/ns/dmscloud/schema/v5.0/ dmsCloud-schema.xsd">
        <propertyStringDefinition>
            <id>from</id>
            <propertyType>string</propertyType>
            <cardinality>single</cardinality>
            <required>true</required>
        </propertyStringDefinition>
        <propertyStringDefinition>
            <id>to</id>
            <propertyType>string</propertyType>
            <cardinality>multi</cardinality>
            <required>true</required>
        </propertyStringDefinition>
		<propertyStringDefinition>
            <id>subject</id>
            <propertyType>string</propertyType>
            <cardinality>single</cardinality>
            <required>true</required>
        	<defaultValue>hello</defaultValue>
        	<maxLength>20</maxLength>
	        <minLength>4</minLength>
		</propertyStringDefinition>
		<propertyDateTimeDefinition>
            <id>received</id>
            <propertyType>datetime</propertyType>
            <cardinality>single</cardinality>
            <required>true</required>
        </propertyDateTimeDefinition>
		<typeDocumentDefinition>
            <id>email</id>
            <baseId>system:document</baseId>
            <propertyReference>from</propertyReference>
            <propertyReference>to</propertyReference>
            <propertyReference>received</propertyReference>
			<contentStreamAllowed>required</contentStreamAllowed>
        </typeDocumentDefinition>
</schema>

...

Anchor
typeIDs
typeIDs

Naming Conventions for Property and Object Type IDs

...

Note
titleNote

As of 2023 Spring, the predefined object type system:document can be used as object type. It automatically has a floating reference on all SOTs that are available in the applied tenant schema as described below. 

Custom document object type definitions have the following specific attributes:

...

As of 2023 Spring, the predefined object type system:document automatically has a floating reference on all SOTs that are available in the applied tenant schema. Nevertheless, the rules for the contentStreamAllowed attribute for the the individual SOTs have to be considered before they are assigned to an object.

The property groups of static referenced secondary object types are automatically available in all instances of the object type. Floating secondary object types can be handled in a flexible way during the import (POST /api/dms/objects endpoint) or at runtime for already existing instances of an object type with an update (POST /api/dms/objects/{objectId} / PATCH /api/dms/objects/{objectId}).  The keywords "add":, "value": or "remove": can be used in the "system:secondaryObjecttypeIds": property area of the metadata.json filecan.

...

Attribute

TypeRequiredDescription

contentStreamAllowed
(As of product version 2020 Autumn)

Enumno

Can substantiate the contentStreamAllowed attribute of document type definitions. Possible values are analogous to document object type definitions: required, notallowedallowed.

For the final document, content will be allowed if only allowed values occur in the document type definition and included secondary object type definitions for this attribute.

For the final document, content will be required (notallowed) if the value is required (notallowed) in at least one object type definition  either document type definition or included secondary object type definition.

Conflict situation leading to invalid documents: any combination of at least once required and at least once notallowed in included secondary object type definitions or the document object type definition itself.

  • If the conflict occurs between the document object type definition and a secondary object type definition, the whole schema is invalid.
  • If the conflict occurs between secondary object type definitions with at least one of them referenced as static, the schema is valid but the document validation will fail (instantiated documents will be invalid).
  • If the conflict occurs exclusively between secondary object type definitions referenced as floating, a document cannot have conflicting secondary object types at the same time. If a secondary object type with the value required (notallowed) is added to the document, all secondary object types with the value notallowed (required) must be removed by means of the keyword "remove":.

If contentStreamAllowed is specified in a secondary object type definition, this secondary object type cannot be referenced in folder object type definitions. The schema would be invalid.

...

Info
iconfalse

Read on

Section


Column
width25%

Managing the Schema 

Insert excerpt
Managing the Schema
Managing the Schema
nopaneltrue
 Keep reading


Column
width25%

Importing Documents 

Insert excerpt
Importing Documents via Core API
Importing Documents via Core API
nopaneltrue
 Keep reading


Column
width25%

Changing Schema Structures

Insert excerpt
Changing Schema Structures ("Schema Flow")
Changing Schema Structures ("Schema Flow")
nopaneltrue
 Keep reading




...