DMSContent XML Format
The DMSContent format is the primary output format of the enaio® server for search results and object retrievals. It is returned by the research and retrieval jobs of the DMS engine.
The corresponding schema file is DMSContent.xsd.
The format can be in LOL (linear hit list), HOL (hierarchical object list)
or MIXED (combination of both) — controlled by the format attribute on the root element.
1. Usage
The DMSContent format is returned by the following jobs:
| Job | Format | Description |
|---|---|---|
LOL / HOL / MIXED |
Primary research job — returns hit lists from search queries |
|
HOL |
Returns complete index data for one or more objects |
|
LOL / HOL |
Executes a stored search query |
|
HOL |
Returns typeless objects from the user tray (contains |
|
HOL |
Returns objects from the workflow tray |
|
HOL |
Returns deleted objects |
|
HOL |
Returns linked objects from other archives |
|
HOL |
Returns index data in HOL format |
2. Output Formats (LOL vs. HOL)
The format attribute on the <DMSContent> element determines the internal structure of the results:
| Value | Format | Structure within <ObjectType> |
|---|---|---|
|
List of Lists |
|
|
Hierarchical Object List |
|
|
Combination |
Contains both |
2.1. LOL — Linear Hit List
The LOL structure is the compact tabular format: columns are defined once, then the hit rows follow. Suitable for large result sets and simple fields.
<DMSContent format="LOL" version="5.00" timestamp="2024-03-15T10:30:00"
user="admin" station="PC01">
<Archive id="1" internal_name="patient">
<ObjectType id="5" internal_name="medical_letter" type="DOCUMENT" modul="WINDOWS">
<Rowset>
<Columns>
<Column internal_name="date" dbname="D001" type="DATE" ostype="DATE">Date</Column>
<Column internal_name="subject" dbname="D002" type="TEXT" ostype="TEXT">Subject</Column>
<Column internal_name="physician" dbname="D003" type="TEXT" ostype="TEXT">Physician</Column>
</Columns>
<Rows>
<Row id="9823">
<Value>2024-03-15</Value>
<Value>Discharge letter</Value>
<Value>Dr. Müller</Value>
</Row>
<Row id="9824">
<Value>2024-03-10</Value>
<Value>Hospital documentation</Value>
<Value>Dr. Schmidt</Value>
</Row>
</Rows>
</Rowset>
<Statistics pagesize="20" startpos="0" total_hits="42"/>
</ObjectType>
</Archive>
<Messages/>
</DMSContent>
2.2. HOL — Hierarchical Object List
The HOL structure returns complete object data per instance. Each <Object> contains
fields, base parameters, rights information as well as optional child objects and variants.
<DMSContent format="HOL" version="5.00" timestamp="2024-03-15T10:30:00"
user="admin" station="PC01">
<Archive id="1" internal_name="patient">
<ObjectType id="5" internal_name="medical_letter" type="DOCUMENT" modul="WINDOWS">
<ObjectList>
<Object id="9823" export_depth="0">
<Fields>
<Field internal_name="date" dbname="D001" type="DATE">2024-03-15</Field>
<Field internal_name="subject" dbname="D002" type="TEXT">Discharge letter</Field>
</Fields>
<BaseParams>
<Creator>admin</Creator>
<Created value="1710500000">2024-03-15</Created>
<CreationDate>2024-03-15</CreationDate>
<Modifier>admin</Modifier>
<Modified value="1710500000">2024-03-15</Modified>
<Owner osguid="550e8400-e29b-41d4-a716-446655440000">admin</Owner>
<Links>0</Links>
<SystemID>0</SystemID>
<ForeignID></ForeignID>
<ArchiveState value="1">ARCHIVED</ArchiveState>
<Archivist>admin</Archivist>
<ArchiveDate>2024-03-15</ArchiveDate>
<Locked value="0">UNLOCKED</Locked>
<Version>1</Version>
</BaseParams>
<FileProperties extension="docx" mimetype="application/vnd.openxmlformats-officedocument.wordprocessingml.document" count="1" size="24576"/>
</Object>
</ObjectList>
<Statistics pagesize="20" startpos="0" total_hits="1"/>
</ObjectType>
</Archive>
<Messages/>
</DMSContent>
3. Elements and Attributes
3.1. <DMSContent> (root element)
| Attribute | Type | Default | Description |
|---|---|---|---|
|
Required |
Output format: |
|
|
xs:long |
|
Internal system ID of the server |
|
xs:long |
|
Language ID (7 = German) |
|
xs:string |
— |
Logged-in user |
|
xs:string |
— |
Computer/station name of the user |
|
xs:dateTime |
— |
Time of response (ISO 8601) |
|
xs:string |
|
enaio® server version |
|
xs:string |
— |
Server instance |
|
xs:string |
|
Output language (0 = server default) |
Child elements:
-
<Archive>(0..*) — Archive container with hits -
<TypelessObjects>(0..1) — Typeless objects (only for certain jobs) -
<Messages>(1) — Error messages (empty if successful)
3.2. <Archive>
Groups hits by archive. Is output once for each archive that contains hits.
| Attribute | Type | Default | Description |
|---|---|---|---|
|
xs:long |
|
Numeric archive ID |
|
xs:string |
— |
Display name of the archive |
|
xs:string |
— |
Internal name of the archive |
|
xs:string |
— |
GUID of the archive |
3.3. <ObjectType>
Describes the object type of the contained hits.
| Attribute | Type | Default | Description |
|---|---|---|---|
|
— |
Type of the object: |
|
|
xs:long |
|
Numeric ID of the object type |
|
xs:short |
|
Main type of the object type. Value range and meaning: Object Type ID. |
|
xs:short |
|
Subtype of the object type (lowword of the object type ID). |
|
xs:string |
— |
Database table of the object type |
|
xs:string |
— |
Display name of the object type |
|
xs:string |
— |
Internal name of the object type |
|
xs:string |
— |
GUID of the object type |
|
|
Document module (only relevant for documents) |
|
|
xs:short |
|
|
|
xs:string |
— |
Alias name of the object type |
|
xs:short |
|
|
Child elements:
-
Either
<Rowset>(LOL) or<ObjectList>(HOL) -
Optional
<SQL>— the executed SQL statement (only if corresponding option is set) -
<Statistics>— hit statistics (always present)
3.4. <Rowset> (LOL)
Contains the tabular search result. Columns are defined once in <Columns>,
the data values follow in <Rows>.
3.4.1. <Columns> / <Column>
<Columns> contains <Column> elements for each returned column and optionally
<TableField> elements for table fields.
<Column> carries the field name as text content and the complete field definition as attributes (field_ident).
3.4.2. <Rows> / <Row> / <Value>
Each <Row> corresponds to a hit object.
Attribute on <Row> |
Type | Required | Description |
|---|---|---|---|
|
xs:long |
— |
Object ID of the hit |
The <Value> elements within a <Row> correspond positionally to the columns from <Columns>.
Attribute on <Value> |
Type | Default | Description |
|---|---|---|---|
Text content |
xs:string |
— |
Display value of the field content (formatted/translated) |
|
xs:string |
— |
Internal raw value (e.g. key of a catalog field) |
For catalog fields, the text content contains the display name (e.g. male), the value attribute contains the internal key (e.g. M). For programmatic processing, value should be used.
|
Table fields appear as <TableField> child elements in the <Row> (parallel to the <Value> elements).
3.5. <ObjectList> (HOL)
Contains a list of <Object> elements with complete object data.
3.5.1. <Object>
| Attribute | Type | Required | Description |
|---|---|---|---|
|
xs:long |
Yes |
Object ID |
|
xs:long |
— |
Export depth (for nested queries) |
Child elements of <Object> (all optional):
| Element | Content |
|---|---|
|
Simple index fields as |
|
Multi-fields (MultiFields) |
|
Table fields (TableFields) |
|
Access rights of the logged-in user for this object (Rights) |
|
Base parameters (creator, modification date, archiving status etc.) (BaseParams) |
|
Document variants (only for documents with variants) (DocumentVariants) |
|
File information (extension, MIME type, count, size) |
|
Child objects (for folders/registers with substructure) — contains further |
|
Linked objects from other archives — |
3.5.2. <Fields> / <Field>
<Fields> contains <Field> elements, one per index field.
| Attribute | Type | Default | Description |
|---|---|---|---|
Text content |
xs:string |
— |
Display value of the field (formatted) |
|
xs:string |
— |
Internal raw value (for catalog fields: key) |
|
xs:string |
— |
Display name of the field (field label from the object type) |
|
xs:string |
— |
Display name of the field |
|
xs:string |
— |
Internal (technical) name of the field |
|
xs:string |
— |
Database column name |
|
xs:string |
— |
GUID of the field |
|
xs:string |
— |
Associated object type (for cross-field queries) |
|
xs:short |
|
|
|
xs:string |
— |
Field type (internal, e.g. |
|
xs:string |
— |
Database data type |
|
xs:string |
— |
enaio® field data type |
|
xs:long |
— |
Field length in characters |
|
xs:short |
|
|
|
xs:long |
|
Sorting position of the field in the mask |
3.5.3. <MultiFields> / <MultiField> / <Page> / <Value>
<MultiFields>
<MultiField internal_name="keywords" dbname="D010">
<Page id="1">
<Value>Invoice</Value>
<Value>2024</Value>
</Page>
</MultiField>
</MultiFields>
3.5.4. <TableFields> / <TableField>
Table fields in HOL format follow the RowsetType: <Columns>/<Column>+ defines the columns,
<Row id>/<Value>* contains the rows.
<TableFields>
<TableField internal_name="positions" dbname="D020">
<Columns>
<Column internal_name="pos_nr" dbname="D021">Pos.</Column>
<Column internal_name="description" dbname="D022">Description</Column>
<Column internal_name="amount" dbname="D023">Amount</Column>
</Columns>
<Row id="1">
<Value>1</Value>
<Value>Consultation</Value>
<Value>1200.00</Value>
</Row>
<Row id="2">
<Value>2</Value>
<Value>Travel expenses</Value>
<Value>350.00</Value>
</Row>
</TableField>
</TableFields>
3.5.5. <Rights>
Access rights of the currently logged-in user for the object.
| Attribute | Type | Default | Description |
|---|---|---|---|
|
xs:short |
|
|
|
xs:short |
|
|
|
xs:short |
|
|
|
xs:short |
|
|
|
xs:short |
|
|
<Rights> can contain <ObjectInserts> child elements that indicate how many objects of a specific type may still be inserted underneath:
Attribute on <ObjectInserts> |
Type | Required | Description |
|---|---|---|---|
|
xs:long |
Yes |
|
|
xs:long |
Yes |
Remaining allowed instances ( |
3.5.6. <BaseParams>
Base parameters are system metadata that exist for every object.
| Element | Description |
|---|---|
|
Creator user name |
|
Creation time as formatted string; attribute |
|
Creation date without time |
|
Last modifier user name |
|
Modification time; attribute |
|
Owner (user name as text, GUID as attribute) |
|
Number of links to this object |
|
System ID (for reference documents) |
|
Foreign ID (for reference documents from external systems) |
|
Archiving status as text (ArchiveStateType) + numeric value as attribute |
|
User name of the archiver |
|
Date of archiving |
|
Checkout status as text (LockedType) + numeric value as attribute |
|
Version number of the object |
3.5.7. <DocumentVariants> / <DocumentVariant>
Variants are recursively structured: each variant can itself contain sub-variants.
| Attribute | Type | Required | Description |
|---|---|---|---|
|
xs:long |
Yes |
Object ID of this variant |
|
xs:long |
Yes |
Object ID of the parent variant ( |
|
xs:string |
Yes |
Version number (e.g. |
|
xs:short |
Yes |
|
3.6. <TypelessObjects> / <TypelessObject>
Typeless objects are documents without assigned object type — for example, documents in the user tray
or the workflow tray. They are listed directly under <DMSContent> separately from <Archive>.
| Attribute | Type | Required | Description |
|---|---|---|---|
|
xs:long |
Yes |
Object ID |
|
xs:short |
Yes |
Document main type. Values and meaning: Object Type ID. |
|
Yes |
Document module |
|
|
xs:string |
Yes |
Owner user name |
|
xs:long |
Yes |
Number of pages |
|
xs:long |
Yes |
File size in bytes |
|
xs:long |
Yes |
MIME type ID |
|
xs:string |
Yes |
Timestamp of the object |
3.7. <Messages> / <Message>
Server error messages. On successful call, <Messages> is empty.
| Attribute | Type | Required | Description |
|---|---|---|---|
Text content |
xs:string |
— |
Description of the error |
|
xs:long |
Yes |
Internal error code |
|
xs:long |
Yes |
Source code (identifies the server component) |
3.8. <Statistics>
Pagination information — always present, even if no hits are available.
| Attribute | Type | Required | Description |
|---|---|---|---|
|
xs:long |
Yes |
Maximum number of hits per page (configured in the request) |
|
xs:long |
Yes |
Start position (0-based) of the first returned hit |
|
xs:long |
Yes |
Total number of hits (across all pages) |
For paginated browsing: Total pages = ⌈total_hits / pagesize⌉. The next page is requested by startpos += pagesize.
|
4. Enumeration Types
4.1. dataformat
| Value | Meaning |
|---|---|
|
List of Lists — tabular format with |
|
Hierarchical Object List — object format with |
|
Combination of LOL and HOL |
4.3. modultype
| Value | Main type |
|---|---|
Description |
|
|
Grayscale document |
|
|
Black/White document |
|
|
Color document |
|
|
Windows document (Office, PDF, …) |
|
|
Multimedia document |
|
|
Email document |
|
|
XML document |
|
|
Container document |
|
— |
Multi-page composite document |
|
— |
Reference document (reference to external system) |
|
— |
Unknown document type |
5. Complete Example (HOL with BaseParams and Rights)
<DMSContent format="HOL" version="5.00"
timestamp="2024-03-15T10:30:00"
user="admin" station="PC01" lang_id="7">
<Archive id="1" internal_name="patient">
<ObjectType id="5" internal_name="medical_letter"
type="DOCUMENT" modul="WINDOWS" fulltext="1">
<ObjectList>
<Object id="9823">
<Fields>
<Field internal_name="date" dbname="D001" type="DATE"
ostype="DATE" sortpos="1" visible="1">2024-03-15</Field>
<Field internal_name="subject" dbname="D002" type="TEXT"
ostype="TEXT" sortpos="2" visible="1">Discharge letter</Field>
<Field internal_name="status" dbname="D003" type="TEXT"
ostype="LISTBOX" value="D">Final</Field>
</Fields>
<Rights modify_index="1" modify_object="0"
delete_object="0" export_object="1" object_inserts="0"/>
<BaseParams>
<Creator>admin</Creator>
<Created value="1710500000">2024-03-15 10:13:20</Created>
<CreationDate>2024-03-15</CreationDate>
<Modifier>admin</Modifier>
<Modified value="1710500000">2024-03-15 10:13:20</Modified>
<Owner osguid="550e8400-e29b-41d4-a716-446655440000">admin</Owner>
<Links>0</Links>
<SystemID>0</SystemID>
<ForeignID></ForeignID>
<ArchiveState value="1">ARCHIVED</ArchiveState>
<Archivist>admin</Archivist>
<ArchiveDate>2024-03-15</ArchiveDate>
<Locked value="0">UNLOCKED</Locked>
<Version>3</Version>
</BaseParams>
<FileProperties extension="docx"
mimetype="application/vnd.openxmlformats-officedocument.wordprocessingml.document"
count="1" size="24576"/>
</Object>
</ObjectList>
<Statistics pagesize="20" startpos="0" total_hits="1"/>
</ObjectType>
</Archive>
<Messages/>
</DMSContent>