Home > Models
Types
Cette page présente les différents types de données supportés par EBX.Platform. Pour la définition de tables, veuillez vous reporter à la section Tables & Filtres .
- Types simples XML Schema
- Types complexes XML Schema
- Types simples étendus définis par EBX.Platform
- Types complexes définis par EBX.Platform
- Listes agrégées
Types simples XML Schema
La table suivante liste tous les types simples définis dans XML Schema et supportés par EBX.Platform.
|
WXS type |
Java class | |
|
primitive datatype |
java.lang.String | |
|
primitive datatype |
java.lang.Boolean | |
|
primitive datatype |
java.math.BigDecimal | |
|
primitive datatype |
java.util.Date | |
|
primitive datatype |
java.util.Date | |
|
primitive datatype |
java.util.Date | |
|
primitive datatype |
java.net.URI | |
|
string restriction |
java.lang.String | |
|
decimal restriction |
java.lang.Integer | |
|
decimal restriction |
java.lang.Integer |
La colonne de droite indique en quelle classe Java chaque type XML Schema est instancié sur EBX.Platform. Les règles de correspondance entre types XML Schema et types Java sont détaillées dans le chapitre Mapping to Java .
Limitation de la version actuelle: Le type integer n'est pas totalement implémenté par EBX.Platform car il n'est pas infini comme spécifié par XML Schema. Il est par conséquent préférable d'utiliser le type int .
Types complexes XML Schema
Tout type complexe XML Schema peut être utilisé lors de la conception du modèle de données. Un type complexe nommé peut être réutilisé autant de fois que nécessaire.
Restrictions :
-
en terme de contenu, seule la balise
<sequence>est autorisée (en particulier, la définition d’attributs n’est pas supportée) ; -
l’extension de type nommé n’est pas supportée dans la version actuelle.
Types simples étendus définis par EBX.Platform
EBX.Platform fournit des types de données simples pré-définis :
|
WXS type |
Java class | |
|
text |
string restriction |
java.lang.String |
|
html |
string restriction |
java.lang.String |
|
|
string restriction |
java.lang.String |
|
password |
string restriction |
java.lang.String |
|
resource |
anyURI restriction |
classe interne |
|
locale |
string restriction |
java.util.Locale |
Ces types sont définis par le schéma réservé common-1.0.xsd . Leur définition est détaillée ci-dessous.
-
text
Représente une information textuelle. Vis à vis de la chaîne de caractères simple (
xs:string), l'interface utilisateur qu'offre par défaut EBX.Manager est un éditeur multi-lignes.<xs:simpleType name="text">
<xs:restriction base="xs:string" />
</xs:simpleType> -
html
Une instance de type html représente une chaîne de caractères au format HTML. Un éditeur "wysiwyg" dédié est disponible dans EBX.Manager pour éditer ces instances.
<xs:simpleType name="html">
<xs:restriction base="xs:string"/>
</xs:simpleType> -
email
Une instance de type email représente une adresse email, comme défini dans RFC822.
<xs:simpleType name="email">
<xs:restriction base="xs:string"/>
</xs:simpleType> -
password
Une instance de type password représentant un mot de passe crypté. Ce type est associé à un composant graphique spécifique à la saisie de mots de passe (avec confirmation de la saisie).
<xs:element name="password" type="osd:password"/>
Par défaut, le mot de passe est crypté en utilisant l'algorithme de cryptage SHA-256. Il est cependant possible de spécifier la classe de cryptage à utiliser. Celle-ci doit implémenter l'interface
Encryption.<xs:element name="password" type="osd:password">
<xs:annotation>
<xs:appinfo>
<osd:uiBean class="com.orchestranetworks.ui.UIPassword">
<encryptionClass>package.EncryptionClassName</encryptionClass>
</osd:uiBean>
</xs:appinfo>
</xs:annotation>
</xs:element> -
resource
Une instance de type 'resource' représente une ressource EBX.Platform. Une ressource est un fichier de type image, html, css, ou javascript, localisé à l'intérieur d'un module EBX.Platform. Ce type nécessite de définir une facette FacetOResource .
<xs:simpleType name="resource">
<xs:restriction base="xs:anyURI"/>
</xs:simpleType> -
locale
Une instance de type locale représente une région géographique, politique ou culturelle spécifique. Le type locale se traduit en Java par la classe
java.util.Locale.<xs:simpleType name="locale">
<xs:restriction base="xs:string">
<xs:enumeration value="ar" osd:label="Arabic"/>
<xs:enumeration value="ar_AE" osd:label="Arabic (United Arab Emirates)"/>
<xs:enumeration value="ar_BH" osd:label="Arabic (Bahrain)"/>
<xs:enumeration value="ar_DZ" osd:label="Arabic (Algeria)"/>
<xs:enumeration value="ar_EG" osd:label="Arabic (Egypt)"/>
<xs:enumeration value="ar_IQ" osd:label="Arabic (Iraq)"/>
...
<xs:enumeration value="vi_VN" osd:label="Vietnamese (Vietnam)"/>
<xs:enumeration value="zh" osd:label="Chinese"/>
<xs:enumeration value="zh_CN" osd:label="Chinese (China)"/>
<xs:enumeration value="zh_HK" osd:label="Chinese (Hong Kong)"/>
<xs:enumeration value="zh_TW" osd:label="Chinese (Taiwan)"/>
</xs:restriction>
</xs:simpleType>
Types complexes définis par EBX.Platform
EBX.Platform fournit des types de données complexes pré-définis :
|
WXS type |
Description |
|
UDA |
User Defined Attribute (UDA) : ce type permet à un utilisateur de définir, en accord avec les droits d'accès, une valeur associée à un attribut choisi dans un dictionnaire appelé Catalogue UDA (voir ci-dessous). |
|
UDACatalog |
User Defined Attributes Catalog : définit la table dans laquelle les types peuvent être déclarés. Ce catalogue sera utilisé par tous les osd:UDA declarés dans un même schéma. |
-
uda
Un UDA supporte les paramètres
minOccursetmaxOccursainsi queosd:UDACatalogPathpour spécifier le chemin vers le catalogue correspondant..
Dans le manager, un UDA ressemble à :<xs:element name="firstUDA" type="osd:UDA" minOccurs="0"
maxOccurs="unbounded" osd:UDACatalogPath="//insuranceCatalog" />
<xs:element name="secondUDA" type="osd:UDA" minOccurs="1"
maxOccurs="1" osd:UDACatalogPath="/root/userCatalog" />
<xs:element name="thirdUDA" type="osd:UDA" minOccurs="0"
maxOccurs="1" osd:UDACatalogPath="//userCatalog" />
Comme vu sur l'image précédente, en fonction du type choisi, l'affichage s'adapte.

