Home > Models

Types

This page presents Data Types supported by webMethods MDM. For the definition of tables, read the section Tables & Filters.

XML Schema Types

Standard XML Schema Data Types

Extended Types

Advanced 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
email 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="passwordtype="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 ="armdm:label ="Arabic"/>
                      <xs:enumeration value ="ar_AEmdm:label ="Arabic (United Arab Emirates)"/>
                      <xs:enumeration value ="ar_BHmdm:label ="Arabic (Bahrain)"/>
                      <xs:enumeration value ="ar_DZmdm:label ="Arabic (Algeria)"/>
                      <xs:enumeration value ="ar_EGmdm:label ="Arabic (Egypt)"/>
                      <xs:enumeration value ="ar_IQmdm:label ="Arabic (Iraq)"/>
                      ...
                      <xs:enumeration value ="vi_VNmdm:label ="Vietnamese (Vietnam)"/>
                      <xs:enumeration value ="zhmdm:label ="Chinese"/>
                      <xs:enumeration value ="zh_CNmdm:label ="Chinese (China)"/>
                      <xs:enumeration value ="zh_HKmdm:label ="Chinese (Hong Kong)"/>
                      <xs:enumeration value ="zh_TWmdm: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:element name="pricingminOccurs="0maxOccurs="unboundedmdm:access="RW">
     <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="amounttype="xs:integer">
                  <xs:annotation>
                      <xs:documentation>
                           <mdm:label>Amount borrowed</mdm:label>
                      </xs:documentation>
                  </xs:annotation>
             </xs:element>
             <xs:element name="monthlytype="xs:integer">
                 <xs:annotation>
                     <xs:documentation>
                         <mdm:label>Monthly payment </mdm:label>
                     </xs:documentation>
                 </xs:annotation>
             </xs:element>
             <xs:element name="costtype="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.
Exception: For nodes of type mdm:html or mdm:password, whitespaces are always preserved 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.

Note: webMethods MDM provides a complete Tables specification, that allows to organize and manage your Master Data as in relational databases.

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 Schema

Types de données standard XML Schema

Types Etendus

Types 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
email 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 ="armdm:label ="Arabic"/>
                      <xs:enumeration value ="ar_AEmdm:label ="Arabic (United Arab Emirates)"/>
                      <xs:enumeration value ="ar_BHmdm:label ="Arabic (Bahrain)"/>
                      <xs:enumeration value ="ar_DZmdm:label ="Arabic (Algeria)"/>
                      <xs:enumeration value ="ar_EGmdm:label ="Arabic (Egypt)"/>
                      <xs:enumeration value ="ar_IQmdm:label ="Arabic (Iraq)"/>
                      ...
                      <xs:enumeration value ="vi_VNmdm:label ="Vietnamese (Vietnam)"/>
                      <xs:enumeration value ="zhmdm:label ="Chinese"/>
                      <xs:enumeration value ="zh_CNmdm:label ="Chinese (China)"/>
                      <xs:enumeration value ="zh_HKmdm:label ="Chinese (Hong Kong)"/>
                      <xs:enumeration value ="zh_TWmdm: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:element name="pricingminOccurs="0maxOccurs="unboundedmdm:access="RW">
     <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="amounttype="xs:integer">
                  <xs:annotation>
                      <xs:documentation>
                           <mdm:label>Amount borrowed</mdm:label>
                      </xs:documentation>
                  </xs:annotation>
             </xs:element>
             <xs:element name="monthlytype="xs:integer">
                 <xs:annotation>
                     <xs:documentation>
                         <mdm:label>Monthly payment </mdm:label>
                     </xs:documentation>
                 </xs:annotation>
             </xs:element>
             <xs:element name="costtype="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.
Exception: Pour les noeuds de type mdm:html ou mdm:password, les espaces sont toujours preservés 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.

Note: webMethods MDM permet de définir des tables qui permettent d'organiser et de gérer des Master Data avec des fonctionnalités semblables aux bases de données relationnelles.

 

Home > Models