Written for AI agents. Human? Read the human version →
jfaster.ai / docsView raw Markdown

JFaster Reference Index

This document provides a complete reference of all XML elements and attributes available in JFaster source files.


Element Index

Core Elements

ElementDescription
<entity>Defines a data entity (table)
<property>Defines a field/column within an entity
<enumset>Defines a set of enumeration values
<enum>Defines a single enumeration value

Data Filtering

ElementDescription
<subset>Defines a filtered subset of entity records
<filter>Defines a filter control for listings
<condition>Specifies a simple filter condition
<restriction>Specifies a complex HQL/SQL condition
<and>Combines conditions with AND logic
<or>Combines conditions with OR logic
<param>Declares a parameter for subsets, conditions, or dynamic values

Display & Layout

ElementDescription
<listing>Configures entity list view
<tab>Defines a tab (in forms or listings)
<embeddedlisting>Embeds a related entity's listing in a form
<box>Layout container for form elements
<row>Horizontal layout container
<column>Vertical layout container
<html>Embeds custom HTML content
<displayset>Defines which properties to display

Actions & Navigation

ElementDescription
<action>Defines a button/link action
<actiongroup>Groups multiple actions in a dropdown
<defaultset>Defines default values for new records
<default>Sets a default value for a property
<next>Defines what happens after form submission

Dynamic Behavior

ElementDescription
<dynamicvalue>Computes a property value dynamically
<displaycondition>Controls element visibility based on expression
<visiblecondition>Controls property visibility
<disabledcondition>Controls property disabled state
<readonlycondition>Controls property read-only state
<suggest>Provides suggestions for a property
<foreach>Iterates over a collection
<dynamicforeach>Dynamic iteration with parameters

Security

ElementDescription
<restrict>Restricts access to entity/element
<allow>Grants specific privilege access

Configuration

ElementDescription
<config>Application configuration
<labels>Label/translation definitions
<label>Single label definition
<include>Includes another file
<usescript>Includes a JavaScript file
<usestylesheet>Includes a CSS file
<usewidget>Configures a custom widget
<useview>Configures a custom view
<theme>Theme configuration
<macro>Defines a reusable macro
<processor>Defines a custom processor

Panels & Dashboards

ElementDescription
<panel>Defines a dashboard panel
<form>Embedded form in panel
<chart>Chart visualization
<crosstab>Cross-tabulation report
<report>Report definition
<accordeon>Accordion container
<accordeonitem>Accordion item

Other

ElementDescription
<description>Entity description text
<reference>External reference
<key>Composite key definition
<import>Import external resource

Element Reference

<entity>

Defines a data entity, which maps to a database table and generates forms, listings, services, and DAOs.

Attributes:

AttributeRequiredTypeDescription
nameYesstringEntity name (PascalCase)
labelNostringDisplay label
pluralNostringPlural form of label
menuNostringMenu group name
stereotypeNostringEntity stereotype (e.g., "Async", "Email")
sizeNolargeMarks entity as large
defaultlistingNostringDefault listing name
transientNofixed: "transient"Entity is not persisted to database
orderNostringDefault sort order (e.g., "name asc")
iconNostringIcon code
combopropertyNostringProperty to show in combo boxes
auditlevelNostringAudit logging level
optimisticlockNostringEnable optimistic locking
exclusivelockNostringEnable exclusive locking
navigatorNostringNavigator configuration
crosstabNostringCrosstab configuration
cacheNostringCaching configuration
encryptNostringEncryption configuration
usestyleNostringCustom style
noaddNofixed: "noadd"Disable adding new records
noremoveNofixed: "noremove"Disable removing records
publicformNostringMake form publicly accessible
tableNostringCustom database table name
displayactionsNostringActions to display (comma-separated)
displayactiongroupsNostringAction groups to display
mainactionNostringDefault action on double-click
schemaNostringDatabase schema
idgeneratorNostringID generation strategy

Child Elements: <restrict>, <description>, <usescript>, <usestylesheet>, <subset>, <displayset>, <listing>, <defaultset>, <actiongroup>, <property>, <supertab>, <tab>, <box>, <column>, <row>, <html>, <embeddedlisting>, <filter>, <action>, <next>