Tous les types disponibles sont ceux déclarés dans le catalogue.
-
UDACatalog
Un catalogue est une table. Les paramètres
minOccursetmaxOccurssont à préciser.Plusieurs catalogues peuvent être spécifiés au sein d'un schéma.
Dans le Manager, le catalogue UDA Catalog est une table<xs:element name="insuranceCatalog" type="osd:UDACatalog"
minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation xml:lang="en-US">Insurance Catalog.</xs:documentation>
<xs:documentation xml:lang="fr-FR">Catalog assurance.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="userCatalog" type="osd:UDACatalog"
minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation xml:lang="en-US">User catalog.</xs:documentation>
<xs:documentation xml:lang="fr-FR">Catalogue utilisateur.</xs:documentation>
</xs:annotation>
</xs:element>
Seuls les types suivants sont disponibles pour la création des attributs :
-
xs:string
-
xs:boolean
-
xs:decimal
-
xs:dateTime
-
xs:time
-
xs:date
-
xs:anyURI
-
xs:Name
-
xs:int
-
osd:html
-
osd:email
-
osd:password
-
osd:locale
-
osd:text
-
Listes agrégées
Dans XML Schema, le nombre maximum d'occurrences d'un élément est spécifié par la valeur de son attribut
maxOccurs . Si cette valeur est strictement supérieure à 1 ou égale à
unbounded , alors plusieurs occurrences peuvent être associées à l'élément considéré. Si la déclaration
osd:table n'est pas ajoutée, nous appelons ce cas une
liste agrégée . En Java, la valorisation d'un tel élément est représentée par une instance de la classe
java.util.List .
Remarque importante : il est recommandé, dans la phase de conception, de considérer sérieusement l'ajout de la déclaration
osd:table à chaque élément pour lequel
maxOccurs > 1 . En effet, les listes agrégées sont sévèrement limitées vis à vis des nombreuses caractéristiques qui sont supportées par les tables. Pour rappel, en voici quelques-unes : filtres et recherches ; tris, vues personnalisées et affichage en hiérarchies ; contraintes d'identité (clés primaires et contraintes d'unicité) ; permissions détaillées pour créer, modifier, supprimer et permissions individuelles de niveau occurrence ; comparaison et fusion détaillées ; optimisations de performance et d'occupation mémoire. Ainsi,
les listes agrégées doivent être utilisées uniquement pour de petits volumes de données simples (une ou deux dizaines d'occurrences), et s'il n'y a pas de besoins avancés . Pour des volumes plus importants ou des fonctionnalités avancées, il est fortement recommandé d'utiliser une déclaration
osd:table .
Pour plus d'informations sur les déclarations de table, veuillez consulter le chapitre suivant .
Ci-dessous figure un exemple de liste agrégée définissant la tarification d'un produit de crédit.
<xs:annotation>
<xs:documentation>
<osd:label>Pricing</osd:label>
<osd:description>Pricing grid </osd:description>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="amount" type="xs:integer">
<xs:annotation>
<xs:documentation>
<osd:label>Amount borrowed</osd:label>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="monthly" type="xs:integer">
<xs:annotation>
<xs:documentation>
<osd:label>Monthly payment </osd:label>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="cost" type="xs:integer">
<xs:annotation>
<xs:documentation>
<osd:label>Cost</osd:label>
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
Les listes agrégées disposent d'un éditeur graphique dédié dans
EBX.Manager : Cet éditeur permet d'ajouter des occurrences à l'aide du lien 'Ajouter une occurrence' ou d'en supprimer à l'aide du bouton ![]()
Home > Models