BOProperty

Label/description:
  • Propriété d'un Objet Métier: Objet représentant une propriété d'un BusinessObject.
  • Business Object Property: Object that represents a property of a BusinessObject.

Structure de l'objet métier [BOProperty]

BOProperty
 - labelM [BOStringM] (* Map)
 - descriptionM [BOStringM] (* Map)
 - boEnumValues [BOEnumValues]
   - boEnumItem [BOEnumItem] (*)
     - labelM [BOStringM] (* Map)
     - descriptionM [BOStringM] (* Map)
     - extension [BOExtension] (*)
   - boGroupBy [BOEnumValuesGroup] (*)
     - labelM [BOStringM] (* Map)
     - descriptionM [BOStringM] (* Map)
 - extension [BOExtension] (*)

Tableau des propriétés [BOProperty]

PropertyTypeCardinalityDefault

value
VisibleReadOnlyPersistentMin / MaxFormat / Unit
ts

TimeStamp

TimeStamp

long10truefalsetrue-

-
-

semantic

Type semantique

Type semantique

String

[enum]
1Dtruefalsetrue-

-
-

index

Index

Index

int1-1truefalsetrue-

-
-

name

Nom

Name

String1-truefalsetrue-

-
-

icon

Icon

Icon

javax.swing.Iconn [list]-truefalsetrue-

-
-

flagNotUse

Ne pas utiliser

Not use

boolean1falsetruefalsetrue-

-
-

flagVisible

Visible

Visible

boolean1truetruefalsetrue-

-
-

flagOptional

Optionnel

Optional

boolean1truetruefalsetrue-

-
-

flagAttributeXml

Attribut

Attribute

boolean1falsetruefalsetrue-

-
-

type

Type

Type

Class1class java.lang.Stringtruefalsetrue-

-
-

flagEnumeration

Type Enumeration

Enumeration type

boolean1falsetruefalsetrue-

-
-

flagBusinessObject

Type BusinessObject

BusinessObject type

boolean1falsetruefalsetrue-

-
-

boType

BO Name

BO Name

String1-truefalsetrue-

-
-

flagPropertyMulti

Propriété avec valeurs multiples

Property multi

boolean1falsetruefalsetrue-

-
-

refId

RefId

RefId

String1-truefalsetrue-

-
-

flagPropertyMap

Propriété avec valeurs multiples de type map

Property map

boolean1-truefalsetrue-

-
-

labelM

Label multi-langues

Label multilanguage

BusinessObject BOStringM n [list]-truefalsetrue-

-
-

descriptionM

Description multi-langues

Description multilanguage

BusinessObject BOStringM n [list]-truefalsetrue-

-
-

unit

Unité

Unit

String1-truefalsetrue-

-
-

accelerator

Raccouci clavier

Accelerator

String1-truefalsetrue-

-
-

flagPassword

Type Password

Password type

boolean1falsetruefalsetrue-

-
-

boEnumValues

Valeurs de l'énumération

Enumeration values

BusinessObject BOEnumValues 1-truefalsetrue-

-
-

defaultValue

Valeur par défaut

Default value

Object1-truefalsetrue-

-
-

suggestedValue

Valeur suggérée

Suggested value

Object1-truefalsetrue-

-
-

preferredSize

Preferred size

Preferred size

int1-truefalsetrue-

-
-

minSize

Longueur min

Min size

int1-1truefalsetrue-

-
-

maxSize

Longueur max

Max size

int1-1truefalsetrue-

-
-

displayFormat

Format pour l'affichage

Display format

String1-truefalsetrue-

-
-

editFormat

Format pour l'édition

Edit format

String1-truefalsetrue-

-
-

validationRegex

Expression régulière pour la validation

Regular expression for validation

String1-truefalsetrue-

-
-

editRegex

Expression régulière pour la validation (édition)

Edit regular expression

String1-truefalsetrue-

-
-

minValue

Valeur min

Min value

Object1-truefalsetrue-

-
-

maxValue

Valeur max

Max value

Object1-truefalsetrue-

-
-

propertyIdLink

propertyIdLink

propertyIdLink

String1-truefalsetrue-

-
-

suggestedMinValue

Valeur min suggérée

Suggested min value

Object1-truefalsetrue-

-
-

suggestedMaxValue

Valeur max suggérée

Suggested max value

Object1-truefalsetrue-

-
-

flagReadOnly

Lecture seule

Read-only

boolean1falsetruefalsetrue-

-
-

flagCalculated

Calculé

Calculated

boolean1falsetruefalsetrue-

-
-

flagPersistent

Persistent

Persistent

boolean1truetruefalsetrue-

-
-

historyId

Id historique

User param name

String1-truefalsetrue-

-
-

flagAutoValidation

Validation automatique

Automatic validation

boolean1truetruefalsetrue-

-
-

helpFilename

Nom du fichier d'aide

Help filename

String1-truefalsetrue-

-
-

extension

Extension

Extension

BusinessObject BOExtension n [list]-truefalsetrue-

-
-

parameter

Parameter

Parameter

Stringn [list]-truefalsetrue-

-
-

flagLineWrap

Couper les lignes

Wrap line

boolean1truetruefalsetrue-