Example:

Person @CRM defaultlisting="main" order="lastName asc"
   name d r
   lastName d r
   email

<property>

Defines a field/property within an entity.

Attributes:

AttributeRequiredTypeDescription
nameYesstringProperty name (camelCase)
labelNostringDisplay label
typeNoenumData type: boolean, short, integer, long, float, double, string, text, longtext, enum, date, datetime, time, file, image, password, email, phone, url
entityNostringRelated entity name (for relationships)
collectionNoenumCollection type: set, list, sortedset
displayNoenumDisplay mode: primary, secondary
requiredNofixed: "required"Field is mandatory
readonlyNofixed: "readonly"Field is read-only
fixedNofixed: "fixed"Field displays as text, not input
hiddenNofixed: "hidden"Field is hidden from form
invisibleNofixed: "invisible"Field is completely hidden
disabledNofixed: "disabled"Field is disabled
transientNofixed: "transient"Field is not persisted
uniqueNostringField value must be unique
indexNostringCreate database index
defaultNostringDefault value
subsetNostringSubset to filter related entity options
subsetparamsNostringParameters for the subset
styleNostringInline CSS styles
classNostringCSS class
descriptionNostringField description
tooltipNostringHover tooltip text
widgetNostringCustom widget (e.g., jdatepicker, html, select, checkbox)
combopropertyNostringProperty to display in combo
maxlengthNostringMaximum input length
minlengthNostringMinimum input length
maskNostringInput mask pattern
hintNostringInput hint text
placeholderNostringInput placeholder text
widthNostringElement width
heightNostringElement height
patternNostringValidation pattern
enumsetNostringEnumset name (for enum type)
embeddedNoenumEmbed mode: inline, detail, grid
childpropertyNostringBack-reference property in child entity
extendableNofixed: "extendable"Allow adding rows (for embedded)
sortableNofixed: "sortable"Allow sorting rows
maxrowsNostringMaximum embedded rows
minrowsNostringMinimum embedded rows
listindexNostringList index property name
listuniqueNostringList uniqueness constraint
setorderNostringSet ordering expression
sortNostringComparator class for sortedset
sortexprNostringSort expression
whereNostringWHERE clause for filtering
whennotinsubsetNoenumBehavior when not in subset: donotshow, show, shownotvalid
exprNostringClient-side calculated expression
calculatedNostringServer-side calculated expression
calculatedtriggerNoenumWhen to calculate: onload, onchange, onchangenew
formulaNostringHibernate formula (SQL)
displayifNostringShow condition
visibleifNostringVisibility condition
disabledifNostringDisabled condition
readonlyifNostringRead-only condition
checkifNostringValidation condition
checkifmessageNostringValidation error message
displaypropertiesNostringProperties to display for related entity
labelpositionNoenumLabel position: top, fieldset, left, none
dimensionNoenumCrosstab dimension: row, column
gridheaderNostringGrid header text
gridvalueNostringGrid value expression
columnsNostringNumber of columns
columnNostringDatabase column name
fromyearNostringDate range start year
toyearNostringDate range end year
autosuggestNofixed: "autosuggest"Enable autocomplete
encryptNostringEncryption configuration
cacheNofixed: "cache"Enable caching
rememberlastNofixed: "rememberlast"Remember last value
tableNostringCustom join table name
imagecopyofNostringCopy image from another property
primarykeyNofixed: "primarykey"Mark as primary key
jqueryoptionsNostringjQuery widget options
processorNostringCustom processor class

Child Elements: <restrict>, <enum>, <dynamicvalue>, <displaycondition>, <visiblecondition>, <disabledcondition>, <readonlycondition>, <suggest>, <foreach>, <dynamicforeach>, <action>, <actiongroup>

Examples:

name d r                                    // Simple required string with display
age integer                                 // Integer field
birthDate date widget="jdatepicker"         // Date with picker
company Company subset="active"             // Relationship with subset
emails set                                  // Multi-valued string set
addresses Address set ei x childproperty="person"  // Master-detail
status enum enumset="Status" default="active"      // Enum field

