Attribute boxes in hierarchical schema view

This page explains how to introduce new attributes and control them in a hierarchical schema view.  Typically, these attributes are simple fields, but there are other possibilities, as detailed in the Attributes page.  Most of the controls below are also available from the ERD view and the Object Browser.


1. Root

2. Add, Insert or Append  

3. Controls

4. Choosing family of attribute, field type, and choice


1. Root

When you create a new collection, you get an empty hierarchical schema view with a fixed root:

Tree view - root


2. Add, Insert or Append

In simple terms, the difference between the 3 actions are:

- Add: introduce a new attribute as a child to the right of the selected attribute 

- Insert: introduce a new attribute before the selected attribute and as a sibling, i.e; at the same level

- Append: introduce a new attribute at the bottom of the level of the selected attribute

2.1 Add Attribute

Not all types of fields are allowed to have attributes.  Root is allowed to have only attributes as children, no siblings.  Documents are also allowed to have attributes a and arrays are will have array items.  

Tree view - root doc or array box plus Contextual menu - Add Attribute selected equals Tree view - Child added


2.2 Insert Attribute

Siblings can be inserted before the selected attribute, at the same level.   .


Tree view - Child added plus Contextual menu - Insert selectedequals Tree view - field inserted


2.3 Append Attribute

Siblings can be appended at the bottom of the same level.

Tree view - field inserted plus Contextual menu - Append selected equals Tree view - field appended



3. Controls

When an attribute is selected, the color of the box is changed to turquoise.  

3.1 Introduce an attribute

There are 4 ways to introduce a new attribute

3.1.1 Menu

Choose the appropriate option in the Actions menu:

Menu - Actions

3.1.2 Shortcuts

Press the keyboard shortcut of your choice:

Ctrl+AAdd attribute
Ctrl+IInsert field
Ctrl+EAppend field

3.1.3 Toolbar

Choose the appropriate icon in the toolbar:

Tree view - icons



ImageAdd attribute
ImageInsert field
ImageAppend field
ImageMove up
ImageMove down
ImageToggle details in diagram


and also:

Toolbar - Edit section



Icons - cutCut
Icons - copyCopy
Icons - pastePaste
Icons - deleteDel
Icons - duplicateDuplicate

3.1.4 Contextual menu

Right-click on an existing item to display a contextual menu:

Tree view - contextual menu

Only available options are activated, depending on the item selected when you perform the right-click.  To understand the different types of attributes, you may want to read this page.

3.2 Move an attribute

To change the order of the attributes within a level, use the Move Up or Move Down icons in the toolbar.  You may also move an attribute with your mouse by selecting the attribute, holding your left mouse button and dragging the box up or down in the same level.

3.3 Delete an attribute

There are several ways to delete an attribute.  You must first select it, then:

- choose Delete from the Edit menu

Menu Edit - Delete selected

-  press the Delete key on your keyboard

- click the button Icons - deletein the toolbar

- right-click the attribute and choose Delete

Contextual menu - Delete selected


3.4 Duplicate an attribute

When you choose to duplicate an attribute, all the properties of the selected item will be copied to a new attribute as a sibling at the same level, including the relationship.  There are several ways to delete an attribute.  You must first select it, then:

- choose Duplicate from the Edit menu

Contextual menu - Duplicate selected1

- press the shortcut Ctrl+D

- click the button Image in the toolbar

- right-click the attribute and choose Duplicate

Contextual menu - Duplicate selected


3.5 Cut, Copy, and Paste

These control have a behavior similar to what is expected in any desktop application.  When performing the operation, all the properties of the selected attribute will be copied to a new attribute as a sibling at the same level, including the relationship. 


3.6  Collapse/Expand

When an attribute has at least one attribute, its descendance can be collapse or expanded by pressing the - or the + sign to the right of the box:

Tree view - expanded

Tree view - collapsed



3.7 Toggle details

You may also toggle the appearance of details by pressing the Icons - toggle Details button:

Tree view - no details



4. Choosing family of attribute, field type, and choice

4.1 family of attributes


Family of Attributes



For an array:

Family of Attributes - Array


For choices:

Family of Attributes - choices


4.2 Field type

Field types include standard JSON Schema field types, plus the BSON types not already in JSON Schema.  BSON is a binary serialization format used to store documents and make remote procedure calls in MongoDB. The BSON specification is located here.  BSON supports the following data types as values in documents.

Tree view - field types


This list varies depending on the database target.



'4.3 Choice

You may add choices for alternate sub-schemas:


Tree view - choices



4.4 Reference definition

You may add references to re-usable objects as explained here.

Family of Attributes - Ref Def


4.5 DBRef (MongoDB only)

Hackolade supports this MongoDB convention.   


Family of Atributes - DBRref


4.6 Pick from list

If you want to re-use a previously created attribute (without making it a re-usable reference definition), then you can copy its properties with this option:


Family of Attributes - Pick from List




There are several ways to create a new field.  Depending on which attribute you select, you will want to add the new attribute as an attribute, or as a sibling.


and to Append:


For each of the 3 methods (Add attribute, Insert, and Append), there are 4 ways to do so:

- from the menu, choose Actions >  then Add attribute, Insert field or Append field

- press the shortcut Ctrl+H (Add attribute), Ctrl+E (Insert field), or Ctrl+D (Append field) 

- from the toolbar, choose the 'add attribute' button Image

- inside the central pane, Schema tab, right-click on the box for which you want to create a child attribute, and choose Add Attribute

Contextual menu - attributes