-
-

flagScrollable

Scrollable / Chaine longue

Scrollable

boolean1falsetruefalsetrue-

-
-

flagGroup

Représente un groupe

Is group

boolean1falsetruefalsetrue-

-
-

groupName

Nom du groupe

Group Name

String1-truefalsetrue-

-
-

editorName

Nom de l'éditeur

Editor name

String1-truefalsetrue-

-
-

Liste des propriétés [BOProperty]

ts - TimeStamp [long]

Label/description:

    Propriétés
    • Type: long
    • Attribute XML: true
    • Optionnel: true
    • Index: 0
    • Read only: false
    • Persistent: true
    • Cardinality: 1
    • Default value: 0

    semantic - Type semantique [String - Enum]

    Label/description:

      Propriétés
      • Type: String
      • Attribute XML: true
      • Optionnel: true
      • Index: 1
      • Read only: false
      • Persistent: true
      • Cardinality: 1
      • Default value: D
      Liste des valeurs possibles
      IdValeurLabel
      DEFAULTdefault Label/description
      • Default
      IDid Label/description
      • ID
      FKfk Label/description
      • FK

      index - Index [int]

      Label/description:

      • Index: Index de la propriété.
      Propriétés
      • Type: int
      • Attribute XML: true
      • Optionnel: true
      • Index: 7
      • Read only: false
      • Persistent: true
      • Cardinality: 1
      • Default value: -1

      name - Nom [String]

      Label/description:

      • Nom: Nom de la propriété. Ce nom sert de clé dans le map des propriétés pour un BusinessObject. Par convention: -Utiliser la même convention que pour un attribut (débute par une lettre minuscule). ex: firstName. -les types boolean pourront commencer par flag. Ex: flagVisible.
      Propriétés
      • Type: String
      • Attribute XML: true
      • Optionnel: true
      • Index: 8
      • Read only: false
      • Persistent: true
      • Cardinality: 1

      icon - Icon [javax.swing.Icon]

      Label/description:

      • Icon: Icon
      • Icon: Icon
      Propriétés
      • Type: javax.swing.Icon
      • Attribute XML: false
      • Optionnel: true
      • Index: 8
      • Read only: false
      • Persistent: true
      • Cardinality: N (map)

      flagNotUse - Ne pas utiliser [boolean]

      Label/description:

      • Ne pas utiliser: Si le flag est true, alors cette propriété sera complètement ignorée par tous les modules.
      Propriétés
      • Type: boolean
      • Attribute XML: true
      • Optionnel: true
      • Index: 9
      • Read only: false
      • Persistent: true
      • Cardinality: 1
      • Default value: false

      flagVisible - Visible [boolean]

      Label/description:

      • Visible: Flag pour savoir si cette propriété peut être visible. Cette propriété est utiliser pour construire les écrans de manière générique. Si on définit cette propriété à false, on pourra tout de même la représenter dans un écran de manière non générique.
      Propriétés
      • Type: boolean
      • Attribute XML: true
      • Optionnel: true
      • Index: 10
      • Read only: false
      • Persistent: true
      • Cardinality: 1
      • Default value: true

      flagOptional - Optionnel [boolean]

      Label/description:

      • Optionnel: Flag pour savoir si cette propriété est optionnelle ou pas.
      Propriétés
      • Type: boolean
      • Attribute XML: true
      • Optionnel: true
      • Index: 11
      • Read only: false
      • Persistent: true
      • Cardinality: 1
      • Default value: true

      flagAttributeXml - Attribut [boolean]

      Label/description:

      • Attribut: Si le flag est true, alors cette propriété sera gérée comme un attribut en XML.
      Propriétés
      • Type: boolean
      • Attribute XML: true
      • Optionnel: true
      • Index: 12
      • Read only: false
      • Persistent: true
      • Cardinality: 1
      • Default value: false

      type - Type [Class]

      Label/description:

      • Type: Type de la valeur associée à cette propriété. On peut utiliser des primitives ou des types objets. De manière non exhaustive, sont supportés les types: -String: -boolean: -Number: (Integer, Short, Float, Double, Long primitive) -Date -File -BusinessObject: Toute classe dérivant de BusinessObject (mettre flagBusinessObject=true).
      Propriétés
      • Type: Class
      • Attribute XML: true
      • Optionnel: true
      • Index: 13
      • Read only: false
      • Persistent: true
      • Cardinality: 1
      • Default value: class java.lang.String

      flagEnumeration - Type Enumeration [boolean]

      Label/description:

      • Type Enumeration: Flag pour savoir si cette propriété est gérée par une énumération.
      Propriétés
      • Type: boolean
      • Attribute XML: true
      • Optionnel: true
      • Index: 14
      • Read only: false
      • Persistent: true
      • Cardinality: 1
      • Default value: false

      flagBusinessObject - Type BusinessObject [boolean]

      Label/description:

      • Type BusinessObject: true si le type est compatible avec BusinessObject.
      Propriétés
      • Type: boolean
      • Attribute XML: true
      • Optionnel: true
      • Index: 15
      • Read only: false
      • Persistent: true
      • Cardinality: 1
      • Default value: false

      boType - BO Name [String]

      Label/description:

      • BO Name: BO Name de l'objet métier associé à cette propriété, permet de retrouver le type pour les propriété de type BusinessObject.
      Propriétés
      • Type: String
      • Attribute XML: true
      • Optionnel: true
      • Index: 15
      • Read only: false
      • Persistent: true
      • Cardinality: 1

      flagPropertyMulti - Propriété avec valeurs multiples [boolean]

      Label/description:

      • Propriété avec valeurs multiples: True si la propriété peut être multiple, false sinon.
      Propriétés
      • Type: boolean
      • Attribute XML: true
      • Optionnel: true
      • Index: 16
      • Read only: false
      • Persistent: true
      • Cardinality: 1
      • Default value: false

      refId - RefId [String]

      Label/description:

      • RefId: Si la propriété est définie par référence, le refId est une concaténation du BOName.propertyName.
      Propriétés
      • Type: String
      • Attribute XML: true
      • Optionnel: true
      • Index: 16
      • Read only: false
      • Persistent: true
      • Cardinality: 1

      flagPropertyMap - Propriété avec valeurs multiples de type map [boolean]

      Label/description:

      • Propriété avec valeurs multiples de type map: True si la propriété peut être multiple, false sinon.
      Propriétés
      • Type: boolean
      • Attribute XML: true
      • Optionnel: true
      • Index: 16
      • Read only: false
      • Persistent: true
      • Cardinality: 1

      labelM - Label multi-langues [BusinessObject ]

      Label/description:

      • Label multi-langues: Label utilisé pour la représentation de cette propriété dans les interfaces graphiques. Ne pas utiliser de ':' à la fin.
      Propriétés
      • Type: BusinessObject BOStringM
      • Attribute XML: false
      • Optionnel: true
      • Index: 17
      • Read only: false
      • Persistent: true
      • Cardinality: N (map)

      descriptionM - Description multi-langues [BusinessObject ]

      Label/description:

      • Description multi-langues: Description multi-langues de la propriété.
      Propriétés
      • Type: BusinessObject BOStringM
      • Attribute XML: false
      • Optionnel: true
      • Index: 18
      • Read only: false
      • Persistent: true
      • Cardinality: N (map)

      unit - Unité [String]

      Label/description:

      • Unité: Unité de la propriété destinée à être affiché sous forme de label.
      Propriétés
      • Type: String
      • Attribute XML: true
      • Optionnel: true
      • Index: 19
      • Read only: false
      • Persistent: true
      • Cardinality: 1

      accelerator - Raccouci clavier [String]

      Label/description:

      • Raccouci clavier: Caractère 'accelerator' pour permettre la navigation dans les champs par le clavier. Attention, ce caractère peut dépendre de la langue.
      Propriétés
      • Type: String
      • Attribute XML: false
      • Optionnel: true
      • Index: 20
      • Read only: false
      • Persistent: true
      • Cardinality: 1

      flagPassword - Type Password [boolean]

      Label/description:

      • Type Password: Flag pour savoir si cette propriété est un password.
      Propriétés
      • Type: boolean
      • Attribute XML: true
      • Optionnel: true
      • Index: 21
      • Read only: false
      • Persistent: true
      • Cardinality: 1
      • Default value: false

      boEnumValues - Valeurs de l'énumération [BusinessObject ]

      Label/description:

      • Valeurs de l'énumération: Si la propriété est gérée par une énum, enumValues définit la liste des valeurs autorisées, sinon = null.
      Propriétés
      • Type: BusinessObject BOEnumValues
      • Attribute XML: false
      • Optionnel: true
      • Index: 22
      • Read only: false
      • Persistent: true
      • Cardinality: 1

      defaultValue - Valeur par défaut [Object]

      Label/description:

      • Valeur par défaut: Valeur par défaut de la propriété.
      Propriétés
      • Type: Object
      • Attribute XML: true
      • Optionnel: true
      • Index: 23
      • Read only: false
      • Persistent: true
      • Cardinality: 1

      suggestedValue - Valeur suggérée [Object]

      Label/description:

      • Valeur suggérée: Valeur suggérée. A la différence de la valeur par défaut, cette valeur n'est pas automatiquement utilisée, en général elle sera utilisée pour aider l'utilisateur.
      Propriétés
      • Type: Object
      • Attribute XML: false
      • Optionnel: true
      • Index: 24
      • Read only: false
      • Persistent: true
      • Cardinality: 1

      preferredSize - Preferred size [int]

      Label/description:

        Propriétés
        • Type: int
        • Attribute XML: true
        • Optionnel: true
        • Index: 24
        • Read only: false
        • Persistent: true
        • Cardinality: 1

        minSize - Longueur min [int]

        Label/description:

        • Longueur min: Size minimum autorisée. Cette propriété n'est pas compatible avec tous les types de données. Elle sera en revanche souvent utilisée avec le type String. (cas particulier -1: Aucune limitation.)
        Propriétés
        • Type: int
        • Attribute XML: true
        • Optionnel: true
        • Index: 25
        • Read only: false
        • Persistent: true
        • Cardinality: 1
        • Default value: -1

        maxSize - Longueur max [int]

        Label/description:

        • Longueur max: Size maximum autorisée. Cette propriété n'est pas compatible avec tous les types de données. Elle sera en revanche souvent utilisée avec le type String. (cas particulier -1: Aucune limitation.)
        Propriétés
        • Type: int
        • Attribute XML: true
        • Optionnel: true
        • Index: 26
        • Read only: false
        • Persistent: true
        • Cardinality: 1
        • Default value: -1

        displayFormat - Format pour l'affichage [String]

        Label/description:

        • Format pour l'affichage: Format pour affichage de la donnée, utilisé pour les nombres et les dates.
        Propriétés
        • Type: String
        • Attribute XML: false
        • Optionnel: true
        • Index: 27
        • Read only: false
        • Persistent: true
        • Cardinality: 1

        editFormat - Format pour l'édition [String]

        Label/description:

        • Format pour l'édition: Format pour affichage de la donnée, utilisé en saisie.
        Propriétés
        • Type: String
        • Attribute XML: false
        • Optionnel: true
        • Index: 28
        • Read only: false
        • Persistent: true
        • Cardinality: 1

        validationRegex - Expression régulière pour la validation [String]

        Label/description:

        • Expression régulière pour la validation: Regular expression pour valider le contenu de la propriété. Pour de la validation à la saisie, on utilisera editRegularExpression. Ici, ce sera une validation de deuxième niveau qui permettra de contrôler l'élément dans son ensemble (ex: forme de l'email xxx@xxx.xxx).
        Propriétés
        • Type: String
        • Attribute XML: false
        • Optionnel: true
        • Index: 29
        • Read only: false
        • Persistent: true
        • Cardinality: 1

        editRegex - Expression régulière pour la validation (édition) [String]

        Label/description:

        • Expression régulière pour la validation (édition): Regular expression pour limiter la saisie. En général, ce sera une expression régulière pour énumérer tous les caractères utilisable. Pour la saisie d'un email on aura par exemple [A-Za-z0-9-._@] pour limiter les possibilités de saisie. On utilisera ensuite validationRegularExpression pour valider la forme générale d'un email (xxx@xxx.xxx).
        Propriétés
        • Type: String
        • Attribute XML: false
        • Optionnel: true
        • Index: 30
        • Read only: false
        • Persistent: true
        • Cardinality: 1

        minValue - Valeur min [Object]

        Label/description:

        • Valeur min: Valeur mini permise. Cette propriété peut être de différents types, Number, Date, String, ... La valeur doit être compatible avec le type de la propriété. Saisie des différents types: -Number: utiliser '.' comme separateur decimal et ne pas utiliser de séparateur de millier. -Date: format internationnal: YYYY-mm-DD ou YYYY-mm-DD HH:MM -String: Ne peut pas utiliser certains caractères spéciaux (saut de ligne)
        Propriétés
        • Type: Object
        • Attribute XML: false
        • Optionnel: true
        • Index: 31
        • Read only: false
        • Persistent: true
        • Cardinality: 1

        maxValue - Valeur max [Object]

        Label/description:

        • Valeur max: Valeur maxi. Peut être de différents types, Number, Date, String, ...
        Propriétés
        • Type: Object
        • Attribute XML: false
        • Optionnel: true
        • Index: 32
        • Read only: false
        • Persistent: true
        • Cardinality: 1

        propertyIdLink - propertyIdLink [String]

        Label/description:

        • propertyIdLink: propertyIdLink
        Propriétés
        • Type: String
        • Attribute XML: true
        • Optionnel: true
        • Index: 32
        • Read only: false
        • Persistent: true
        • Cardinality: 1

        suggestedMinValue - Valeur min suggérée [Object]

        Label/description:

        • Valeur min suggérée: Valeur mini suggérée. Peut être de différents types, Number, Date, String, ... A la différence des valeurs min et max, il n'y aura pas de validation sur ces valeurs. en général, on affichera ces valeurs pour aider l'utilisateur.
        Propriétés
        • Type: Object
        • Attribute XML: false
        • Optionnel: true
        • Index: 33
        • Read only: false
        • Persistent: true
        • Cardinality: 1

        suggestedMaxValue - Valeur max suggérée [Object]

        Label/description:

        • Valeur max suggérée: Valeur maxi suggérée. Peut être de différents types, Number, Date, String, ... A la différence des valeurs min et max, il n'y aura pas de validations sur ces valeurs. en général, on affichera ces valeurs pour aider l'utilisateur.
        Propriétés
        • Type: Object
        • Attribute XML: false
        • Optionnel: true
        • Index: 34
        • Read only: false
        • Persistent: true
        • Cardinality: 1

        flagReadOnly - Lecture seule [boolean]

        Label/description:

        • Lecture seule: Flag pour savoir si cette propriété est en read-only. Si le businessObject parent est read-only, toutes les propriétés sont read-only.
        Propriétés
        • Type: boolean
        • Attribute XML: true
        • Optionnel: true
        • Index: 35
        • Read only: false
        • Persistent: true
        • Cardinality: 1
        • Default value: false

        flagCalculated - Calculé [boolean]

        Label/description:

        • Calculé: Flag pour déterminer si cette propriété est calculée. Si la propriété est calculée, elle doit aussi être en Read-only, et la méthode set associée n'est pas définie.
        Propriétés
        • Type: boolean
        • Attribute XML: true
        • Optionnel: true
        • Index: 36
        • Read only: false
        • Persistent: true
        • Cardinality: 1
        • Default value: false

        flagPersistent - Persistent [boolean]

        Label/description:

        • Persistent: Flag pour savoir si cette propriété est persistante.
        Propriétés
        • Type: boolean
        • Attribute XML: true
        • Optionnel: true
        • Index: 37
        • Read only: false
        • Persistent: true
        • Cardinality: 1
        • Default value: true

        historyId - Id historique [String]

        Label/description:

        • Id historique: Nom du paramètre permettant de sauvegarder les valeurs utilisateurs à l'aide d'un mécanisme standard.
        Propriétés
        • Type: String
        • Attribute XML: true
        • Optionnel: true
        • Index: 38
        • Read only: false
        • Persistent: true
        • Cardinality: 1

        flagAutoValidation - Validation automatique [boolean]

        Label/description:

        • Validation automatique: Flag pour savoir si cette propriété est tester automatiquement pour les validations.
        Propriétés
        • Type: boolean
        • Attribute XML: true
        • Optionnel: true
        • Index: 39
        • Read only: false
        • Persistent: true
        • Cardinality: 1
        • Default value: true

        helpFilename - Nom du fichier d'aide [String]

        Label/description:

        • Nom du fichier d'aide: Nom du fichier contenant l'aide relative à cette propriété.
        Propriétés
        • Type: String
        • Attribute XML: false
        • Optionnel: true
        • Index: 40
        • Read only: false
        • Persistent: true
        • Cardinality: 1

        extension - Extension [BusinessObject ]

        Label/description:

        • Extension: Extension
        • Extension: Extension
        Propriétés
        • Type: BusinessObject BOExtension
        • Attribute XML: false
        • Optionnel: true
        • Index: 40
        • Read only: false
        • Persistent: true
        • Cardinality: N (multi)

        parameter - Parameter [String]

        Label/description:

        • Parameter: Parameter.
        • Parameter: Parameter.
        Propriétés
        • Type: String
        • Attribute XML: false
        • Optionnel: true
        • Index: 40
        • Read only: false
        • Persistent: true
        • Cardinality: N (map)

        flagLineWrap - Couper les lignes [boolean]

        Label/description:

        • Couper les lignes: Flag pour savoir si, dans le cas d'une propriété de type texte, le text doit utiliser le wrap auto. Attention, cette propriété n'est utilisée que pour des valeurs de type String ou dérivés et si flagScrollable=true.
        Propriétés
        • Type: boolean
        • Attribute XML: true
        • Optionnel: true
        • Index: 41
        • Read only: false
        • Persistent: true
        • Cardinality: 1
        • Default value: true

        flagScrollable - Scrollable / Chaine longue [boolean]

        Label/description:

        • Scrollable / Chaine longue: Flag pour savoir si cette propriété doit être représentée dans un composant scrollable (verticalement).
        Propriétés
        • Type: boolean
        • Attribute XML: true
        • Optionnel: true
        • Index: 42
        • Read only: false
        • Persistent: true
        • Cardinality: 1
        • Default value: false

        flagGroup - Représente un groupe [boolean]

        Label/description:

        • Représente un groupe: True si cette propriété représente un groupe.
        Propriétés
        • Type: boolean
        • Attribute XML: true
        • Optionnel: true
        • Index: 44
        • Read only: false
        • Persistent: true
        • Cardinality: 1
        • Default value: false

        groupName - Nom du groupe [String]

        Label/description:

        • Nom du groupe: Nom du groupe si cette propriété doit être regroupée dans un groupe.
        Propriétés
        • Type: String
        • Attribute XML: true
        • Optionnel: true
        • Index: 45
        • Read only: false
        • Persistent: true
        • Cardinality: 1

        editorName - Nom de l'éditeur [String]

        Label/description:

        • Nom de l'éditeur: Nom de l'éditeur
        Propriétés
        • Type: String
        • Attribute XML: true
        • Optionnel: true
        • Index: 45
        • Read only: false
        • Persistent: true
        • Cardinality: 1

        Document XML [BOProperty]

        <?xml version="1.0" encoding="ISO-8859-1"?>
        <BOProperty ts="" semantic="" index="" name="" flagNotUse="" flagVisible="" 
            flagOptional="" flagAttributeXml="" type="" flagEnumeration=""
            flagBusinessObject="" boType="" flagPropertyMulti="" refId=""
            flagPropertyMap="" unit="" flagPassword="" defaultValue="" preferredSize=""
            minSize="" maxSize="" propertyIdLink="" flagReadOnly="" flagCalculated=""
            flagPersistent="" historyId="" flagAutoValidation="" flagLineWrap=""
            flagScrollable="" flagGroup="" groupName="" editorName="">
          <!--icon (*) -->
          <icon name=""/>
          <!--labelM (*) -->
          <labelM name="">
            <en/>
            <fr/>
            <es/>
            <de/>
          </labelM>
          <!--descriptionM (*) -->
          <descriptionM name="">
            <en/>
            <fr/>
            <es/>
            <de/>
          </descriptionM>
          <accelerator/>
          <boEnumValues>
            <!--boEnumItem (*)-->
            <boEnumItem name="" valueStr="" valueInt="" index="">
              <!--labelM (*) -->
              <labelM name="">
                <en/>
                <fr/>
                <es/>
                <de/>
              </labelM>
              <!--descriptionM (*) -->
              <descriptionM name="">
                <en/>
                <fr/>
                <es/>
                <de/>
              </descriptionM>
              <!--icon (*) -->
              <icon name=""/>
              <!--extension (*)-->
              <extension name="" valueInt="">
                <valueStr/>
              </extension>
              <!--parameter (*) -->
              <parameter name=""/>
            </boEnumItem>
            <!--boGroupBy (*)-->
            <boGroupBy name="" parentGroup="" propertyId="">
              <!--values (*) -->
              <values name=""/>
              <!--labelM (*) -->
              <labelM name="">
                <en/>
                <fr/>
                <es/>
                <de/>
              </labelM>
              <!--descriptionM (*) -->
              <descriptionM name="">
                <en/>
                <fr/>
                <es/>
                <de/>
              </descriptionM>
            </boGroupBy>
          </boEnumValues>
          <suggestedValue/>
          <displayFormat/>
          <editFormat/>
          <validationRegex/>
          <editRegex/>
          <minValue/>
          <maxValue/>
          <suggestedMinValue/>
          <suggestedMaxValue/>
          <helpFilename/>
          <!--extension (*)-->
          <extension name="" valueInt="">
            <valueStr/>
          </extension>
          <!--parameter (*) -->
          <parameter name=""/>
        </BOProperty>

        Schema XML [BOProperty]

        BOProperty.xs

        <?xml version="1.0" encoding="ISO-8859-1"?>
        <shema xmlns:xs="http://www.w3.org/2001/XMLSchema">
          <simpleType name="BOProperty.semantic">
            <restriction base="string">
              <enumeration value="default"/>
              <enumeration value="id"/>
              <enumeration value="fk"/>
            </restriction>
          </simpleType>
          <element name="BOStringM">
            <complexType>
              <sequence>
                <attribute name="name" type="xs:string"/>
                <element name="en" type="xs:string" minOccurs="0"/>
                <element name="fr" type="xs:string" minOccurs="0"/>
                <element name="es" type="xs:string" minOccurs="0"/>
                <element name="de" type="xs:string" minOccurs="0"/>
              </sequence>
            </complexType>
          </element>
          <element name="BOExtension">
            <complexType>
              <sequence>
                <attribute name="name" type="xs:string" use="optional"/>
                <element name="valueStr" type="xs:string" minOccurs="0"/>
                <attribute name="valueInt" type="xs:java.lang.Integer" use="optional"/>
              </sequence>
            </complexType>
          </element>
          <element name="BOEnumItem">
            <complexType>
              <sequence>
                <attribute name="name" type="xs:string" use="optional"/>
                <attribute name="valueStr" type="xs:string" use="optional"/>
                <attribute name="valueInt" type="xs:java.lang.Integer" use="optional"/>
                <element name="labelM" type="BOStringM" minOccurs="0" 
                    maxOccurs="unbounded">
                  <attribute name="name" type="xs:string"/>
                </element>
                <element name="descriptionM" type="BOStringM" minOccurs="0" 
                    maxOccurs="unbounded">
                  <attribute name="name" type="xs:string"/>
                </element>
                <attribute name="index" type="xs:int" use="optional"/>
                <element name="icon" type="xs:string" minOccurs="0" 
                    maxOccurs="unbounded">
                  <attribute name="name" type="xs:string"/>
                </element>
                <element name="extension" type="BOExtension" minOccurs="0" 
                    maxOccurs="unbounded"/>
                <element name="parameter" type="xs:string" minOccurs="0" 
                    maxOccurs="unbounded">
                  <attribute name="name" type="xs:string"/>
                </element>
              </sequence>
            </complexType>
          </element>
          <element name="BOEnumValuesGroup">
            <complexType>
              <sequence>
                <attribute name="name" type="xs:string" use="optional"/>
                <attribute name="parentGroup" type="xs:string" use="optional"/>
                <attribute name="propertyId" type="xs:string" use="optional"/>
                <element name="values" type="xs:string" minOccurs="0" 
                    maxOccurs="unbounded">
                  <attribute name="name" type="xs:string"/>
                </element>
                <element name="labelM" type="BOStringM" minOccurs="0" 
                    maxOccurs="unbounded">
                  <attribute name="name" type="xs:string"/>
                </element>
                <element name="descriptionM" type="BOStringM" minOccurs="0" 
                    maxOccurs="unbounded">
                  <attribute name="name" type="xs:string"/>
                </element>
              </sequence>
            </complexType>
          </element>
          <element name="BOEnumValues">
            <complexType>
              <sequence>
                <element name="boEnumItem" type="BOEnumItem" minOccurs="0" 
                    maxOccurs="unbounded"/>
                <element name="boGroupBy" type="BOEnumValuesGroup" minOccurs="0" 
                    maxOccurs="unbounded"/>
              </sequence>
            </complexType>
          </element>
          <element name="BOProperty">
            <complexType>
              <sequence>
                <attribute name="ts" type="xs:long" default="0" use="optional"/>
                <attribute name="semantic" type="BOProperty.semantic" default="D" 
                    use="optional"/>
                <attribute name="index" type="xs:int" default="-1" use="optional"/>
                <attribute name="name" type="xs:string" use="optional"/>
                <element name="icon" type="xs:string" minOccurs="0" 
                    maxOccurs="unbounded">
                  <attribute name="name" type="xs:string"/>
                </element>
                <attribute name="flagNotUse" type="xs:boolean" default="false" 
                    use="optional"/>
                <attribute name="flagVisible" type="xs:boolean" default="true" 
                    use="optional"/>
                <attribute name="flagOptional" type="xs:boolean" default="true" 
                    use="optional"/>
                <attribute name="flagAttributeXml" type="xs:boolean" default="false" 
                    use="optional"/>
                <attribute name="type" type="xs:string" default="class java.lang.String"
                    use="optional"/>
                <attribute name="flagEnumeration" type="xs:boolean" default="false" 
                    use="optional"/>
                <attribute name="flagBusinessObject" type="xs:boolean" default="false" 
                    use="optional"/>
                <attribute name="boType" type="xs:string" use="optional"/>
                <attribute name="flagPropertyMulti" type="xs:boolean" default="false" 
                    use="optional"/>
                <attribute name="refId" type="xs:string" use="optional"/>
                <attribute name="flagPropertyMap" type="xs:boolean" use="optional"/>
                <element name="labelM" type="BOStringM" minOccurs="0" 
                    maxOccurs="unbounded">
                  <attribute name="name" type="xs:string"/>
                </element>
                <element name="descriptionM" type="BOStringM" minOccurs="0" 
                    maxOccurs="unbounded">
                  <attribute name="name" type="xs:string"/>
                </element>
                <attribute name="unit" type="xs:string" use="optional"/>
                <element name="accelerator" type="xs:string" minOccurs="0"/>
                <attribute name="flagPassword" type="xs:boolean" default="false" 
                    use="optional"/>
                <element name="boEnumValues" type="BOEnumValues" minOccurs="0"/>
                <attribute name="defaultValue" type="xs:string" use="optional"/>
                <element name="suggestedValue" type="xs:string" minOccurs="0"/>
                <attribute name="preferredSize" type="xs:int" use="optional"/>
                <attribute name="minSize" type="xs:int" default="-1" use="optional"/>
                <attribute name="maxSize" type="xs:int" default="-1" use="optional"/>
                <element name="displayFormat" type="xs:string" minOccurs="0"/>
                <element name="editFormat" type="xs:string" minOccurs="0"/>
                <element name="validationRegex" type="xs:string" minOccurs="0"/>
                <element name="editRegex" type="xs:string" minOccurs="0"/>
                <element name="minValue" type="xs:string" minOccurs="0"/>
                <element name="maxValue" type="xs:string" minOccurs="0"/>
                <attribute name="propertyIdLink" type="xs:string" use="optional"/>
                <element name="suggestedMinValue" type="xs:string" minOccurs="0"/>
                <element name="suggestedMaxValue" type="xs:string" minOccurs="0"/>
                <attribute name="flagReadOnly" type="xs:boolean" default="false" 
                    use="optional"/>
                <attribute name="flagCalculated" type="xs:boolean" default="false" 
                    use="optional"/>
                <attribute name="flagPersistent" type="xs:boolean" default="true" 
                    use="optional"/>
                <attribute name="historyId" type="xs:string" use="optional"/>
                <attribute name="flagAutoValidation" type="xs:boolean" default="true" 
                    use="optional"/>
                <element name="helpFilename" type="xs:string" minOccurs="0"/>
                <element name="extension" type="BOExtension" minOccurs="0" 
                    maxOccurs="unbounded"/>
                <element name="parameter" type="xs:string" minOccurs="0" 
                    maxOccurs="unbounded">
                  <attribute name="name" type="xs:string"/>
                </element>
                <attribute name="flagLineWrap" type="xs:boolean" default="true" 
                    use="optional"/>
                <attribute name="flagScrollable" type="xs:boolean" default="false" 
                    use="optional"/>
                <attribute name="flagGroup" type="xs:boolean" default="false" 
                    use="optional"/>
                <attribute name="groupName" type="xs:string" use="optional"/>
                <attribute name="editorName" type="xs:string" use="optional"/>
              </sequence>
            </complexType>
          </element>
        </shema>

        DTD [BOProperty]

        BOProperty.dtd

        <!DOCTYPE BOProperty[
        <!ELEMENT BOProperty (icon*,labelM*,descriptionM*,accelerator?,boEnumValues?,
            suggestedValue?,displayFormat?,editFormat?,validationRegex?,editRegex?,
            minValue?,maxValue?,suggestedMinValue?,suggestedMaxValue?,helpFilename?,
            extension*,parameter*)>
        <!ATTLIST BOProperty ts CDATA #IMPLIED>
        <!ATTLIST BOProperty semantic (default|id|fk) D#IMPLIED>
        <!ATTLIST BOProperty index CDATA #IMPLIED>
        <!ATTLIST BOProperty name CDATA #IMPLIED>
        <!ATTLIST BOProperty flagNotUse  (true|false) #IMPLIED>
        <!ATTLIST BOProperty flagVisible  (true|false) #IMPLIED>
        <!ATTLIST BOProperty flagOptional  (true|false) #IMPLIED>
        <!ATTLIST BOProperty flagAttributeXml  (true|false) #IMPLIED>
        <!ATTLIST BOProperty type CDATA #IMPLIED>
        <!ATTLIST BOProperty flagEnumeration  (true|false) #IMPLIED>
        <!ATTLIST BOProperty flagBusinessObject  (true|false) #IMPLIED>
        <!ATTLIST BOProperty boType CDATA #IMPLIED>
        <!ATTLIST BOProperty flagPropertyMulti  (true|false) #IMPLIED>
        <!ATTLIST BOProperty refId CDATA #IMPLIED>
        <!ATTLIST BOProperty flagPropertyMap  (true|false) #IMPLIED>
        <!ATTLIST BOProperty unit CDATA #IMPLIED>
        <!ATTLIST BOProperty flagPassword  (true|false) #IMPLIED>
        <!ATTLIST BOProperty defaultValue CDATA #IMPLIED>
        <!ATTLIST BOProperty preferredSize CDATA #IMPLIED>
        <!ATTLIST BOProperty minSize CDATA #IMPLIED>
        <!ATTLIST BOProperty maxSize CDATA #IMPLIED>
        <!ATTLIST BOProperty propertyIdLink CDATA #IMPLIED>
        <!ATTLIST BOProperty flagReadOnly  (true|false) #IMPLIED>
        <!ATTLIST BOProperty flagCalculated  (true|false) #IMPLIED>
        <!ATTLIST BOProperty flagPersistent  (true|false) #IMPLIED>
        <!ATTLIST BOProperty historyId CDATA #IMPLIED>
        <!ATTLIST BOProperty flagAutoValidation  (true|false) #IMPLIED>
        <!ATTLIST BOProperty flagLineWrap  (true|false) #IMPLIED>
        <!ATTLIST BOProperty flagScrollable  (true|false) #IMPLIED>
        <!ATTLIST BOProperty flagGroup  (true|false) #IMPLIED>
        <!ATTLIST BOProperty groupName CDATA #IMPLIED>
        <!ATTLIST BOProperty editorName CDATA #IMPLIED>
        
        <!ELEMENT icon (#PCDATA)>
        <!ATTLIST icon name CDATA #REQUIRED>
        <!ELEMENT labelM (en?,fr?,es?,de?)>
        <!ATTLIST labelM name CDATA #REQUIRED>
        <!ELEMENT en (#PCDATA)>
        
        <!ELEMENT fr (#PCDATA)>
        
        <!ELEMENT es (#PCDATA)>
        
        <!ELEMENT de (#PCDATA)>
        
        <!ELEMENT descriptionM (en?,fr?,es?,de?)>
        <!ATTLIST descriptionM name CDATA #REQUIRED>
        <!ELEMENT accelerator (#PCDATA)>
        
        <!ELEMENT boEnumValues (boEnumItem*,boGroupBy*)>
        
        <!ELEMENT boEnumItem (labelM*,descriptionM*,icon*,extension*,parameter*)>
        <!ATTLIST boEnumItem name CDATA #IMPLIED>
        <!ATTLIST boEnumItem valueStr CDATA #IMPLIED>
        <!ATTLIST boEnumItem valueInt CDATA #IMPLIED>
        <!ATTLIST boEnumItem index CDATA #IMPLIED>
        
        <!ELEMENT extension (valueStr?)>
        <!ATTLIST extension name CDATA #IMPLIED>
        <!ATTLIST extension valueInt CDATA #IMPLIED>
        
        <!ELEMENT valueStr (#PCDATA)>
        
        <!ELEMENT parameter (#PCDATA)>
        <!ATTLIST parameter name CDATA #REQUIRED>
        <!ELEMENT boGroupBy (values*,labelM*,descriptionM*)>
        <!ATTLIST boGroupBy name CDATA #IMPLIED>
        <!ATTLIST boGroupBy parentGroup CDATA #IMPLIED>
        <!ATTLIST boGroupBy propertyId CDATA #IMPLIED>
        
        <!ELEMENT values (#PCDATA)>
        <!ATTLIST values name CDATA #REQUIRED>
        <!ELEMENT suggestedValue (#PCDATA)>
        
        <!ELEMENT displayFormat (#PCDATA)>
        
        <!ELEMENT editFormat (#PCDATA)>
        
        <!ELEMENT validationRegex (#PCDATA)>
        
        <!ELEMENT editRegex (#PCDATA)>
        
        <!ELEMENT minValue (#PCDATA)>
        
        <!ELEMENT maxValue (#PCDATA)>
        
        <!ELEMENT suggestedMinValue (#PCDATA)>
        
        <!ELEMENT suggestedMaxValue (#PCDATA)>
        
        <!ELEMENT helpFilename (#PCDATA)>
        
        ]>