<enumset>

Defines a set of enumeration values that can be used in properties.

Attributes:

AttributeRequiredTypeDescription
nameYesstringEnumset identifier
privilegesNostringRequired privileges

Child Elements: <enum>

Example:

<enumset name="Priority">
   <enum value="low">Low</enum>
   <enum value="medium">Medium</enum>
   <enum value="high">High</enum>
</enumset>

<enum>

Defines a single enumeration value within an <enumset> or <filter>.

Attributes:

AttributeRequiredTypeDescription
valueNostringInternal value

Content: Display label text

Example:

<enum value="active">Active</enum>

<subset>

Defines a filtered subset of entity records.

Attributes:

AttributeRequiredTypeDescription
nameYesstringSubset identifier
basesubsetNostringParent subset to extend
displaypropertiesNostringProperties to display (comma-separated)
displaysetNostringDisplay set name
orderNostringSort order (e.g., "name asc")
hintsNostringQuery hints

Child Elements: <restrict>, <param>, <condition>, <and>, <or>, <restriction>

Example:

<subset name="forCompany" order="lastName asc">
   <param name="company" entity="Company" />
   <condition field="company" value="company" />
   <condition field="active" value="true" />
</subset>

<filter>

Defines a filter control for entity listings.

Attributes:

AttributeRequiredTypeDescription
nameYesstringFilter identifier
propertyNostringProperty to filter
labelNostringDisplay label
placeholderNostringInput placeholder
displayNostringDisplay mode: "primary", "secondary"
typeNostringData type
entityNostringEntity for relationship filter
subsetNostringSubset for options
subsetparamsNostringSubset parameters
widgetNostringCustom widget
combopropertyNostringProperty for combo display
collectionNoenumCollection type: set, list, sortedset
enumsetNostringEnumset for enum filter
flagNoenumFilter flag: contains, exact
keyNostringFilter key

Child Elements: <enum>, <condition>, <and>, <or>, <restriction>

Examples:

<!-- Simple property filter -->
<filter name="name" property="name" label="Name" display="primary" />

<!-- Date filter with widget -->
<filter name="dateFrom" type="date" label="From" display="primary" widget="jdatepicker">
   <condition field="date" ge="dateFrom" />
</filter>

<!-- LIKE filter -->
<filter name="search" label="Search" display="primary">
   <condition field="name" like="concat('%', search, '%')" />
</filter>

<!-- Entity filter -->
<filter name="category" property="category" entity="Category" display="primary" />

<condition>

Specifies a simple filter condition.

Attributes:

AttributeRequiredTypeDescription
fieldNostringProperty/field to compare
valueNostringEquals value
neNostringNot equals value
gtNostringGreater than
geNostringGreater than or equal
ltNostringLess than
leNostringLess than or equal
likeNostringSQL LIKE pattern
inNostringValue in list
containsNostringCollection contains value
isnullNofixed: "isnull"Field is null
isnotnullNofixed: "isnotnull"Field is not null

Examples:

<condition field="active" value="true" />
<condition field="age" ge="18" />
<condition field="name" like="concat('%', searchTerm, '%')" />
<condition field="status" in="('pending', 'approved')" />
<condition field="deletedAt" isnull="isnull" />
<condition field="participants" contains="User:find(userId)" />

<restriction>

Specifies a complex HQL/SQL condition.

Attributes:

AttributeRequiredTypeDescription
exprYesstringHQL/SQL expression (use ? for parameters, me for current entity)
usedistinctNostringUse DISTINCT in query

Child Elements: <param>

Examples:

<!-- EXISTS subquery -->
<restriction expr="EXISTS (FROM OrderLine ol WHERE ol.order = me AND ol.product = ?)">
   <param value="product" />
</restriction>

<!-- NOT EXISTS -->
<restriction expr="NOT EXISTS (FROM Email e WHERE e.lead = me AND e.template = ?)">
   <param value="template" />
</restriction>

<!-- Custom SQL -->
<restriction expr="LOWER(name) LIKE LOWER(?)">
   <param value="concat('%', searchTerm, '%')" />
