View Source

{panel}{toc}{panel}
\\
Petals Master allows to add custom Category and Identifier systems for Organizations, Services and Endpoints to the registry at startup.
\\
Category and Identifier systems are called TModel in the UDDI taxonomy.
\\
A Category system is a set of category values that could be added to Organization, Service or Endpoint to classify it. Petals Master comes with a set of UDDI standard classification systems : NAICS 1997 and 2002, UNSPSC and ISO 3166
Codes for names of countries or regions.
\\
An Identifier system is a set of identifer values that uniquely identify an Organization in a specific identification system. If one of your organizations is identified in a specific identification system you could add this identifier in the registry through the UI or WS API. Petals Master comes with a set of UDDI standard identification systems : Dun and Bradstreet D-U-N-S Number and Thomas Registry Suppliers.
\\
Standard UDDI Category and Identifier systems are registered at Petals Master startup thanks to an XML dataset available in "$\{petals-master-root\}/WEB-INF/classes/tmodel/" and called "base-tmodels.xml". You could add your custom Category and Identifier systems thanks to this file. Once added, they will be available in UI and WS API and then, they could be used with Services, Endpoints and Organizations.
\\
{warning}{color:#cc0000}{*}Caution{*}{color}\\
Don't remove standard TModels from "base-tmodels.xml". They are Petals Master requirements. {warning}
\\

h1. {color:#003f80}{*}Adding{*}{color} {color:#003f80}{*}custom{*}{color} {color:#003f80}{*}categorization{*}{color} {color:#003f80}{*}system{*}{color} {color:#003f80}{*}and{*}{color} {color:#003f80}{*}associated{*}{color} {color:#003f80}{*}values{*}{color}

\\
Here is a code snippet allowing to add a custom category to Petals Master registry at startup :
\\
{code:lang=xml}<tModel tModelKey="uddi:dragon.org:myCustomCategory">
<name>My Custom Category</name>
<description xml:lang="en"> Describe my custom category </description>
<overviewDoc>
<overviewURL useType="text">
http://dragon.org/MyCustomCategoryFullDescription.txt
</overviewURL>
</overviewDoc>
<overviewDoc>
<overviewURL useType="valueSet">
http://dragon.org/MyCustomCategory-valueSet.txt
</overviewURL>
</overviewDoc>
<categoryBag>
<keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types"/>
<keyedReference keyName="uddi-org:types:valueSet" keyValue="valueSet" tModelKey="uddi:uddi.org:categorization:types"/>
<keyedReference keyName="dragon.org:category:type" keyValue="all" tModelKey="uddi:uddi.org:categorization:general_keywords"/>
</categoryBag>
</tModel>{code}
The *tModel* element : a category system is a TModel in UDDI taxonomy. You could specify a key for this TModel with the *tModelKey* attribute. If you don't specify any key, Petals Master will generate a key for you. Keys must have the following form "uddi:$\{root.domain\}:_anythingElse_". For example, if the root domain specified in dragon.properties file is "mycompany.com", a valid key is "uddi:mycompany.com:foobar". If the key is generated by Petals Master, it will have the following form "uddi:$\{root.domain\}:_uuid_" where _uuid_ is an auto-generated unique identifier.

{warning}
{color:#cc0000}{*}Caution{*}{color}
if you specify your own keys, you're in charge of the unicity.&nbsp;{warning}

The *name* element : the name of the category system. Will be used to represent the category system in UI.

The *description* element : a human readable description of this category system. You could specify the language used for this description. Language is specified with a two letters country code as specified in the [{color:#003f80}{+}iso3166 specification{+}{color}. |http://www.iso.org/iso/fr/country_codes/iso_3166_code_lists.htm]









*overviewDoc* elements : they have two main purposes. A descriptive purpose. In this case, it will embed an *overviewUrl* element of *useType* "text", that point to a description URL. It will be used to provide a more detailed description of the category system. overviewDoc could also be used to specify a value set for this category system. In this case, it will embed an *overviewUrl* element of *useType* "valueSet", that point to a file listing all values and their related description. This value set file is a text file, each line is a "_value_" _"description_" couple separated by ";" character :

value1;description \-1

value2;description \-2

value3;description \-3

...

The *categoryBag* element : used to classify the categorization system. The first *keyedReference* embeded element must be unchanged, it specifies that this tModel is a category tModel. The second one is optional but required if you have associated a value set to this category (using the overviewDoc element of useType "valueSet"). The last keyedReference embeded element is used to specified to which entities this categorization system applies (allowed keyValue attribute are, "all" to specify that this category applies to Organization, Services and Endpoint, "businessService" applies only to Services, "businessEntity" applies only to Organizations and "bindingTemplate" applies only to Endpoints.

h1. {color:#003f80}{*}Adding{*}{color} {color:#003f80}{*}custom{*}{color} {color:#003f80}{*}identification{*}{color} {color:#003f80}{*}system{*}{color}

\\
Here is a code snippet allowing to add a custom identifier to Petals Master registry at startup :
\\
{code:lang=xml}<tModel tModelKey="uddi:dragon.org:myCustomIdentifier">
<name>My Custom Identifier</name>
<description xml:lang="en">Describe my custom identifier</description>
<overviewDoc>
<overviewURL useType="text">
http://dragon.org/MyCustomIdentifierFullDescription.txt
</overviewURL>
</overviewDoc>
<categoryBag>
<keyedReference keyName="uddi-org:types:identifier" keyValue="identifier" tModelKey="uddi:uddi.org:categorization:types"/>
<keyedReference keyName="dragon.org:category:type" keyValue="businessEntity" tModelKey="uddi:uddi.org:categorization:general_keywords"/>
</categoryBag>
</tModel> {code}
The *tModel* element : an identifier system is a TModel in UDDI taxonomy. You could specify a key for this TModel with the *tModelKey* attribute. If you don't specify any key, Petals Master will generate a key for you. Keys must have the following form "uddi:$\{root.domain\}:_anythingElse_". For exemple, if the root domain specified in *dragon.properties* file is "mycompany.com", a valid key is "uddi:mycompany.com:foobar". If the key is generated by Petals Master, it will have the following form "uddi:$\{root.domain\}:_uuid_" where _uuid_ is an auto-generated unique identifier.&nbsp;


{warning}{color:#cc0000}{*}Caution{*}{color}
if you specify your own keys, you're in charge of the unicity.&nbsp;{warning}

The *name* element : the name of the identifier system. Will be used to represent the identifier system in UI.&nbsp;

The *description* element : a human readable description of this identifier system. You could specify the language used for this description. Language is specified with a two letters country code as specified in the [{color:#003f80}{+}iso3166 specification{+}{color}.|http://www.iso.org/iso/fr/country_codes/iso_3166_code_lists.htm]









&nbsp;
*overviewDoc* elements : in the identifier case, they have only one main purpose, a descriptive purpose. In this case, it will embed an *overviewUrl* element of *useType* "text", that point to a description URL. It will be used to provide a more detailed description of the identifier system.&nbsp;

The *categoryBag* element : used to classify the identifier system. The first *keyedReference* embeded element must be unchanged, it specifies that this tModel is a category tModel. The second one must be unchanged too because identifier tmodels only apply to Organizations.