Continuing my commentary on tModels...
Odd Fact #2 - Interestingly, tModels are self-referential. In other words, a tModel can refer to itself within itself. For example, consider the granddaddy of tModels: the uddi-org types taxonomy tModel. No UDDI instance can function without this core tModel. It is axiomatic to the functioning of UDDI, as other tModels use this tModel for typing. Take a look at the XML representation of this file:
<uddi:tModel tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4"> <uddi:name>uddi-org:types</uddi:name> <uddi:description xml:lang="en">UDDI Type Taxonomy</uddi:description> <uddi:overviewDoc> <uddi:description xml:lang="en"> Taxonomy used to categorize Service Descriptions. </uddi:description> <uddi:overviewURL> http://www.uddi.org/taxonomies/Core_Taxonomy_OverviewDoc.htm#UDDItypes </uddi:overviewURL> </uddi:overviewDoc> <uddi:categoryBag> <uddi:keyedReference tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4" keyName="types" keyValue="categorization"/> </uddi:categoryBag> </uddi:tModel>Notice how the tModelKey is re-used as one of the keyedReference tModelKeys! Semantically, this tModel is categorized with itself. Nice.