</restriction>

<and>

Combines conditions with AND logic (all must be true).

Child Elements: <condition>, <and>, <or>, <restriction>

Example:

<and>
   <condition field="active" value="true" />
   <condition field="verified" value="true" />
</and>

<or>

Combines conditions with OR logic (at least one must be true).

Child Elements: <condition>, <and>, <or>, <restriction>

Example:

<or>
   <condition field="role" value="admin" />
   <condition field="role" value="manager" />
   <condition field="owner" value="User:find(userId)" />
</or>

<param>

Declares a parameter for subsets, defaultsets, conditions, or dynamic expressions.

Attributes:

AttributeRequiredTypeDescription
nameNostringParameter name
entityNostringEntity type
typeNostringPrimitive type (if not entity)
collectionNoenumCollection type: set, list, sortedset
valueNostringValue expression (for dynamicvalue/displaycondition)

Examples:

<!-- Subset parameter -->
<param name="company" entity="Company" />

<!-- Collection parameter -->
<param name="items" entity="Product" collection="set" />

<!-- Primitive parameter -->
<param name="minAge" type="integer" />

<!-- Dynamic value parameter -->
<param name="product" entity="Product" value="product" />

<listing>

Configures entity list view with tabs and display options.

Attributes:

AttributeRequiredTypeDescription
nameYesstringListing identifier
labelNostringDisplay label
menuNostringMenu placement
subsetNostringDefault subset
viewNostringCustom view
layoutNostringLayout type (e.g., "simple")
displaypropertiesNostringProperties to display
displayfiltersNostringFilters to display
displaysetNostringDisplay set name
entityNostringEntity name
listingNostringBase listing
noaddNofixed: "noadd"Hide add button
noremoveNofixed: "noremove"Hide remove button
displayactionsNostringActions to display
displayactiongroupsNostringAction groups to display
mainactionNostringDefault row action
panelheightNostringHeight in panel
subsetparamsNostringSubset parameters
defaultsetNostringDefault set for new records
defaultsetparamsNostringDefault set parameters
titleNostringListing title

Child Elements: <restrict>, <tab>

Example:

<listing name="main" noadd="noadd">
   <tab name="all" label="All" />
   <tab name="active" label="Active" subset="active" />
   <tab name="archived" label="Archived" subset="archived" displayactions="restore" />
</listing>

<tab>

Defines a tab in forms or listings.

Attributes:

AttributeRequiredTypeDescription
nameNostringTab identifier
labelNostringDisplay label
subsetNostringSubset filter (for listing tabs)
displayifNostringDisplay condition
displayactionsNostringActions to display
displayactiongroupsNostringAction groups
mainactionNostringDefault action
displaypropertiesNostringProperties to display
displaysetNostringDisplay set
classNostringCSS class
crosstabNostringCrosstab configuration
chartNostringChart configuration

Child Elements: <displaycondition>, <box>, <column>, <row>, <property>, <embeddedlisting>, <html>

Examples:

<!-- Listing tab -->
<tab name="active" label="Active" subset="active" displayactions="deactivate" />

<!-- Form tab (using shorthand) -->
#tab label="Personal Info"
   name d r
   email
   phone

<embeddedlisting>

Embeds a related entity's listing within a form. See embeddedlisting.md for detailed documentation.

Attributes:

AttributeRequiredTypeDescription
nameYesstringIdentifier
entityYesstringEntity to display
labelNostringSection label
listingNostringListing configuration to use
subsetNostringSubset filter
subsetparamsNostringSubset parameters (. for current entity)
defaultsetNostringDefault set for new records
defaultsetparamsNostringDefault set parameters
displayifNostringDisplay condition

Child Elements: <displaycondition>

Example:

<embeddedlisting
   name="orders"
   entity="Order"
   subset="forCustomer"
   subsetparams="."
   defaultset="newForCustomer"
   defaultsetparams="." />

<box>

Layout container for organizing form elements.

Attributes:

AttributeRequiredTypeDescription
nameNostringIdentifier
classNostringCSS class (e.g., "cols" for columns)
styleNostringInline CSS
labelNostringSection label
idNostringHTML id
displayifNostringDisplay condition

