Home > Models
Types
This page presents Data Types supported by webMethods MDM. For the definition of tables, read the section Tables & Filters.
XML Schema TypesStandard XML Schema Data Types |
Extended TypesAdvanced Data Types defined by webMethods MDM |
XML Schema Simple types
The table below lists all simple types defined in XML Schema and supported by webMethods MDM:
WXS type | Java class | |
string | primitive datatype | java.lang.String |
boolean | primitive datatype | java.lang.Boolean |
decimal | primitive datatype | java.math.BigDecimal |
dateTime | primitive datatype | java.util.Date |
time | primitive datatype | java.util.Date |
date | primitive datatype | java.util.Date |
anyURI | primitive datatype | java.net.URI |
Name | string restriction | java.lang.String |
int | decimal restriction | java.lang.Integer |
integer | decimal restriction | java.lang.Integer |
The right column indicate in which Java class each XML Schema type is instantiated in webMethods MDM. Correspondence rules between XML Schema types and Java types are detailed in the section Java / XML Schema Mapping.
Limitation of webMethods MDM current version: The type integer is not fully implemented by MDM since it is not infinite as specified by XML Schema. Hence it is preferrable to use type int.
XML Schema Complex types
Complex types can be defined when designing an adaptation model. A named complex type can be reused in the model.
Restrictions:
- In term of content model, only the tag <sequence> is allowed (in particular, the attribute definition is not supported)
- Type extension is not supported in current version of webMethods MDM
Extended Simple Types defined by webMethods MDM
webMethods MDM provides pre-defined simple data types:
WXS type | Java class | |
html | string restriction > | java.lang.String |
string restriction | java.lang.String | |
password | string restriction | java.lang.String |
resource | anyURI restriction | internal class |
locale | string restriction | java.util.Locale |
Those types are defined by the reserved schema common-1.0.xsd. Their definition is detailed below:
- html
This represents a character string with HTML format. A "wysiwyg" editor is provided in webMethods Master Data Manager to edit it.
<xs:simpleType name ="html">
<xs:restriction base ="xs:string"/>
</xs:simpleType> - email
This represents an email address as specified in RFC822.
<xs:simpleType name ="email">
<xs:restriction base ="xs:string"/>
</xs:simpleType> - password
This represents an encrypted password. A specific editor is provided in webMethods Master Data Manager to edit it.
<xs:element name="password" type="mdm:password" />The default editor performs an encryption with the SHA-256 algorithm. However it is possible to specify a different encryption class to use. This one must implement the 'interface com.softwareag.mdm.base.misc.encryption.EncryptionInterface.
<xs:element name="mot de passe" type="mdm:password">
<xs:annotation>
<xs:appinfo>
<mdm:uiBean class="com.softwareag.mdm.ui.UIPassword">
<encryptionClass>package.EncryptionClassName</encryptionClass>
</mdm:uiBean>
</xs:appinfo>
</xs:annotation>
</xs:element> - resource
This represents an webMethods MDM resource. A resource is a file of type image, html, css or javascript, stored into an webMethods MDM module. It requires the definition of the facet FacetOResource.
<xs:simpleType name ="resource">
<xs:restriction base ="xs:anyURI"/>
</xs:simpleType> - locale
This represents a geographical, political or cultural specific location. The locale type is translated into Java by the class java.util.Locale.
<xs:simpleType name ="locale">
<xs:restriction base ="xs:string">
<xs:enumeration value ="ar" mdm:label ="Arabic"/>
<xs:enumeration value ="ar_AE" mdm:label ="Arabic (United Arab Emirates)"/>
<xs:enumeration value ="ar_BH" mdm:label ="Arabic (Bahrain)"/>
<xs:enumeration value ="ar_DZ" mdm:label ="Arabic (Algeria)"/>
<xs:enumeration value ="ar_EG" mdm:label ="Arabic (Egypt)"/>
<xs:enumeration value ="ar_IQ" mdm:label ="Arabic (Iraq)"/>
...
<xs:enumeration value ="vi_VN" mdm:label ="Vietnamese (Vietnam)"/>
<xs:enumeration value ="zh" mdm:label ="Chinese"/>
<xs:enumeration value ="zh_CN" mdm:label ="Chinese (China)"/>
<xs:enumeration value ="zh_HK" mdm:label ="Chinese (Hong Kong)"/>
<xs:enumeration value ="zh_TW" mdm:label ="Chinese (Taiwan)"/>
</xs:restriction>
</xs:simpleType>
Extended Complex Types defined by webMethods MDM
Nomenclature
webMethods MDM defines a Nomenclature complex type: it is composed by a list of NomenclatureItem objects. A NomenclatureItem type contains a value and one or more labels.
The Nomenclature type is used by a drop-down menu, a list of radio-buttons or checkboxes. It is also used by dynamic enumeration facets.
As the value defined by NomenclatureItem is typed, a Nomenclature type is defined for each supported simple data type. The list of supported Nomenclature types (XML Schema) is detailed below:
WXS type |
Nomenclature_string |
Nomenclature_boolean |
Nomenclature_decimal |
Nomenclature_dateTime |
Nomenclature_time |
Nomenclature_date |
Nomenclature_anyURI |
Nomenclature_Name |
Nomenclature_integer |
Nomenclature_html |
Nomenclature_email |
Nomenclature_resource |
Nomenclature_locale |
The content of a Nomenclature is not adaptable in webMethods Master Data Manager.
In order to dynamically fill a nomenclature, you have to use a computed value if you want to read external values (i.e. data from a RDBMS), or another node defined as a "complex multi-occurrences" type.
Multiple Occurrences
In XML Schema the maximum number of times an element may appear is determined by the value of a maxOccurs attribute in its declaration. If this value is strictly greater than 1 or is equal to "unbounded", then the Master Data has inherently multiple occurrences. In Java it is represented as list (instance of java.util.List) .
Below is an example of a multiple occurrences element that defines the pricing of a loan product, depending on the amount borrowed.
<xs:annotation>
<xs:documentation>
<mdm:label>Pricing</mdm:label>
<mdm:description>Pricing grid </mdm:description>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="amount" type="xs:integer">
<xs:annotation>
<xs:documentation>
<mdm:label>Amount borrowed</mdm:label>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="monthly" type="xs:integer">
<xs:annotation>
<xs:documentation>
<mdm:label>Monthly payment </mdm:label>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="cost" type="xs:integer">
<xs:annotation>
<xs:documentation>
<mdm:label>Cost</mdm:label>
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
Multi-occurrences Master Data have a dedicated editor in webMethods Master Data Manager. This editor allows you to add occurrences with the link Add an occurrence or to delete occurrences with the button
webMethods MDM whitespaces management for Data Types
According to XML Schema (cf. http://www.w3.org/TR/xmlschema-2/#rf-whiteSpace), whitespaces handling must follow one of preserve, replace or collapse procedures:
- preserve. No normalization is done, the value is not changed
- replace. All occurrences of #x9 (tab), #xA (line feed) and #xD (carriage return) are replaced with #x20 (space)
- collapse. After the processing implied by replace, contiguous sequences of #x20's are collapsed to a single #x20, and leading and trailing #x20's are removed
webMethods MDM general management
webMethods MDM complies with XML Schema recommendation:
- For nodes of type xs:string (whether primary key element or not), whitespaces are always preserved and an empty string is never converted to null.
- For other nodes (non xs:string type), whitespaces are always collapsed and an empty string is converted to null.
Specific case for handling whitespaces on primary key of type string
For primary key columns of type xs:string, a default webMethods MDM constraint is defined. This constraint forbids empty string and non collapsed whitespaces values at validation level.
However, if the primary key node specifies its own xs:pattern facet, this last one overrides the default webMethods MDM constraint. For example, the specific pattern .* would accept any strings (note that we do not recommend this).
The default constraint allows to handle some ambiguities. For example, it should be difficult for a user to distinguish between the following strings: "12 34" and "12 34". For usual values, it does not create conflicts but for primary keys, it could create errors.
Types
Cette page présente les différents types de données supportés par webMethods MDM. Pour la définition de tables, veuillez vous reporter à la section Tables & Filtres .
Types XML SchemaTypes de données standard XML Schema |
Types EtendusTypes de données avancés fournis par webMethods MDM |
Types simples XML Schema
La table suivante liste tous les types simples définis dans XML Schema et supportés par webMethods MDM.
WXS type | Java class | |
string | primitive datatype | java.lang.String |
boolean | primitive datatype | java.lang.Boolean |
decimal | primitive datatype | java.math.BigDecimal |
dateTime | primitive datatype | java.util.Date |
time | primitive datatype | java.util.Date |
date | primitive datatype | java.util.Date |
anyURI | primitive datatype | java.net.URI |
Name | string restriction | java.lang.String |
int | decimal restriction | java.lang.Integer |
integer | decimal restriction | java.lang.Integer |
La colonne de droite indique en quelle classe Java chaque type XML Schema est instancié sur webMethods MDM. Les règles de correspondance entre types XML Schema et types Java sont détaillées dans la rubrique Mapping Java / XML Schema.
Limitation de la version actuelle: Le type integer n'est pas totalement implémentée par webMethods MDM 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 webMethods MDM
webMethods MDM fournit des types de données simples pré-définis :
WXS type | Java class | |
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.
- 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 webMethods Master Data 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="mot de passe" type="mdm: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 com.softwareag.mdm.base.misc.encryption.EncryptionInterface.
<xs:element name="mot de passe" type="mdm:password">
<xs:annotation>
<xs:appinfo>
<mdm:uiBean class="com.softwareag.mdm.ui.UIPassword">
<encryptionClass>package.nomClasseDeCryptage</encryptionClass>
</mdm:uiBean>
</xs:appinfo>
</xs:annotation>
</xs:element> - resource
Une instance de type resource représente une ressource webMethods MDM. Une ressource est un fichier de type image, html, css, ou javascript, localisé à l'intérieur d'un module webMethods MDM. 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" mdm:label ="Arabic"/>
<xs:enumeration value ="ar_AE" mdm:label ="Arabic (United Arab Emirates)"/>
<xs:enumeration value ="ar_BH" mdm:label ="Arabic (Bahrain)"/>
<xs:enumeration value ="ar_DZ" mdm:label ="Arabic (Algeria)"/>
<xs:enumeration value ="ar_EG" mdm:label ="Arabic (Egypt)"/>
<xs:enumeration value ="ar_IQ" mdm:label ="Arabic (Iraq)"/>
...
<xs:enumeration value ="vi_VN" mdm:label ="Vietnamese (Vietnam)"/>
<xs:enumeration value ="zh" mdm:label ="Chinese"/>
<xs:enumeration value ="zh_CN" mdm:label ="Chinese (China)"/>
<xs:enumeration value ="zh_HK" mdm:label ="Chinese (Hong Kong)"/>
<xs:enumeration value ="zh_TW" mdm:label ="Chinese (Taiwan)"/>
</xs:restriction>
</xs:simpleType>
Types complexes étendus définis par webMethods MDM
Nomenclature
webMethods MDM définit un type complexe Nomenclature : celui-ci est constitué d’une liste d’objets NomenclatureItem. Un type NomenclatureItem contient une valeur et un ou plusieurs libellés.
Le type Nomenclature est particulièrement adapté pour décrire un menu déroulant, une série de radio-boutons, ou une série de cases à cocher. Il est utilisé par les facettes énumération dynamiques.
Comme la valeur définie par NomenclatureItem est typée, un type de données Nomenclature est défini pour chaque type de données simple supporté. La liste des types Nomenclature (XML Schema) supportée est décrite ci-après :
WXS type |
Nomenclature_string |
Nomenclature_boolean |
Nomenclature_decimal |
Nomenclature_dateTime |
Nomenclature_time |
Nomenclature_date |
Nomenclature_anyURI |
Nomenclature_Name |
Nomenclature_integer |
Nomenclature_html |
Nomenclature_email |
Nomenclature_resource |
Nomenclature_locale |
Le contenu d'une Nomenclature n'est pas adaptable (éditable via webMethods Master Data Manager) directement.
Pour alimenter dynamiquement une nomenclature, utiliser une valeur calculée afin de lire un référentiel d'entreprise (SGBDR par exemple), ou un autre noeud du modèle (de type "complex multi-occurrences").
Multi-Occurrences
Ces types XML Schema permettent de créer des Master Data complexes qui disposent de plusieurs occurrences. Cela permet par exemple de créer des tableaux. En XML Schema, un type complexe multi-occurrence se décrit à l'aide de minOccurs="0" maxOccurs="unbounded"
Ci-dessous figurent un exemple de type complexe multi-occurrences permettant de définir la tarification d'un produit de crédit.
<xs:annotation>
<xs:documentation>
<mdm:label>Pricing</mdm:label>
<mdm:description>Pricing grid </mdm:description>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="amount" type="xs:integer">
<xs:annotation>
<xs:documentation>
<mdm:label>Amount borrowed</mdm:label>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="monthly" type="xs:integer">
<xs:annotation>
<xs:documentation>
<mdm:label>Monthly payment </mdm:label>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="cost" type="xs:integer">
<xs:annotation>
<xs:documentation>
<mdm:label>Cost</mdm:label>
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
Les types complexes multi-occurrences disposent d'un éditeur graphique dédié dans webMethods Master Data Manager : Cet éditeur permet d'ajouter des occurrences à l'aide du lien Ajouter une occurrence ou d'en supprimer à l'aide du bouton
Gestion des espaces sur les types de données par webMethods MDM
Conformément à XML Schema (cf. http://www.w3.org/TR/xmlschema-2/#rf-whiteSpace), la gestion des espaces pour un type donné doit suivre l'une des procedures suivantes :
- preserve. Aucune normalisation n'est faîte, la valeur initiale n'est pas modifiée
- replace. Toutes les occurrences de #x9 (tabulation), #xA (interligne) et #xD (retour charriot) sont remplacées par des occurrences de #x20 (espace)
- collapse. Après un traitement par la procédure replace, toutes les séquences de #x20 (espace) sont remplacées par un seul caractère #x20, et les espaces de début et de fin sont supprimés.
Procédure générale de webMethods MDM
webMethods MDM est conforme à la recommandation XML Schema :
- Pour les noeuds de type xs:string (clés primaires ou non), les espaces sont toujours preservés et la chaîne vide n'est jamais convertie à null.
- Pour les autres noeuds (différents du type xs:string), les espaces sont traités en suivant la procédure collapse et la chaîne vide est convertie à null.
Cas spécifique pour la gestion des espaces sur les clés primaires de type string
Pour les colonnes de clés primaires de type xs:string, webMethods MDM définit une contrainte par défaut. Cette contrainte interdit les chaînes vides et les valeurs dont les espaces ne sont pas "collapsés" à la validation.
Cependant, si le noeud de la clé primaire définit une facette xs:pattern, cette dernière remplace la contrainte par défaut de webMethods MDM. Par exemple, un pattern spécifique peut autoriser tout type de chaînes. Ce pattern peut donc avoir la forme suivante : .*. Ce cas de figure n'est cependant pas recommandé.
La contrainte par défaut permet d'empêcher certaines ambiguïtés. Par exemple, il sera difficile pour un utilisateur final de distinguer entre les chaînes de caractères suivantes : "12 34" et "12 34". Pour les valeurs usuelles cela ne pose pas de problèmes. En revanche, pour les clés primaires cela peut porter à confusion et provoquer des erreurs.
Home > Models