Child Elements: <displaycondition>, <box>, <column>, <property>, <html>, <embeddedlisting>

Example:

<box class="cols">
   <box>
      firstName d r
      lastName d r
   </box>
   <box>
      email
      phone
   </box>
</box>

<row>

Horizontal layout container.

Attributes:

AttributeRequiredTypeDescription
nameNostringIdentifier
displayifNostringDisplay condition

Child Elements: <displaycondition>, <box>, <column>, <property>, <html>, <embeddedlisting>


<column>

Vertical layout container with optional width/span settings.

Attributes:

AttributeRequiredTypeDescription
nameNostringIdentifier
labelNostringColumn label
displayifNostringDisplay condition
widthNostringColumn width
colspanNostringColumn span
rowspanNostringRow span

Child Elements: <displaycondition>, <box>, <row>, <property>, <html>, <embeddedlisting>, <accordeon>, <listing>, <form>, <chart>, <crosstab>


<html>

Embeds custom HTML content in forms.

Attributes:

AttributeRequiredTypeDescription
nameNostringIdentifier
displayifNostringDisplay condition
heightNostringElement height
titleNostringTitle
panelheightNostringHeight in panel

Content: HTML content (use CDATA for complex HTML)

Example:

<html><![CDATA[<h3>Contact Information</h3><hr/>]]></html>

<displayset>

Defines a named set of properties to display.

Attributes:

AttributeRequiredTypeDescription
nameYesstringIdentifier
displaypropertiesYesstringProperties (comma-separated)

Example:

<displayset name="simpleDisplay" displayproperties="name,code" />

<action>

Defines a button or link action.

Attributes:

AttributeRequiredTypeDescription
nameNostringAction identifier
labelNostringDisplay text
typeYesenumAction type: openentity, relatedentity, javascript, report, relatedlisting
locationNostringPlacement: form, listing, local, main (comma-separated)
descriptionNostringAction description
entityNostringTarget entity (for entity actions)
listingNostringTarget listing
subsetNostringSubset filter
subsetparamsNostringSubset parameters
defaultsetNostringDefault set for new record
defaultsetparamsNostringDefault set parameters
functionNostringJavaScript function name
functionparamsNostringFunction parameters
reportNostringReport name
pdfNostringPDF report configuration
iconNostringIcon code
displayclassNostringCSS class for conditional display
widgetNoenumWidget type: button, link
multipleNoenumAllow multiple selection: true, false

Examples:

<!-- Related entity action -->
<action name="sendEmail" label="Send Email" type="relatedentity"
        entity="SendEmail" location="local" defaultset="forPerson" icon="f0e0" />

<!-- JavaScript action -->
<action name="print" label="Print" type="javascript"
        function="printRecord" location="local,form" />

<!-- JavaScript with parameters -->
<action name="viewMap" label="View Map" type="javascript"
        function="viewOnMap" functionparams="address" location="local" />

<!-- Open entity action (property action) -->
customer Customer \
   <action type="openentity" label="View" />

<!-- Batch action -->
<action name="deactivate" label="Deactivate Selected" type="relatedentity"
        entity="DeactivateItems" location="listing" defaultset="forItems" />

<actiongroup>

Groups multiple actions in a dropdown menu.

Attributes:

AttributeRequiredTypeDescription
nameYesstringGroup identifier
labelNostringDropdown label
locationNostringPlacement (required except for property action groups)
widgetNoenumWidget type: select, div, button, link

Child Elements: <action>

Example:

<actiongroup name="actions" label="Actions" location="local">
   <action name="edit" label="Edit" type="javascript" function="editRecord" />
   <action name="clone" label="Clone" type="relatedentity" entity="CloneItem" defaultset="forItem" />
   <action name="delete" label="Delete" type="relatedentity" entity="DeleteItem" defaultset="forItem" />
</actiongroup>

<defaultset>

Defines default values when creating new records from a related context.

Attributes:

AttributeRequiredTypeDescription
nameYesstringIdentifier
uniqueNostringUnique constraint

Child Elements: <restrict>, <param>, <default>, <key>, <foreach>

Example:

<defaultset name="newForCompany">
   <param name="company" entity="Company" />
   <default name="company" value="company" />
   <default name="country" value="company.country" />
   <default name="active" value="true" />
</defaultset>

<!-- Collection parameter -->
<defaultset name="forItems">
   <param name="items" entity="Product" collection="set" />
   <default name="items" value="items" />
</defaultset>

<default>

Sets a default value for a property within a defaultset.

Attributes:

AttributeRequiredTypeDescription
nameYesstringProperty name
valueNostringDefault value expression

Examples:

<default name="company" value="company" />
<default name="date" value="now" />
<default name="status" value="'pending'" />
<default name="email" value="person.email" />

<next>

Defines what happens after form submission.

Attributes:

AttributeRequiredTypeDescription
typeYesenumNext action type: message, function, report, entity, panel, form
functionNostringJavaScript function name
reportNostringReport name
pdfNostringPDF configuration
entityNostringEntity to open
defaultsetNostringDefault set for entity
panelNostringPanel to open
messageNostringMessage to display

Examples:

<next type="function" function="showConfirmation" />
<next type="message" message="Record saved successfully" />
<next type="entity" entity="Invoice" defaultset="forOrder" />

<dynamicvalue>

Computes a property value dynamically based on other fields.

Attributes:

AttributeRequiredTypeDescription
exprNostringExpression to compute value
triggerNoenumWhen to compute: onload, onchange, onchangenew

Child Elements: <param>

Example:

total double \
   <dynamicvalue expr="quantity * unitPrice">
      <param name="quantity" type="integer" value="quantity" />
      <param name="unitPrice" type="double" value="unitPrice" />
   </dynamicvalue>

customerEmail \
   <dynamicvalue expr="customer.email">
      <param name="customer" entity="Customer" value="customer" />
   </dynamicvalue>

<displaycondition>

Controls element visibility based on a server-side expression.

Attributes:

AttributeRequiredTypeDescription
exprNostringBoolean expression

Child Elements: <param>

Example:

phones set \
   <displaycondition expr="company.active == true">
      <param name="company" entity="Company" value="company" />
   </displaycondition>

<visiblecondition>

Controls property visibility based on expression.

Attributes:

AttributeRequiredTypeDescription
exprNostringBoolean expression

Child Elements: <param>


<disabledcondition>

Controls property disabled state based on expression.

Attributes:

AttributeRequiredTypeDescription
exprNostringBoolean expression

Child Elements: <param>


<readonlycondition>

Controls property read-only state based on expression.

Attributes:

AttributeRequiredTypeDescription
exprNostringBoolean expression

Child Elements: <param>


<suggest>

Provides value suggestions for a property.

Attributes:

AttributeRequiredTypeDescription
exprNostringExpression to generate suggestions

Child Elements: <param>


<foreach>

Iterates over a collection to set property values.

Attributes:

AttributeRequiredTypeDescription
selectYesstringCollection to iterate
setpropertyYesstringProperty to set
propertyNostringSource property

<dynamicforeach>

Dynamic iteration with parameters.

Attributes:

AttributeRequiredTypeDescription
selectYesstringCollection expression
setpropertyYesstringProperty to set
triggerNoenumWhen to execute: onload, onchange, onchangenew

Child Elements: <param>


<restrict>

Restricts access to entity or element based on privileges.

Child Elements: <allow>

Example:

<restrict>
   <allow privilege="ADMIN" />
   <allow privilege="MANAGER" action="view" />
</restrict>

<allow>

Grants specific privilege access within a restrict block.

Attributes:

AttributeRequiredTypeDescription
privilegeYesstringRequired privilege
actionNostringSpecific action allowed

<config>

Application-level configuration.

Attributes:

AttributeRequiredTypeDescription
largeentitywidgetNostringWidget for large entities
smallentitywidgetNostringWidget for small entities
baseNostringBase path
uploadpathNostringFile upload path

Child Elements: <labels>, <usescript>, <usestylesheet>, <usewidget>, <useview>, <restrict>, <theme>, <macro>, <processor>


<labels>

Container for label/translation definitions.

Child Elements: <label>


<label>

Defines a label/translation.

Attributes:

AttributeRequiredTypeDescription
keyYesstringLabel key
valueYesstringLabel value

<include>

Includes another source file.

Attributes:

AttributeRequiredTypeDescription
fileYesstringFile path to include

<usescript>

Includes a JavaScript file.

Attributes:

AttributeRequiredTypeDescription
locationYesstringScript file path

<usestylesheet>

Includes a CSS stylesheet.

Attributes:

AttributeRequiredTypeDescription
locationYesstringStylesheet file path
mediaNoenumMedia type: screen, tty, tv, projection, handheld, print, braille, aural, all

<usewidget>

Configures a custom widget.

Attributes:

AttributeRequiredTypeDescription
nameYesstringWidget name
jqueryNostringjQuery plugin name
jqueryoptionsNostringjQuery plugin options

Child Elements: <usescript>, <usestylesheet>


<useview>

Configures a custom view.

Attributes:

AttributeRequiredTypeDescription
nameYesstringView name

Child Elements: <usescript>, <usestylesheet>


<theme>

Theme configuration.

Attributes:

AttributeRequiredTypeDescription
tagsYesstringTheme tags
layoutYesstringLayout configuration
listingYesstringListing configuration
formsYesstringForms configuration

<macro>

Defines a reusable macro.

Attributes:

AttributeRequiredTypeDescription
nameYesstringMacro name
interfaceNostringInterface to implement

<processor>

Defines a custom processor.

Attributes:

AttributeRequiredTypeDescription
nameYesstringProcessor name
classYesstringJava class name

<panel>

Defines a dashboard panel.

Attributes:

AttributeRequiredTypeDescription
nameNostringPanel identifier
titleNostringPanel title
menuNostringMenu placement
iconNostringIcon code
sidebarNostringSidebar configuration

<form>

Embedded form in a panel.

Attributes:

AttributeRequiredTypeDescription
nameNostringForm identifier
entityNostringEntity name
defaultsetNostringDefault set
defaultsetparamsNostringDefault set parameters
panelheightNostringHeight in panel
titleNostringForm title

<chart>

Chart visualization configuration.

Attributes:

AttributeRequiredTypeDescription
nameNostringChart identifier
titleNostringChart title
chartNostringChart type
entityNostringData entity
rowsNostringRow dimension
columnsNostringColumn dimension
measureNostringMeasure field
panelheightNostringHeight in panel
onechartNostringSingle chart mode
verticalNostringVertical orientation
stackedNostringStacked bars

<crosstab>

Cross-tabulation report configuration.

Attributes:

AttributeRequiredTypeDescription
nameNostringCrosstab identifier
titleNostringTitle
entityNostringData entity
rowsNostringRow dimension
columnsNostringColumn dimension
measureNostringMeasure field
panelheightNostringHeight in panel

<report>

Report definition.

Attributes:

AttributeRequiredTypeDescription
nameNostringReport name
fileNostringReport file
locationNoenumFile location: application, repository, template
titleNostringReport title
panelheightNostringHeight in panel

Child Elements: <restrict>


<accordeon>

Accordion container for collapsible sections.

Attributes:

AttributeRequiredTypeDescription
nonexclusiveNostringAllow multiple open sections

Child Elements: <accordeonitem>


<accordeonitem>

Individual accordion section.

Attributes:

AttributeRequiredTypeDescription
nameNostringItem identifier
titleNostringSection title
visibleNostringInitially visible
iconNostringIcon code

<description>

Entity description text.

Content: Description text


<reference>

External reference definition.

Attributes:

AttributeRequiredTypeDescription
nameYesstringReference name
fileNostringReference file

<key>

Composite key definition within a defaultset.

Child Elements: <default>


<import>

Import external resource.

Attributes:

AttributeRequiredTypeDescription
urlNostringResource URL
nameNostringImport name
titleNostringImport title

Preprocessor Shorthand Reference

JFaster source files (.txt) are preprocessed before being converted to XML. The preprocessor supports various shorthand notations that make the source files more concise and readable.

Property Shortcuts

ShorthandExpands ToDescription
rrequired="required"Field is mandatory
requiredrequired="required"Field is mandatory (alternative)
ddisplay="primary"Show in listings and as entity description
dsdisplay="secondary"Show in listings only
hiddenhidden="hidden"Hide from forms
invisibleinvisible="invisible"Completely hidden (not in HTML)
fixedfixed="fixed"Display as text, not editable
disableddisabled="disabled"Show disabled input
readonlyreadonly="readonly"Read-only input
transienttransient="transient"Not persisted to database
autosuggestautosuggest="autosuggest"Enable autocomplete
eiembedded="inline"Embed child entity inline
xextendable="extendable"Allow adding rows
setcollection="set"Multi-valued Set collection
listcollection="list"Multi-valued List collection
sortedsetcollection="sortedset"Multi-valued SortedSet collection

Property Type Shortcuts

When a type keyword appears, it expands to type="...":

ShorthandExpands To
integertype="integer"
longtype="long"
doubletype="double"
floattype="float"
booleantype="boolean"
datetype="date"
datetimetype="datetime"
texttype="text"
longtexttype="longtext"
filetype="file"
imagetype="image"
enumtype="enum"
passwordtype="password"
emailtype="email"
phonetype="phone"

Property Label and Entity Shortcuts

PatternExpands ToDescription
"Label Text"label="Label Text"Custom label (underscores become spaces)
EntityNameentity="EntityName"Any PascalCase word becomes an entity reference

Property Line Continuation

End a property line with \ to add child elements:

company Company \
   <action type="openentity" label="View" />

Entity Shortcuts

ShorthandExpands ToDescription
@MenuNamemenu="MenuName"Place entity in menu (underscores become spaces)
@menu=""Entity with no menu (hidden from navigation)
&LabelTextlabel="LabelText"Custom entity label (underscores become spaces)
transienttransient="transient"Entity is not persisted

If no @ is specified, the entity defaults to menu="Administración".

If no & is specified, the label is auto-generated from the entity name using camelCase splitting (e.g., InvoiceLine → "Invoice Line").

Form Layout Shortcuts

ShorthandDescription
#tab LabelStart a new tab
#tab label="Label"Tab with explicit attribute
#box classNameLayout box with CSS class
##Line is ignored
!Title TextSection title

CSS Class Shortcuts

These class names are recognized as class="..." attributes:

ClassDescription
d0Display class 0
d1Display class 1
a0Alignment class 0
a1Alignment class 1
m50Margin/width 50%
m33Margin/width 33%

Complete Examples

Entity definition:

Person @CRM &People order="lastName asc"
   name d r
   lastName "Last Name" d r
   age integer
   email
   company Company subset="active"
   addresses Address set ei x childproperty="person"

Company @CRM
   name d r
   active boolean default="true"

   <subset name="active">
      <condition field="active" value="true" />
   </subset>

Expands to:

<entity menu="CRM" name="Person" label="People" order="lastName asc">
   <property name="name" display="primary" required="required" label="Name" />
   <property name="lastName" display="primary" required="required" label="Last Name" />
   <property name="age" type="integer" label="Age" />
   <property name="email" label="Email" />
   <property name="company" entity="Company" subset="active" label="Company" />
   <property name="addresses" entity="Address" collection="set" embedded="inline" extendable="extendable" childproperty="person" label="Addresses" />
</entity>

<entity menu="CRM" name="Company" label="Company">
   <property name="name" display="primary" required="required" label="Name" />
   <property name="active" type="boolean" default="true" label="Active" />

   <subset name="active">
      <condition field="active" value="true" />
   </subset>
</entity>

Transient entity:

SendEmail @ transient="transient"
   person Person fixed
   recipient r
   subject r
   body text

Property with child elements:

customer Customer d \
   <action type="openentity" label="View Details" />

Form with tabs:

Invoice @Sales

   #tab Main
      invoiceNumber d fixed
      invoiceDate date ds
      customer Customer d r

   #tab Lines
      lines InvoiceLine set ei x childproperty="invoice"