JUDDI-896 resolved a number of typos and formatting issues
JUDDI-241 business, service, binding templates and models now replicate
diff --git a/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java b/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
index 767cbee..fb0e00e 100644
--- a/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
+++ b/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
@@ -49,7 +49,10 @@
 	public static final int AUTHTOKEN_ACTIVE = 1;

 	public static final int AUTHTOKEN_RETIRED = 0;

 	static final Log logger = LogFactory.getLog(AuthenticatedService.class);

-	protected String node = "UNDEFINED_NODE_NAME";

+        /**

+         * the node id of this server instance, as loaded from the config file

+         */

+	protected static String node = "UNDEFINED_NODE_NAME";

         protected String baseUrlSSL="UNDEFINED";

          protected String baseUrl="UNDEFINED";

         

diff --git a/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java b/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
index dd201fe..1b6b019 100644
--- a/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
+++ b/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
@@ -125,7 +125,7 @@
  */

 @WebService(serviceName = "JUDDIApiService",

         endpointInterface = "org.apache.juddi.v3_service.JUDDIApiPortType",

-        targetNamespace = "urn:juddi-apache-org:v3_service", wsdlLocation =  "classpath:/juddi_api_v1.wsdl")

+        targetNamespace = "urn:juddi-apache-org:v3_service", wsdlLocation = "classpath:/juddi_api_v1.wsdl")

 public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortType {

 

         private Log log = LogFactory.getLog(this.getClass());

@@ -1276,6 +1276,7 @@
                 try {

                         tx.begin();

 

+                        org.uddi.repl_v3.ReplicationConfiguration oldConfig = null;

                         UddiEntityPublisher publisher = this.getEntityPublisher(em, authInfo);

                         if (!((Publisher) publisher).isAdmin()) {

                                 throw new UserMismatchException(new ErrorMessage("errors.AdminReqd"));

@@ -1289,9 +1290,9 @@
                         }

                         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddkkmmZ");

                         if (model == null) {

-                                //this is a brand new configuration

+                                //this is a brand new configuration and we didn't have one before

                                 model = new ReplicationConfiguration();

-                                MappingApiToModel.mapReplicationConfiguration(replicationConfiguration, model,em);

+                                MappingApiToModel.mapReplicationConfiguration(replicationConfiguration, model, em);

                                 model.setSerialNumber(System.currentTimeMillis());

                                 model.setTimeOfConfigurationUpdate(sdf.format(new Date()));

                                 em.persist(model);

@@ -1305,17 +1306,20 @@
                                 //spec doesn't appear to mention if recording a change history on the config is required

                                 //assuming not.

                                 //em.remove(model);

-                                model = new ReplicationConfiguration();

-                                MappingApiToModel.mapReplicationConfiguration(replicationConfiguration, model, em);

-                                model.setSerialNumber(System.currentTimeMillis());

+                                oldConfig = new org.uddi.repl_v3.ReplicationConfiguration();

+                                MappingModelToApi.mapReplicationConfiguration(model, oldConfig);

 

-                                model.setTimeOfConfigurationUpdate(sdf.format(new Date()));

-                                em.merge(model);

+                                ReplicationConfiguration model2 = new ReplicationConfiguration();

+                                MappingApiToModel.mapReplicationConfiguration(replicationConfiguration, model2, em);

+                                model2.setSerialNumber(System.currentTimeMillis());

+

+                                model2.setTimeOfConfigurationUpdate(sdf.format(new Date()));

+                                em.persist(model2);

 

                         }

 

                         tx.commit();

-                        //UDDIReplicationImpl.notifyConfigurationChange(replicationConfiguration);

+                        UDDIReplicationImpl.notifyConfigurationChange(oldConfig, replicationConfiguration);

                         long procTime = System.currentTimeMillis() - startTime;

                         serviceCounter.update(JUDDIQuery.SET_REPLICATION_NODES,

                                 QueryStatus.SUCCESS, procTime);

@@ -1324,12 +1328,11 @@
                         serviceCounter.update(JUDDIQuery.SET_REPLICATION_NODES,

                                 QueryStatus.FAILED, procTime);

                         throw drfm;

-                } catch (Exception ex){

-                        logger.error(ex,ex);

+                } catch (Exception ex) {

+                        logger.error(ex, ex);

                         JAXB.marshal(replicationConfiguration, System.out);

                         throw new FatalErrorException(new ErrorMessage("E_fatalError", ex.getMessage()));

-                }

-                finally {

+                } finally {

                         if (tx.isActive()) {

                                 tx.rollback();

                         }

@@ -1381,11 +1384,11 @@
                         op.setOperatorNodeID(node);

                         op.setSoapReplicationURL(baseUrlSSL + "/services/replication");

                         //TODO lookup from the root business

-                       

+

                         op.getContact().add(new Contact());

                         op.getContact().get(0).getPersonName().add(new PersonName("Unknown", null));

                         op.setOperatorStatus(OperatorStatusType.NORMAL);

-                        

+

                         r.getOperator().add(op);

                         r.getCommunicationGraph().getNode().add(node);

                         r.getCommunicationGraph().getControlledMessage().add("*");

diff --git a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java
index 5c3b22c..bb2d17c 100644
--- a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java
+++ b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java
@@ -21,10 +21,12 @@
 import java.rmi.RemoteException;

 import java.util.ArrayList;

 import java.util.HashMap;

+import java.util.HashSet;

 import java.util.Iterator;

 import java.util.List;

 import java.util.Map;

 import java.util.Queue;

+import java.util.Set;

 import java.util.Timer;

 import java.util.TimerTask;

 import java.util.concurrent.ConcurrentLinkedDeque;

@@ -104,6 +106,55 @@
         static void notifyConfigurationChange(ReplicationConfiguration oldConfig, ReplicationConfiguration newConfig) {

 

                 //if the config is different

+                Set<String> oldnodes = getNodes(oldConfig);

+                Set<String> newNodes = getNodes(newConfig);

+

+                Set<String> addedNodes = diffNodeList(oldnodes, newNodes);

+                if (queue == null) {

+                        queue = new ConcurrentLinkedDeque<NotifyChangeRecordsAvailable>();

+                }

+                for (String s : addedNodes) {

+                        if (!s.equals(node)) {

+                                logger.info("This node: " + node + ". New replication node queue for synchronization: " + s);

+                                HighWaterMarkVectorType highWaterMarkVectorType = new HighWaterMarkVectorType();

+                                highWaterMarkVectorType.getHighWaterMark().add(new ChangeRecordIDType(s, 0L));

+                                queue.add(new NotifyChangeRecordsAvailable(s, highWaterMarkVectorType));

+                        }

+                }

+

+        }

+

+        private static Set<String> getNodes(ReplicationConfiguration oldConfig) {

+                Set<String> ret = new HashSet<String>();

+                if (oldConfig == null) {

+                        return ret;

+                }

+                for (org.uddi.repl_v3.Operator o : oldConfig.getOperator()) {

+                        ret.add(o.getOperatorNodeID());

+                }

+                if (oldConfig.getCommunicationGraph() != null) {

+                        ret.addAll(oldConfig.getCommunicationGraph().getNode());

+                }

+                return ret;

+        }

+

+        private static Set<String> diffNodeList(Set<String> oldnodes, Set<String> newNodes) {

+                Set<String> diff = new HashSet<String>();

+                Iterator<String> iterator = null;

+                /*oldnodes.iterator();

+                 while (iterator.hasNext()){

+                 String lhs=iterator.next();

+                 if (!newNodes.contains(lhs))

+                 diff.add(lhs);

+                 }*/

+                iterator = newNodes.iterator();

+                while (iterator.hasNext()) {

+                        String lhs = iterator.next();

+                        if (!oldnodes.contains(lhs)) {

+                                diff.add(lhs);

+                        }

+                }

+                return diff;

         }

 

         private UDDIServiceCounter serviceCounter;

@@ -179,17 +230,19 @@
                                                 try {

                                                         //get the high water marks for this node

                                                         //ok now get all the changes

-                                                        logger.info("fetching updates on, since ");

-                                                        for (int xx = 0; xx < poll.getChangesAvailable().getHighWaterMark().size(); xx++) {

-                                                                logger.info("Node " + poll.getChangesAvailable().getHighWaterMark().get(xx).getNodeID()

-                                                                        + " USN " + poll.getChangesAvailable().getHighWaterMark().get(xx).getOriginatingUSN());

-                                                        }

-                                                        //JAXB.marshal(poll, System.out);

+

+                                                        //done TODO replace with last known record from the given node

+                                                        //for (int xx = 0; xx < poll.getChangesAvailable().getHighWaterMark().size(); xx++) {

+                                                        //        logger.info("Node " + poll.getChangesAvailable().getHighWaterMark().get(xx).getNodeID()

+                                                        //                + " USN " + poll.getChangesAvailable().getHighWaterMark().get(xx).getOriginatingUSN());

+                                                        //}

                                                         GetChangeRecords body = new GetChangeRecords();

                                                         body.setRequestingNode(node);

                                                         body.setResponseLimitCount(BigInteger.valueOf(100));

-                                                        //indexing is screwed up

-                                                        body.setChangesAlreadySeen(poll.getChangesAvailable());

+

+                                                        body.setChangesAlreadySeen(getLastChangeRecordFrom(poll.getNotifyingNode()));

+                                                        logger.info("fetching updates from " + poll.getNotifyingNode() + " since " + body.getChangesAlreadySeen().getHighWaterMark().get(0).getOriginatingUSN());

+

                                                         List<ChangeRecord> records

                                                                 = replicationClient.getChangeRecords(body).getChangeRecord();

                                                         //ok now we need to persist the change records

@@ -235,9 +288,9 @@
                          * a USN is less than the USN specified in the

                          * changesAlreadySeen highWaterMarkVector.

                          */

-                        StringWriter sw = new StringWriter();

-                        JAXB.marshal(rec, sw);

-                        logger.info("_______________________Remote change request " + sw.toString());

+                        // StringWriter sw = new StringWriter();

+                        //JAXB.marshal(rec, sw);

+                        logger.info("_______________________Remote change request " + rec.getChangeID().getNodeID() + ":" + rec.getChangeID().getOriginatingUSN());

 

                         try {

                                 tx.begin();

@@ -245,6 +298,9 @@
                                 org.apache.juddi.model.ChangeRecord mapChangeRecord = MappingApiToModel.mapChangeRecord(rec);

                                 mapChangeRecord.setId(null);

                                 em.persist(mapChangeRecord);

+                                tx.commit();

+                                tx = em.getTransaction();

+                                tx.begin();

                                 //<editor-fold defaultstate="collapsed" desc="delete a record">

 

                                 if (rec.getChangeRecordDelete() != null) {

@@ -304,10 +360,10 @@
                                                         } else {

                                                                 ValidateNodeIdMatches(model.getNodeId(), rec.getChangeRecordNewData().getOperationalInfo());

 

-                                                               org.apache.juddi.model.BindingTemplate bt= em.find(org.apache.juddi.model.BindingTemplate.class,rec.getChangeRecordNewData().getBindingTemplate().getBindingKey() );

-                                                               if (bt!=null){

-                                                                       em.remove(bt);

-                                                               }

+                                                                org.apache.juddi.model.BindingTemplate bt = em.find(org.apache.juddi.model.BindingTemplate.class, rec.getChangeRecordNewData().getBindingTemplate().getBindingKey());

+                                                                if (bt != null) {

+                                                                        em.remove(bt);

+                                                                }

                                                                 bt = new BindingTemplate();

                                                                 MappingApiToModel.mapBindingTemplate(rec.getChangeRecordNewData().getBindingTemplate(), bt, model);

                                                                 MappingApiToModel.mapOperationalInfo(bt, rec.getChangeRecordNewData().getOperationalInfo());

@@ -322,7 +378,7 @@
                                                                 ValidateNodeIdMatches(model.getNodeId(), rec.getChangeRecordNewData().getOperationalInfo());

                                                                 //TODO revisit access control rules

                                                                 em.remove(model);

-                                                        } 

+                                                        }

                                                         model = new BusinessEntity();

                                                         MappingApiToModel.mapBusinessEntity(rec.getChangeRecordNewData().getBusinessEntity(), model);

                                                         // MappingApiToModel.mapOperationalInfo(model, rec.getChangeRecordNewData().getOperationalInfo());

@@ -413,15 +469,68 @@
                         }

                 }

 

+                private HighWaterMarkVectorType getLastChangeRecordFrom(String notifyingNode) {

+                        HighWaterMarkVectorType ret = new HighWaterMarkVectorType();

+                        ChangeRecordIDType cid = new ChangeRecordIDType();

+                        cid.setNodeID(notifyingNode);

+                        cid.setOriginatingUSN(0L);

+                        EntityManager em = PersistenceManager.getEntityManager();

+                        EntityTransaction tx = em.getTransaction();

+                        try {

+                                tx.begin();

+                                Long id = 0L;

+                                try {

+                                        cid.setOriginatingUSN((Long) em.createQuery("select e.originatingUSN from ChangeRecord e where e.nodeID = :node order by e.originatingUSN desc").setParameter("node", notifyingNode).setMaxResults(1).getSingleResult());

+                                } catch (Exception ex) {

+                                        logger.info(ex);

+                                }

+

+                                tx.rollback();

+

+                        } catch (Exception drfm) {

+                                logger.warn("error caught fetching newest record from node " + notifyingNode, drfm);

+                        } finally {

+                                if (tx.isActive()) {

+                                        tx.rollback();

+                                }

+                                em.close();

+                        }

+

+                        ret.getHighWaterMark().add(cid);

+

+                        return ret;

+                }

         }

 

-        private static void ValidateNodeIdMatches(String nodeId, OperationalInfo operationalInfo) throws Exception {

-                if (nodeId == null || operationalInfo == null) {

+        // private void ValidateDontChangeMyRecordsAtAnotherNode(String )

+        private void ValidateNodeIdMatches(String modelNodeId, OperationalInfo newDataOperationalInfo) throws Exception {

+                if (modelNodeId == null || newDataOperationalInfo == null) {

                         throw new Exception("either the local node ID is null or the inbound replication data's node id is null");

                 }

-                if (!nodeId.equals(operationalInfo.getNodeID())) {

+                //only time this is allowed is custody transfer

+                if (!modelNodeId.equals(newDataOperationalInfo.getNodeID())) {

                         throw new Exception("node id mismatch!");

                 }

+

+                //if i already have a record and "own it" and the remote node has a record with the same key, reject the update

+                //1.5.8 

+                /**

+                 * Each node has custody of a portion of the aggregate data

+                 * managed by the registry of which it is a part. Each datum is

+                 * by definition in the custody of exactly one such node. A

+                 * datum in this context can be a businessEntity, a

+                 * businessService, a bindingTemplate, a tModel, or a

+                 * publisherAssertion. Changes to a datum in the registry MUST

+                 * originate at the node which is the custodian of the datum.

+                 * The registry defines the policy for data custody and, if

+                 * allowed, the custodian node for a given datum can be changed;

+                 * such custody transfer processes are discussed in Section 5.4

+                 * Custody and Ownership Transfer API.

+                 */

+                //so someone else attempted to update one of my records, reject it

+                if (modelNodeId.equals(node)) {

+                        throw new Exception("node id mismatch! this node already has a record for key " + newDataOperationalInfo.getEntityKey() + " and I'm the authority for it.");

+                }

         }

 

         private synchronized UDDIReplicationPortType getReplicationClient(String node) {

@@ -482,6 +591,7 @@
         @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)

         @WebResult(name = "changeRecords", targetNamespace = "urn:uddi-org:repl_v3", partName = "body")

         // @WebMethod(operationName = "get_changeRecords", action = "get_changeRecords")

+        @Override

         public org.uddi.repl_v3.ChangeRecords getChangeRecords(

                 @WebParam(partName = "body", name = "get_changeRecords", targetNamespace = "urn:uddi-org:repl_v3") org.uddi.repl_v3.GetChangeRecords body

         ) throws DispositionReportFaultMessage, RemoteException {/*

@@ -625,6 +735,7 @@
 

                 EntityManager em = PersistenceManager.getEntityManager();

                 EntityTransaction tx = em.getTransaction();

+                HashMap<String, Long> map = new HashMap<String, Long>();

                 try {

                         tx.begin();

                         if (FetchEdges != null) {

@@ -632,26 +743,26 @@
                                 while (it.hasNext()) {

                                         String nextNode = it.next();

                                         if (!nextNode.equals(node)) {

+                                                if (!map.containsKey(nextNode)) {

+                                                        Long id = 0L;

+                                                        try {

+                                                                id = (Long) em.createQuery("select e.originatingUSN from ChangeRecord e where e.nodeID = :node order by e.originatingUSN desc").setParameter("node", nextNode).setMaxResults(1).getSingleResult();

+                                                        } catch (Exception ex) {

+                                                                logger.debug(ex);

+                                                        }

+                                                        if (id == null) {

+                                                                id = 0L;

+                                                                //per the spec

+                                                        }

+                                                        map.put(nextNode, id);

 

-                                                Long id = 0L;

-                                                try {

-                                                        id = (Long) em.createQuery("select e.originatingUSN from ChangeRecord e where e.nodeID = :node order by e.originatingUSN desc").setParameter("node", nextNode).setMaxResults(1).getSingleResult();

-                                                } catch (Exception ex) {

-                                                        logger.debug(ex);

                                                 }

-                                                if (id == null) {

-                                                        id = 0L;

-                                                        //per the spec

-                                                }

-                                                ChangeRecordIDType x = new ChangeRecordIDType(nextNode, id);

-

-                                                ret.add(x);

-

                                         }

                                 }

                         }

                         //dont forget this node

-                        Long id = (Long) em.createQuery("select (e.id) from ChangeRecord e where e.nodeID = :node  order by e.id desc").setParameter("node", node).setMaxResults(1).getSingleResult();

+                        Long id = (Long) em.createQuery("select (e.id) from ChangeRecord e where e.nodeID = :node  order by e.id desc")

+                                .setParameter("node", node).setMaxResults(1).getSingleResult();

                         if (id == null) {

                                 id = 0L;

                         }

@@ -674,6 +785,11 @@
                         em.close();

                 }

 

+                Iterator<Map.Entry<String, Long>> iterator = map.entrySet().iterator();

+                while (iterator.hasNext()) {

+                        Map.Entry<String, Long> next = iterator.next();

+                        ret.add(new ChangeRecordIDType(next.getKey(), next.getValue()));

+                }

                 return ret;

         }

 

diff --git a/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java b/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
index f3df32f..64ebdb9 100644
--- a/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
+++ b/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
@@ -117,8 +117,9 @@
 

         /**

          * used from Install class

+         *

          * @param publisher

-         * @param nodeid 

+         * @param nodeid

          * @see Install

          */

         public ValidatePublish(UddiEntityPublisher publisher, String nodeid) {

@@ -284,14 +285,20 @@
 

         private void AccessCheck(Object obj, String entityKey) throws UserMismatchException {

                 boolean accessCheck = false; //assume access denied

-                //TODO revisit access control rules in a replicated environment

+                if (!((UddiEntity) obj).getNodeId().equals(nodeID)) {

+                        //prevent changes to data owned by another node in a replicated environment

+                        //even if you're the boss

+                        throw new UserMismatchException(new ErrorMessage("errors.usermismatch.InvalidNode", entityKey + " Owning Node: " +((UddiEntity) obj).getNodeId()

+                        + ", this node: " + nodeID));

+                }

+

                 if (publisher.isOwner((UddiEntity) obj)) {

                         accessCheck = true;

 

                 }

                 //if i'm an admin, let me edit stuff on this node, but only stuff that's owned by this node

                 if (((Publisher) publisher).isAdmin()

-                     && nodeID.equals(((UddiEntity) obj).getNodeId())) {

+                        && nodeID.equals(((UddiEntity) obj).getNodeId())) {

                         accessCheck = true;

                 }

 

@@ -331,8 +338,8 @@
                                 }

 

                                 if (!pubAssertion.getTmodelKey().equalsIgnoreCase(keyedRef.getTModelKey())

-                                     || !pubAssertion.getKeyName().equalsIgnoreCase(keyedRef.getKeyName())

-                                     || !pubAssertion.getKeyValue().equalsIgnoreCase(keyedRef.getKeyValue())) {

+                                        || !pubAssertion.getKeyName().equalsIgnoreCase(keyedRef.getKeyName())

+                                        || !pubAssertion.getKeyValue().equalsIgnoreCase(keyedRef.getKeyValue())) {

                                         throw new AssertionNotFoundException(new ErrorMessage("errors.pubassertion.AssertionNotFound", entity.getFromKey() + ", " + entity.getToKey()));

                                 }

 

@@ -363,9 +370,9 @@
 

                 for (org.uddi.api_v3.BusinessEntity entity : entityList) {

                         validateBusinessEntity(em, entity, config, publisher);

-                       

+

                 }

-                 validateCheckedTModelsBE(entityList, config);

+                validateCheckedTModelsBE(entityList, config);

         }

 

         public void validateSaveBusinessMax(EntityManager em) throws DispositionReportFaultMessage {

@@ -473,7 +480,7 @@
 

                 for (org.uddi.api_v3.BindingTemplate entity : entityList) {

                         validateBindingTemplate(em, entity, null, config, publisher);

-                        

+

                 }

                 validateCheckedTModelsBT(entityList, config);

         }

@@ -527,7 +534,7 @@
 

                 for (org.uddi.api_v3.TModel entity : entityList) {

                         validateTModel(em, entity, config, publisher);

-                        

+

                 }

                 validateCheckedTModelsTM(entityList, config);

         }

@@ -604,17 +611,17 @@
                 if (item.getBusinessServices() != null && !item.getSignature().isEmpty()) {

                         for (int i = 0; i < item.getBusinessServices().getBusinessService().size(); i++) {

                                 if (item.getBusinessServices().getBusinessService().get(i).getBusinessKey() == null

-                                     || item.getBusinessServices().getBusinessService().get(i).getBusinessKey().length() == 0) {

+                                        || item.getBusinessServices().getBusinessService().get(i).getBusinessKey().length() == 0) {

                                         throw new ValueNotAllowedException(new ErrorMessage("errors.entity.SignedButNoKey", "business/Service(" + i + ")/businessKey"));

                                 }

                                 if (item.getBusinessServices().getBusinessService().get(i).getServiceKey() == null

-                                     || item.getBusinessServices().getBusinessService().get(i).getServiceKey().length() == 0) {

+                                        || item.getBusinessServices().getBusinessService().get(i).getServiceKey().length() == 0) {

                                         throw new ValueNotAllowedException(new ErrorMessage("errors.entity.SignedButNoKey", "business/Service(" + i + ")/serviceKey"));

                                 }

                                 if (item.getBusinessServices().getBusinessService().get(i).getBindingTemplates() != null) {

                                         for (int k = 0; k < item.getBusinessServices().getBusinessService().get(i).getBindingTemplates().getBindingTemplate().size(); k++) {

                                                 if (item.getBusinessServices().getBusinessService().get(i).getBindingTemplates().getBindingTemplate().get(k).getBindingKey() == null

-                                                     || item.getBusinessServices().getBusinessService().get(i).getBindingTemplates().getBindingTemplate().get(k).getBindingKey().length() == 0) {

+                                                        || item.getBusinessServices().getBusinessService().get(i).getBindingTemplates().getBindingTemplate().get(k).getBindingKey().length() == 0) {

                                                         throw new ValueNotAllowedException(new ErrorMessage("errors.entity.SignedButNoKey", "business/Service(" + i + ")/bindingTemplate)" + k + ")/bindingKey"));

                                                 }

                                         }

@@ -658,7 +665,7 @@
                 if (item.getBindingTemplates() != null && !item.getSignature().isEmpty()) {

                         for (int i = 0; i < item.getBindingTemplates().getBindingTemplate().size(); i++) {

                                 if (item.getBindingTemplates().getBindingTemplate().get(i).getBindingKey() == null

-                                     || item.getBindingTemplates().getBindingTemplate().get(i).getBindingKey().length() == 0) {

+                                        || item.getBindingTemplates().getBindingTemplate().get(i).getBindingKey().length() == 0) {

                                         throw new ValueNotAllowedException(new ErrorMessage("errors.entity.SignedButNoKey", "businessService/bindingTemplate(" + i + ")/bindingKey"));

                                 }

                         }

@@ -666,7 +673,7 @@
         }

 

         public void validateBusinessEntity(EntityManager em, org.uddi.api_v3.BusinessEntity businessEntity,

-             Configuration config, UddiEntityPublisher publisher) throws DispositionReportFaultMessage {

+                Configuration config, UddiEntityPublisher publisher) throws DispositionReportFaultMessage {

 

                 // A supplied businessEntity can't be null

                 if (businessEntity == null) {

@@ -724,8 +731,8 @@
         }

 

         public void validateBusinessServices(EntityManager em, org.uddi.api_v3.BusinessServices businessServices,

-             org.uddi.api_v3.BusinessEntity parent, Configuration config, UddiEntityPublisher publisher)

-             throws DispositionReportFaultMessage {

+                org.uddi.api_v3.BusinessEntity parent, Configuration config, UddiEntityPublisher publisher)

+                throws DispositionReportFaultMessage {

                 // Business services is optional

                 if (businessServices == null) {

                         return;

@@ -742,8 +749,8 @@
         }

 

         public void validateBusinessService(EntityManager em, org.uddi.api_v3.BusinessService businessService,

-             org.uddi.api_v3.BusinessEntity parent, Configuration config, UddiEntityPublisher publisher)

-             throws DispositionReportFaultMessage {

+                org.uddi.api_v3.BusinessEntity parent, Configuration config, UddiEntityPublisher publisher)

+                throws DispositionReportFaultMessage {

 

                 // A supplied businessService can't be null

                 if (businessService == null) {

@@ -894,8 +901,8 @@
         }

 

         public void validateBindingTemplates(EntityManager em, org.uddi.api_v3.BindingTemplates bindingTemplates,

-             org.uddi.api_v3.BusinessService parent, Configuration config, UddiEntityPublisher publisher)

-             throws DispositionReportFaultMessage {

+                org.uddi.api_v3.BusinessService parent, Configuration config, UddiEntityPublisher publisher)

+                throws DispositionReportFaultMessage {

                 // Binding templates is optional

                 if (bindingTemplates == null) {

                         return;

@@ -909,13 +916,12 @@
                 for (org.uddi.api_v3.BindingTemplate bindingTemplate : bindingTemplateList) {

                         validateBindingTemplate(em, bindingTemplate, parent, config, publisher);

                 }

-                

 

         }

 

         public void validateBindingTemplate(EntityManager em, org.uddi.api_v3.BindingTemplate bindingTemplate,

-             org.uddi.api_v3.BusinessService parent, Configuration config, UddiEntityPublisher publisher)

-             throws DispositionReportFaultMessage {

+                org.uddi.api_v3.BusinessService parent, Configuration config, UddiEntityPublisher publisher)

+                throws DispositionReportFaultMessage {

 

                 // A supplied bindingTemplate can't be null

                 if (bindingTemplate == null) {

@@ -1125,7 +1131,7 @@
 

                 // TODO: validate "checked" categories or category groups (see section 5.2.3 of spec)? optional to support

                 if (tModel.getName() == null || tModel.getName().getValue() == null

-                     || tModel.getName().getValue().equals("")) {

+                        || tModel.getName().getValue().equals("")) {

                         throw new ValueNotAllowedException(new ErrorMessage("errors.tmodel.NoName"));

                 }

 

@@ -1152,9 +1158,9 @@
                 // The keyedRef must not be blank and every field must contain data.

                 org.uddi.api_v3.KeyedReference keyedRef = pubAssertion.getKeyedReference();

                 if (keyedRef == null

-                     || keyedRef.getTModelKey() == null || keyedRef.getTModelKey().length() == 0

-                     || keyedRef.getKeyName() == null || keyedRef.getKeyName().length() == 0

-                     || keyedRef.getKeyValue() == null || keyedRef.getKeyValue().length() == 0) {

+                        || keyedRef.getTModelKey() == null || keyedRef.getTModelKey().length() == 0

+                        || keyedRef.getKeyName() == null || keyedRef.getKeyName().length() == 0

+                        || keyedRef.getKeyValue() == null || keyedRef.getKeyValue().length() == 0) {

                         throw new ValueNotAllowedException(new ErrorMessage("errors.pubassertion.BlankKeyedRef"));

                 }

 

@@ -1577,21 +1583,22 @@
         }

 

         public void validateSaveSubscriptionAdmin(EntityManager em, String publisherOrUsername, List<Subscription> subscriptions) throws DispositionReportFaultMessage {

-            

-            // No null input

+

+                // No null input

                 if (subscriptions == null || subscriptions.isEmpty()) {

                         throw new FatalErrorException(new ErrorMessage("errors.NullInput"));

                 }

-                

+

                 if (!((Publisher) publisher).isAdmin()) {

-                    throw new UserMismatchException(new ErrorMessage("errors.deletepublisher.AdminReqd"));

+                        throw new UserMismatchException(new ErrorMessage("errors.deletepublisher.AdminReqd"));

                 }

                 UddiEntityPublisher user = new UddiEntityPublisher(publisherOrUsername);

                 ValidateSubscription vsub = new ValidateSubscription(user);

-                for (int i=0; i < subscriptions.size(); i++){

-                    vsub.validateSubscriptions(em, subscriptions, user);

+                for (int i = 0; i < subscriptions.size(); i++) {

+                        vsub.validateSubscriptions(em, subscriptions, user);

                 }

         }

+

         public void validateSavePublisher(EntityManager em, SavePublisher body) throws DispositionReportFaultMessage {

 

                 // No null input

@@ -1815,7 +1822,7 @@
                         for (int i = 0; i < phone.size(); i++) {

                                 validateUseType(phone.get(i).getUseType());

                                 if (phone.get(i).getValue() == null

-                                     || phone.get(i).getValue().length() == 0) {

+                                        || phone.get(i).getValue().length() == 0) {

                                         throw new ValueNotAllowedException(new ErrorMessage("errors.phone.noinput"));

                                 }

                                 if (phone.get(i).getValue().length() > ValidationConstants.MAX_phone) {

@@ -2198,15 +2205,15 @@
                 for (int i = 0; i < addressLine.size(); i++) {

 

                         if (addressLine.get(i).getKeyName() == null

-                             || addressLine.get(i).getKeyName().trim().length() == 0) {

+                                || addressLine.get(i).getKeyName().trim().length() == 0) {

                                 err += "addressLine(" + i + ").keyName,";

                         }

                         if (addressLine.get(i).getKeyValue() == null

-                             || addressLine.get(i).getKeyValue().trim().length() == 0) {

+                                || addressLine.get(i).getKeyValue().trim().length() == 0) {

                                 err += "addressLine(" + i + ").keyValue,";

                         }

                         if (addressLine.get(i).getValue() == null

-                             || addressLine.get(i).getValue().trim().length() == 0) {

+                                || addressLine.get(i).getValue().trim().length() == 0) {

                                 err += "addressLine(" + i + ").value,";

                         }

                 }

@@ -2385,20 +2392,23 @@
                         throw new InvalidKeyPassedException(new ErrorMessage("errors.deleteNode.NoInput"));

                 }

                 //get the latest replication config

-                if (cfg!=null){

-                    if (cfg.getCommunicationGraph()!=null){

-                        for (String node : cfg.getCommunicationGraph().getNode()) {

-                            if (node.equals(nodeID.getNodeID()))

-                                throw new InvalidKeyPassedException(new ErrorMessage("errors.deleteNode.InReplicationConfig", nodeID.getNodeID()));

+                if (cfg != null) {

+                        if (cfg.getCommunicationGraph() != null) {

+                                for (String node : cfg.getCommunicationGraph().getNode()) {

+                                        if (node.equals(nodeID.getNodeID())) {

+                                                throw new InvalidKeyPassedException(new ErrorMessage("errors.deleteNode.InReplicationConfig", nodeID.getNodeID()));

+                                        }

+                                }

+                                for (int i = 0; i < cfg.getCommunicationGraph().getEdge().size(); i++) {

+                                        if (nodeID.getNodeID().equals(cfg.getCommunicationGraph().getEdge().get(i).getMessageReceiver())) {

+                                                throw new InvalidKeyPassedException(new ErrorMessage("errors.deleteNode.InReplicationConfig", nodeID.getNodeID()));

+                                        }

+                                        if (nodeID.getNodeID().equals(cfg.getCommunicationGraph().getEdge().get(i).getMessageSender())) {

+                                                throw new InvalidKeyPassedException(new ErrorMessage("errors.deleteNode.InReplicationConfig", nodeID.getNodeID()));

+                                        }

+

+                                }

                         }

-                        for (int i=0; i <cfg.getCommunicationGraph().getEdge().size(); i++){

-                            if (nodeID.getNodeID().equals(cfg.getCommunicationGraph().getEdge().get(i).getMessageReceiver()))

-                                throw new InvalidKeyPassedException(new ErrorMessage("errors.deleteNode.InReplicationConfig", nodeID.getNodeID()));

-                            if (nodeID.getNodeID().equals(cfg.getCommunicationGraph().getEdge().get(i).getMessageSender()))

-                                throw new InvalidKeyPassedException(new ErrorMessage("errors.deleteNode.InReplicationConfig", nodeID.getNodeID()));

-                            

-                        }

-                    }

                 }

 

         }

diff --git a/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java b/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java
index 97da3ff..df5a436 100644
--- a/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java
+++ b/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java
@@ -58,9 +58,9 @@
                         //This is the unique key for the calling node and SHOULD be specified within the Replication Configuration Structure.
                         throw new FatalErrorException(new ErrorMessage("errors.replication.nodeNotSpecified"));
                 }
-                if (!ContainsNode(requestingNode, FetchEdges)) {
-                        throw new FatalErrorException(new ErrorMessage("errors.replication.unknownNode"));
-                }
+                //if (!ContainsNode(requestingNode, FetchEdges)) {
+                //        throw new FatalErrorException(new ErrorMessage("errors.replication.unknownNode"));
+                //}
 
                 if (changesAlreadySeen != null) {
                         // changesAlreadySeen: The changesAlreadySeen element, if present, indicates changes from each
diff --git a/juddi-core/src/main/resources/messages.properties b/juddi-core/src/main/resources/messages.properties
index 95d98ce..fe79f62 100644
--- a/juddi-core/src/main/resources/messages.properties
+++ b/juddi-core/src/main/resources/messages.properties
@@ -296,3 +296,4 @@
 errors.replication.configNull=No replication config was present in the message

 errors.replication.contactNull=No replication contact was present in the message

 errors.deleteNode.InReplicationConfig=The node to be deleted is currently referenced in the replication configuration. You must revise the configuration before deleting the node, 

+errors.usermismatch.InvalidNode=The user is not authorized to alter the given entity. It is not owned by this jUDDI node. Try your request again on the authoritative node.
\ No newline at end of file
diff --git a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java
index 700c96d..2227973 100644
--- a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java
+++ b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java
@@ -46,6 +46,7 @@
 import org.uddi.api_v3.PersonName;
 import org.uddi.repl_v3.ChangeRecord;
 import org.uddi.repl_v3.ChangeRecordIDType;
+import org.uddi.repl_v3.ChangeRecords;
 import org.uddi.repl_v3.CommunicationGraph;
 import org.uddi.repl_v3.DoPing;
 import org.uddi.repl_v3.GetChangeRecords;
@@ -121,8 +122,8 @@
                 }
         }
 
-        @Test(expected = FatalErrorException.class)
-        public void getChangeRecordsInvalid() throws DispositionReportFaultMessage, RemoteException {
+       // @Test(expected = FatalErrorException.class)
+        public void getChangeRecordsValid() throws DispositionReportFaultMessage, RemoteException {
                 List<ChangeRecordIDType> highWaterMarks = repl.getHighWaterMarks();
 
                 HighWaterMarkVectorType highWaterMarkVectorType = new HighWaterMarkVectorType();
@@ -132,8 +133,8 @@
                 req.setChangesAlreadySeen(null);
                 
                 req.setResponseLimitVector(highWaterMarkVectorType);
-                repl.getChangeRecords(req);//"test", null, BigInteger.valueOf(highWaterMarks.get(0).getOriginatingUSN()), highWaterMarkVectorType);
-                Assert.fail("unexpected success");
+                ChangeRecords changeRecords = repl.getChangeRecords(req); //"test", null, BigInteger.valueOf(highWaterMarks.get(0).getOriginatingUSN()), highWaterMarkVectorType);
+                //Assert.fail("unexpected success");
         }
 
         /**
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoint.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoint.java
index 3d0dacd..8b38575 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoint.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoint.java
@@ -133,7 +133,7 @@
                         int biz = Integer.parseInt(System.console().readLine());
                         System.out.print("servicesPerBusiness: ");
                         int svc = Integer.parseInt(System.console().readLine());
-                        new UddiCreatebulk().publishBusiness(authtoken, biz, svc);
+                        new UddiCreatebulk("default").publishBusiness(authtoken, biz, svc);
                 }
                 if (input.equals("7")) {
                         UDDISecurityPortType security = null;
@@ -439,22 +439,25 @@
                 }
                 if (input.equals("magic")) {
                         //secret menu, setups up replication between juddi8080 and 9080 and adds a record or two on 8080
-                        UDDISecurityPortType security = null;
-                        UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
+                        //UDDISecurityPortType security = null;
+                        //UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
                         
-                        Transport transport = clerkManager.getTransport("default");
+                       /* Transport transport = clerkManager.getTransport("default");
                         security = transport.getUDDISecurityService();
                        
-                        String uname = "root";
+                       String uname = "root";
                        
                         GetAuthToken getAuthTokenRoot = new GetAuthToken();
                         getAuthTokenRoot.setUserID(uname);
                         getAuthTokenRoot.setCred("root");
                         authtoken = security.getAuthToken(getAuthTokenRoot).getAuthInfo();
-                        System.out.println("Success!");
+                        System.out.println("Success!");*/
+                        
+                        //this setups up a replication config between the two nodes
                         new JuddiAdminService().autoMagic();
 
-                        new UddiCreatebulk().publishBusiness(authtoken, 1, 1);
+                        new UddiCreatebulk("default").publishBusiness(null, 1, 1);
+                        new UddiCreatebulk("uddi:another.juddi.apache.org:node2").publishBusiness(null, 1, 1);
                 }
 
         }
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiCreatebulk.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiCreatebulk.java
index 696c8b7..7825e79 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiCreatebulk.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiCreatebulk.java
@@ -41,12 +41,12 @@
         private static UDDISecurityPortType security = null;

         private static UDDIPublicationPortType publish = null;

 

-        public UddiCreatebulk() {

+        public UddiCreatebulk(String node) {

                 try {

                         // create a manager and read the config in the archive; 

                         // you can use your config file name

                         UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");

-                        Transport transport = clerkManager.getTransport();

+                        Transport transport = clerkManager.getTransport(node);

                         // Now you create a reference to the UDDI API

                         security = transport.getUDDISecurityService();

                         publish = transport.getUDDIPublishService();

@@ -186,7 +186,7 @@
         }

 

         public static void main(String args[]) {

-                UddiCreatebulk sp = new UddiCreatebulk();

+                UddiCreatebulk sp = new UddiCreatebulk(null);

                 sp.publishBusiness(null, 15, 20);

         }

 }

diff --git a/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties b/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties
index 106e855..534032d 100644
--- a/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties
+++ b/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties
@@ -363,7 +363,7 @@
 pages.editor.tmodel.deleted=Is this tModel Deleted? (not available for future use).
 pages.signatures.signedby=Signed By
 pages.signatures.status=Signature Status
-pages.editor.tmodel.instances.content=Use this to search for other entities in this registery that reference this tModel
+pages.editor.tmodel.instances.content=Use this to search for other entities in this registry that reference this tModel
 pages.editor.tmodel.search.business=Find Businesses
 pages.editor.tmodel.search.binding=Find binding
 pages.editor.tmodel.search.services=Find services
diff --git a/juddi-gui/src/main/webapp/bindingEditor.jsp b/juddi-gui/src/main/webapp/bindingEditor.jsp
index a0699c7..9a1a1f1 100644
--- a/juddi-gui/src/main/webapp/bindingEditor.jsp
+++ b/juddi-gui/src/main/webapp/bindingEditor.jsp
@@ -217,14 +217,14 @@
 
                                                 <b><%=ResourceLoader.GetResource(session, "items.description")%> </b>- 
                                                 <%=ResourceLoader.GetResource(session, "items.services.description")%><br>
-                                                <a href="javascript:AddDescription('Description');"><i class="icon-plus-sign icon-large"></i></a> <%=ResourceLoader.GetResource(session, "items.description.add")%>
+                                                <a href="javascript:AddDescription('Description');"><i class="icon-plus-sign icon-large"></i> <%=ResourceLoader.GetResource(session, "items.description.add")%></a>
 
                                                 <div id="Description" style="border-width: 2px; border-style: solid;" >
                                                         <%
                                                                 for (int i = 0; i < bd.getDescription().size(); i++) {
                                                                         out.write("<div id=\"" + PostBackConstants.DESCRIPTION + i + "\" style=\"border-width:1px; border-style:solid\">");
                                                                         out.write("<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('Description" + i + "');\"><i class=\"icon-trash icon-large\"></i>&nbsp;</a></div>");
-                                                                        out.write("<div style=\"float:left\">" + ResourceLoader.GetResource(session, "items.key") + ":&nbsp;</div>"
+                                                                        out.write("<div style=\"float:left\">" + ResourceLoader.GetResource(session, "items.value") + ":&nbsp;</div>"
                                                                              + "<div class=\"edit\" id=\"" + PostBackConstants.DESCRIPTION + i + PostBackConstants.VALUE + "\">" + StringEscapeUtils.escapeHtml(bd.getDescription().get(i).getValue()) + "</div>");
                                                                         out.write("<div style=\"float:left\">" + ResourceLoader.GetResource(session, "items.lang") + ":&nbsp;</div>"
                                                                              + "<div class=\"edit\" id=\"" + PostBackConstants.DESCRIPTION + i + PostBackConstants.LANG + "\">"
diff --git a/juddi-gui/src/main/webapp/js/businessEditor.js b/juddi-gui/src/main/webapp/js/businessEditor.js
index 090fe49..ab213e3 100644
--- a/juddi-gui/src/main/webapp/js/businessEditor.js
+++ b/juddi-gui/src/main/webapp/js/businessEditor.js
@@ -92,7 +92,7 @@
     var i = currentDescriptionEntries;
     $("<div id=\"Description" + i + "\" style=\"border-width:1px; border-style:solid\" >" 
         +"<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('Description" + i 
-        +"');\"><i class=\"icon-trash icon-large\"></i></a></div>"
+        +"');\"><i class=\"icon-trash icon-large\"></i>&nbsp;</a></div>"
         +"<div style=\"float:left\">" + i18n_value + ": &nbsp;</div>"
         +"<div class=\"edit\" id=\"Description" + i + "Value\"></div>"
         +"<div style=\"float:left\">" + i18n_lang + ": &nbsp;</div>"
@@ -109,7 +109,7 @@
     
     $("<div id=\"disco" + i + "\" style=\"border-width:1px; border-style:solid\" >" 
         +"<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('disco" + i 
-        +"');\"><i class=\"icon-trash icon-large\"></i></a></div>"
+        +"');\"><i class=\"icon-trash icon-large\"></i>&nbsp;</a></div>"
         +"<div style=\"float:left\">" + i18n_value + ": &nbsp;</div>"
         +"<div class=\"edit\" id=\"disco" + i + "Value\"></div>"
         +"<div style=\"float:left\">" + i18n_type + ": &nbsp;</div>"
@@ -129,7 +129,7 @@
     
     $("<div id=\"contact" + i + "\" style=\"border-width:2px; border-style:solid; border-color:red\" >" 
         +"<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('contact" + i 
-        +"');\"><i class=\"icon-trash icon-large\"></i></a></div>"
+        +"');\"><i class=\"icon-trash icon-large\"></i>&nbsp;</a></div>"
         +"<div style=\"float:left\">" + i18n_contactType+ ": &nbsp;</div>"
         +"<div class=\"edit\" id=\"contact" + i + "Type\">" + i18n_contactTypeDefault + "</div>"
         +"<a href=\"javascript:AddContactName('" + i + "');\"><i class=\"icon-plus-sign icon-large\"></i></a>" + i18n_name + " &nbsp"
@@ -148,7 +148,7 @@
 {
     $("<div id=\"contact" + contactid + "Name" + contactname + "\" style=\"border-width:1px; border-style:solid\" >" 
         +"<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('contact" + contactid + "Name" + contactname
-        +"');\"><i class=\"icon-trash icon-large\"></i></a></div>"
+        +"');\"><i class=\"icon-trash icon-large\"></i>&nbsp;</a></div>"
         +"<div style=\"float:left\">" + i18n_name + ": &nbsp;</div>"
         +"<div class=\"edit\" id=\"contact" + contactid + "Name" + contactname + "Value\"></div>"
         +"<div style=\"float:left\">" + i18n_lang + ": &nbsp;</div>"
@@ -162,7 +162,7 @@
 {
     $("<div id=\"contact" + contactid + "Email" + contactemail + "\" style=\"border-width:1px; border-style:solid\" >" 
         +"<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('contact" + contactid + "Email" + contactemail
-        +"');\"><i class=\"icon-trash icon-large\"></i></a></div>"
+        +"');\"><i class=\"icon-trash icon-large\"></i>&nbsp;</a></div>"
         +"<div style=\"float:left\">" + i18n_type + ": &nbsp;</div>"
         +"<div class=\"edit\" id=\"contact" + contactid + "Email" + contactemail + "Type\">" + i18n_email+ "</div>"
         +"<div style=\"float:left\">" + i18n_value + ": &nbsp;</div>"
@@ -175,7 +175,7 @@
 {
     $("<div id=\"contact" + contactid + "Description" + contactdescription + "\" style=\"border-width:1px; border-style:solid\" >" 
         +"<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('contact" + contactid + "Description" + contactdescription
-        +"');\"><i class=\"icon-trash icon-large\"></i></a></div>"
+        +"');\"><i class=\"icon-trash icon-large\"></i>&nbsp;</a></div>"
         +"<div style=\"float:left\">" + i18n_description + ": &nbsp;</div>"
         +"<div class=\"edit\" id=\"contact" + contactid + "Description" + contactdescription + "Value\">"+i18n_contactPrimary+"</div>"
         +"<div style=\"float:left\">" + i18n_lang + ": &nbsp;</div>"
@@ -189,7 +189,7 @@
 {
     $("<div id=\"contact" + contactid + "Phone" + contactphone + "\" style=\"border-width:1px; border-style:solid\" >" 
         +"<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('contact" + contactid + "Phone" + contactphone
-        +"');\"><i class=\"icon-trash icon-large\"></i></a></div>"
+        +"');\"><i class=\"icon-trash icon-large\"></i>&nbsp;</a></div>"
         +"<div style=\"float:left\">" + i18n_phone + ": &nbsp;</div>"
         +"<div class=\"edit\" id=\"contact" + contactid + "Phone" + contactphone + "Value\"></div>"
         +"<div style=\"float:left\">" + i18n_type + ": &nbsp;</div>"
@@ -204,7 +204,7 @@
     $("<div id=\"contact" + contactid + "Address" + contactaddress + "\" style=\"border-width:1px; border-style:solid\" >" 
         
         +"<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('contact" + contactid + "Address" + contactaddress
-        +"');\"><i class=\"icon-trash icon-large\"></i></a>" + i18n_address + "</div><br>"
+        +"');\"><i class=\"icon-trash icon-large\"></i>&nbsp;</a>" + i18n_address + "</div><br>"
         +"<div style=\"float:left\">" + i18n_lang + ": &nbsp;</div>"
         +"<div class=\"edit\" id=\"contact" + contactid + "Address" + contactaddress + "Lang\"></div>"
         +"<div style=\"float:left\">" + i18n_addressSortCode + ": &nbsp;</div>"
@@ -228,7 +228,7 @@
         "\" style=\"border-width:1px; border-style:solid\" >" 
         
         +"<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('contact" + contactid + "addressLine" +contactaddresslines 
-        +"');\"><i class=\"icon-trash icon-large\"></i></a></div>"
+        +"');\"><i class=\"icon-trash icon-large\"></i>&nbsp;</a></div>"
         +"<div style=\"float:left\">" + i18n_addressValue + ": &nbsp;</div>"
         +"<div class=\"edit\" id=\"contact" + contactid + "addressLine" + contactaddresslines + "Value\"></div>"
         +"<div style=\"float:left\">" +i18n_keyname_optional + ": &nbsp;</div>"
@@ -248,7 +248,7 @@
     var i=currentcatkeyref;
     
     $("<div id=\"catbagkeyref" + i + "\" style=\"border-width:1px; border-style:solid\">"+
-        "<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('catbagkeyref" + i + "');\"><i class=\"icon-trash icon-large\"></i></a></div>"+
+        "<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('catbagkeyref" + i + "');\"><i class=\"icon-trash icon-large\"></i>&nbsp;</a></div>"+
         "<div style=\"float:left\">" + i18n_key +" (<a href=\"javascript:tModelModal('catbagkeyref" + i + "Value')\" ><i class=\"icon-list-alt icon-large\"></i>" + il8n_picker + "</a>): &nbsp;</div>"
         + "<div class=\"edit\" id=\"catbagkeyref" + i + "Value\">" + tmodelkey + "</div>"
         +"<div style=\"float:left\">" + i18n_name + ": &nbsp;</div>"
@@ -267,7 +267,7 @@
     var i=currentcatkeyref;
     
     $("<div id=\"catbagkeyref" + i + "\" style=\"border-width:1px; border-style:solid\">"+
-        "<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('catbagkeyref" + i + "');\"><i class=\"icon-trash icon-large\"></i></a></div>"+
+        "<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('catbagkeyref" + i + "');\"><i class=\"icon-trash icon-large\"></i>&nbsp;</a></div>"+
         // <div style=\"float:left\">" + s.key") + ": <a href=\"javascript:tModelModal('" + PostBackConstants.CATBAG_KEY_REF + i + PostBackConstants.VALUE + "')\" class=\"btn btn-mini\">Picker</a> &nbsp;</div>"
         "<div style=\"float:left\">" + i18n_key +" (<a href=\"javascript:tModelModal('catbagkeyref" + i + "Value')\" ><i class=\"icon-list-alt icon-large\"></i>" + il8n_picker + "</a>): &nbsp;</div>"
         + "<div class=\"edit\" id=\"catbagkeyref" + i + "Value\"></div>"
diff --git a/juddi-gui/src/main/webapp/serviceEditor.jsp b/juddi-gui/src/main/webapp/serviceEditor.jsp
index 00b41b9..9c1c37f 100644
--- a/juddi-gui/src/main/webapp/serviceEditor.jsp
+++ b/juddi-gui/src/main/webapp/serviceEditor.jsp
@@ -348,7 +348,7 @@
                                                 <b><%=ResourceLoader.GetResource(session, "items.bindingtemplate")%> </b>- <%=ResourceLoader.GetResource(session, "items.bindingtemplate.description")%> <br>
                                                 <% if (!newitem) {
                                                 %>
-                                                <a href="bindingEditor.jsp?svcid=<%=URLEncoder.encode(bd.getServiceKey(), "UTF8")%>"><i class="icon-plus-sign icon-large"></i></a> <%=ResourceLoader.GetResource(session, "items.bindingtemplate.add")%> <Br>
+                                                <a href="bindingEditor.jsp?svcid=<%=URLEncoder.encode(bd.getServiceKey(), "UTF8")%>"><i class="icon-plus-sign icon-large"></i> <%=ResourceLoader.GetResource(session, "items.bindingtemplate.add")%></a> <Br>
                                                 
                                                         <%
                                                 }
diff --git a/juddi-tomcat/build.xml b/juddi-tomcat/build.xml
index f2349f9..325634f 100644
--- a/juddi-tomcat/build.xml
+++ b/juddi-tomcat/build.xml
@@ -81,8 +81,10 @@
 		
 		<copy file="${basedir}/juddiv3Node2.xml" tofile="${webapps2.dir}/juddiv3/WEB-INF/classes/juddiv3.xml" overwrite="true"/>
 		<copy file="${basedir}/juddi_install_data_node2/root_BusinessEntity.xml" todir="${webapps2.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
-<copy file="${basedir}/juddi_install_data_node2/root_Publisher.xml" todir="${webapps2.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
-<copy file="${basedir}/juddi_install_data_node2/root_tModelKeyGen.xml" todir="${webapps2.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
+		<copy file="${basedir}/juddi_install_data_node2/root_Publisher.xml" todir="${webapps2.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
+		<copy file="${basedir}/juddi_install_data_node2/root_tModelKeyGen.xml" todir="${webapps2.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
+		<copy file="${basedir}/juddi_install_data_node2/UDDI_Publisher.xml" todir="${webapps2.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
+		<copy file="${basedir}/juddi_install_data_node2/UDDI_tModels.xml" todir="${webapps2.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
 
 		
 		<copy file="${basedir}/uddiNode2.xml" tofile="${webapps2.dir}/juddi-gui/WEB-INF/classes/META-INF/uddi.xml" overwrite="true"/>
diff --git a/juddi-tomcat/juddi_install_data_node2/UDDI_Publisher.xml b/juddi-tomcat/juddi_install_data_node2/UDDI_Publisher.xml
new file mode 100644
index 0000000..0bfd815
--- /dev/null
+++ b/juddi-tomcat/juddi_install_data_node2/UDDI_Publisher.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */ -->
+<publisher xmlns="urn:juddi-apache-org:api_v3" authorizedName="uddi">
+  <publisherName>UDDI publisher</publisherName>
+  <isAdmin>false</isAdmin>
+</publisher>
+
diff --git a/juddi-tomcat/juddi_install_data_node2/UDDI_tModels.xml b/juddi-tomcat/juddi_install_data_node2/UDDI_tModels.xml
new file mode 100644
index 0000000..f1b543d
--- /dev/null
+++ b/juddi-tomcat/juddi_install_data_node2/UDDI_tModels.xml
@@ -0,0 +1,2362 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+* Copyright 2001-2009 The Apache Software Foundation.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* 
+*      http://www.apache.org/licenses/LICenSE-2.0
+* 
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/ -->
+
+<!-- Important notes on editing this file 
+
+1) if you add a new find qualifier item, you must then increase the count in 
+	org.apache.juddi.v3.tck.TckSubscription.FINDQUALIFIER_TMODEL_TOTAL
+
+-->
+
+
+<save_tModel xmlns="urn:uddi-org:api_v3">
+    <tModel tModelKey="uddi:uddi.org:keygenerator" xmlns="urn:uddi-org:api_v3">
+        <name>uddi-org:keyGenerator</name>
+        <description>UDDI domain key generator</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#keyGen
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+                      keyValue="keyGenerator" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:categorization:keygenerator" xmlns="urn:uddi-org:api_v3">
+        <name>uddi-org:categorization:keyGenerator
+        </name>
+        <description>Key Generator for UDDI Categorization tModels
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#categorizationKeyGen
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:keyGenerator" keyValue="keyGenerator" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:categorization:types">
+        <name>uddi-org:types</name>
+        <description>UDDI Type Category System</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#UDDITypes
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:cacheable" keyValue="cacheable" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="" keyValue="uddi:juddi.apache.org:servicebindings-valueset-cp" tModelKey="uddi:uddi.org:categorization:validatedby"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:categorization:general_keywords">
+        <name>uddi-org:general_keywords</name>
+        <description>Category system consisting of namespace
+            identifiers and the keywords associated with
+            the namespaces.
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#GenKW
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:sortorder:keygenerator" xmlns="urn:uddi-org:api_v3">
+        <name>uddi-org:sortorder:keyGenerator
+        </name>
+        <description>Key Generator for UDDI Sort Order tModels
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#sortorderKeyGen
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:keyGenerator" keyValue="keyGenerator" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:transport:keygenerator" xmlns="urn:uddi-org:api_v3">
+        <name>uddi-org:transport:keyGenerator
+        </name>
+        <description>Key Generator for UDDI Transport tModels </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#transportKeyGen
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:keyGenerator" keyValue="keyGenerator" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:protocol:keygenerator" xmlns="urn:uddi-org:api_v3">
+        <name>uddi-org:protocol:keyGenerator</name>
+        <description> Key Generator for UDDI Protocol tModels </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#protocolKeyGen
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:keyGenerator" keyValue="keyGenerator" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:v3_inquiry">
+        <name>uddi-org:inquiry_v3</name>
+        <description>UDDI Inquiry API V3.0</description>
+        <overviewDoc>
+            <overviewURL useType="wsdlInterface">
+                http://uddi.org/wsdl/uddi_api_v3_binding.wsdl#UDDI_Inquiry_SoapBinding
+            </overviewURL>
+        </overviewDoc>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#InqV3
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlSpec" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:soap" keyValue="soapSpec" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:xml" keyValue="xmlSpec" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:specification" keyValue="specification" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:categorization:nodes">
+        <name>uddi-org:nodes</name>
+        <description>Category system for identifying the nodes
+            of a registry.
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#Nodes
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:uncacheable" keyValue="uncacheable" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="" keyValue="uddi:juddi.apache.org:servicebindings-valueset-cp" tModelKey="uddi:uddi.org:categorization:validatedby"/>
+        </categoryBag>
+    </tModel>
+
+    <tModel tModelKey="uddi:uddi.org:v3_publication">
+        <name>uddi-org:publication_v3</name>
+        <description>UDDI Publication API V3.0</description>
+        <overviewDoc>
+            <overviewURL useType="wsdlInterface">
+                http://uddi.org/wsdl/uddi_api_v3_binding.wsdl#UDDI_Publication_SoapBinding
+            </overviewURL>
+        </overviewDoc>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#PubV3
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlSpec" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:soap" keyValue="soapSpec" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:xml" keyValue="xmlSpec" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:specification" keyValue="specification" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:v3_security">
+        <name>uddi-org:security_v3</name>
+        <description>UDDI Security API V3.0</description>
+        <overviewDoc>
+            <overviewURL useType="wsdlInterface">
+                http://uddi.org/wsdl/uddi_api_v3_binding.wsdl#UDDI_Security_SoapBinding
+            </overviewURL>
+        </overviewDoc>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#SecV3
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlSpec" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:soap" keyValue="soapSpec" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:xml" keyValue="xmlSpec" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:specification" keyValue="specification" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+  
+    <tModel tModelKey="uddi:uddi.org:relationships">
+        <name>uddi-org:relationships</name>
+        <description>Basic types of business relationships
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#Relationships
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:unchecked" keyValue="unchecked" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="" keyValue="uddi:juddi.apache.org:servicebindings-valueset-cp" tModelKey="uddi:uddi.org:categorization:validatedby"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:categorization:owningbusiness">
+        <name>uddi-org:owningBusiness_v3</name>
+        <description>Category system used to point to the
+            businessEntity
+            associated with the publisher of the tModel.
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#owningBusiness
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:uncacheable" keyValue="uncacheable" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="entityKeyValues" keyValue="businessKey" tModelKey="uddi:uddi.org:categorization:entitykeyvalues" />
+            <keyedReference keyName="" keyValue="uddi:juddi.apache.org:servicebindings-valueset-cp" tModelKey="uddi:uddi.org:categorization:validatedby"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:identifier:isreplacedby">
+        <name>uddi-org:isReplacedBy</name>
+        <description>Identifier system used to point to the UDDI
+            entity,
+            using UDDI keys, that is the logical replacement
+            for the one in which isReplacedBy is used.
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#IsReplacedBy
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:identifier" keyValue="identifier" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:uncacheable" keyValue="uncacheable" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="entityKeyValues" keyValue="businessKey" tModelKey="uddi:uddi.org:categorization:entitykeyvalues" />
+            <keyedReference keyName="entityKeyValues" keyValue="tModelKey" tModelKey="uddi:uddi.org:categorization:entitykeyvalues" />
+            <keyedReference keyName="" keyValue="uddi:juddi.apache.org:servicebindings-valueset-cp" tModelKey="uddi:uddi.org:categorization:validatedby"/>
+        </categoryBag>
+    </tModel>
+	
+	<tModel tModelKey="uddi:uddi.org:identifier:taxid">
+        <name>Tax ID</name>
+        <description>The Tax Identifier for this business
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+               http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc515847032
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:identifier" keyValue="identifier" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:uncacheable" keyValue="uncacheable" tModelKey="uddi:uddi.org:categorization:types" />
+
+            <keyedReference keyName="entityKeyValues" keyValue="businessKey" tModelKey="uddi:uddi.org:categorization:entitykeyvalues" />
+
+            <keyedReference keyName="entityKeyValues" keyValue="tModelKey" tModelKey="uddi:uddi.org:categorization:entitykeyvalues" />
+        </categoryBag>
+    </tModel>
+	
+	
+    <tModel tModelKey="uddi:uddi.org:categorization:validatedby">
+        <name>uddi-org:validatedBy</name>
+        <description xml:lang="en">Category system used to point a value set or
+            category
+            group system tModel to associated value set Web service
+            implementations.
+        </description>
+		<description xml:lang="en">This is typically used on tModels to validate tModel Instances via the Value Set Validation service. The keyValue
+		should be an existing binding key pointing to that service.
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#validatedBy
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:uncacheable" keyValue="uncacheable" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="entityKeyValues" keyValue="bindingKey" tModelKey="uddi:uddi.org:categorization:entitykeyvalues" />
+            <keyedReference keyName="" keyValue="uddi:juddi.apache.org:servicebindings-valueset-cp" tModelKey="uddi:uddi.org:categorization:validatedby"/>
+        </categoryBag>
+    </tModel>
+   
+    
+    
+    
+    <tModel tModelKey="uddi:uddi.org:categorization:derivedfrom">
+        <name>uddi-org:derivedFrom</name>
+        <description>Category system for referring tModels to other
+            tModels for the purpose of reuse.
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#DerivedFrom
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:uncacheable" keyValue="uncacheable" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="entityKeyValues" keyValue="tModelKey" tModelKey="uddi:uddi.org:categorization:entitykeyvalues" />
+            <keyedReference keyName="" keyValue="uddi:juddi.apache.org:servicebindings-valueset-cp" tModelKey="uddi:uddi.org:categorization:validatedby"/>
+        </categoryBag>
+    </tModel>
+    
+       
+    <tModel tModelKey="uuid:5678dd4f-f95d-35f9-9ea6-f79a7dd64656">
+        <name>uddi-org:derivedFrom</name>
+        <description>Category system for referring tModels to other
+            tModels for the purpose of reuse.
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#DerivedFrom
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:uncacheable" keyValue="uncacheable" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="entityKeyValues" keyValue="tModelKey" tModelKey="uddi:uddi.org:categorization:entitykeyvalues" />
+            <keyedReference keyName="" keyValue="uddi:juddi.apache.org:servicebindings-valueset-cp" tModelKey="uuid:25b22e3e-3dfa-3024-b02a-3438b9050b59"/>
+        </categoryBag>
+    </tModel>
+    
+    
+    
+    
+    <tModel tModelKey="uddi:uddi.org:categorization:entitykeyvalues">
+        <name>uddi-org:entityKeyValues</name>
+        <description>Category system used to declare that a value set
+            uses entity keys as valid values.
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#entityKeyValues
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="" keyValue="uddi:juddi.apache.org:servicebindings-valueset-cp" tModelKey="uddi:uddi.org:categorization:validatedby"/>
+        </categoryBag>
+    </tModel>
+    
+    
+    <tModel tModelKey="uuid:916b87bf-0756-3919-8eae-97dfa325e5a4">
+        <name>uddi-org:entityKeyValues</name>
+        <description>Category system used to declare that a value set
+            uses entity keys as valid values.
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#entityKeyValues
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+             <keyedReference keyName="" keyValue="uddi:juddi.apache.org:servicebindings-valueset-cp" tModelKey="uuid:25b22e3e-3dfa-3024-b02a-3438b9050b59"/>
+        </categoryBag>
+    </tModel>
+   
+    
+    
+    
+    <tModel tModelKey="uddi:uddi.org:protocol:serverauthenticatedssl3">
+        <name>uddi-org:serverAuthenticatedSSL3</name>
+        <description>Secure Sockets Layer Version 3.0 with Server
+            Authentication
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#serverSSL3
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:protocol" keyValue="protocol" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <!--
+      <tModel tModelKey="uuid:c8aea832-3faf-33c6-b32a-bbfd1b926294">
+        <name>uddi-org:serverAuthenticatedSSL3
+        </name>
+        <description>Secure Sockets Layer Version 3.0 with Server
+            Authentication
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#serverSSL3
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:protocol" keyValue="protocol" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    -->
+    <tModel tModelKey="uddi:uddi.org:protocol:mutualauthenticatedssl3">
+        <name>uddi-org:mutualAuthenticatedSSL3
+        </name>
+        <description>Secure Sockets Layer Version 3.0 with Mutual
+            Authentication
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#mutualSSL3
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:protocol" keyValue="protocol" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    
+     <tModel tModelKey="uuid:9555b5b6-55d4-3b0e-bb17-e084fed4e33f">
+        <name>uddi-org:mutualAuthenticatedSSL3
+        </name>
+        <description>Secure Sockets Layer Version 3.0 with Mutual
+            Authentication
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#mutualSSL3
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:protocol" keyValue="protocol" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    
+    
+    <tModel tModelKey="uddi:uddi.org:transport:http">
+        <name>uddi-org:http</name>
+        <description> A Web service that uses HTTP transport</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#overHTTP
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    
+    <tModel tModelKey="uuid:68DE9E80-AD09-469D-8A37-088422BFBC36">
+        <name>uddi-org:http</name>
+        <description> A Web service that uses HTTP transport</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#overHTTP
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+
+
+    <tModel tModelKey="uddi:uddi.org:transport:smtp">
+        <name>uddi-org:smtp</name>
+        <description>E-mail based Web service</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#overSMTP
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    
+    <tModel tModelKey="uuid:93335D49-3EFB-48A0-ACEA-EA102B60DDC6">
+        <name>uddi-org:smtp</name>
+        <description>E-mail based Web service</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#overSMTP
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    
+    
+    <tModel tModelKey="uddi:uddi.org:transport:userfriendlysmtp">
+        <name>Human Readable SMTP Email Deliveries</name>
+        <description>This is a jUDDI extension for providing SMTP based subscription alerts in a human readable fashion.</description>
+        
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    
+    
+    <tModel tModelKey="uddi:uddi.org:transport:ftp">
+        <name>uddi-org:ftp</name>
+        <description>File Transfer Protocol (FTP) based Web service
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#overFTP
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    
+    <tModel tModelKey="uuid:5FCF5CD0-629A-4C50-8B16-F94E9CF2A674">
+        <name>uddi-org:ftp</name>
+        <description>File Transfer Protocol (FTP) based Web service
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#overFTP
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+
+    <tModel tModelKey="uddi:uddi.org:transport:fax">
+        <name>uddi-org:fax</name>
+        <description>Fax-based Web service</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#overFax
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:transport:telephone">
+        <name>uddi-org:telephone</name>
+        <description>Telephone based service</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#overPhone
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:transport:rmi">
+        <name>uddi-org:rmi</name>
+        <description>Java RMI based service registered to the Java Registry</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://juddi.apache.org/docs/3.0/userguide/html_single/index.html#sect-overRMI
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:transport:jndi-rmi">
+        <name>uddi-org:jndi-rmi</name>
+        <description>A Java RMI based service registered to a JNDI Registry</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://juddi.apache.org/docs/3.0/userguide/html_single/index.html#sect-overJNDIRMI
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+	
+	
+	    <tModel tModelKey="uddi:uddi.org:transport:amqp">
+        <name>uddi-org:amqp</name>
+        <description> A Web service that uses the AMQP transport</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+               http://www.amqp.org/
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+
+	
+		    <tModel tModelKey="uddi:uddi.org:transport:omgdds">
+        <name>uddi-org:omgdds</name>
+        <description> A Web service that uses the OMG DDS transport</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+              http://portals.omg.org/dds/
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+	
+	
+	<tModel tModelKey="uddi:uddi.org:transport:udp">
+        <name>uddi-org:udp</name>
+        <description> A Web service that uses the UDP transport</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+              http://docs.oasis-open.org/ws-dd/soapoverudp/1.1/os/wsdd-soapoverudp-1.1-spec-os.html
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+	
+	<tModel tModelKey="uddi:uddi.org:transport:jms">
+        <name>uddi-org:jms</name>
+        <description> A Web service that uses the JMS API</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+              http://docs.oasis-open.org/ws-dd/soapoverudp/1.1/os/wsdd-soapoverudp-1.1-spec-os.html
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+	
+	<tModel tModelKey="uddi:uddi.org:protocol:rest">
+        <name>uddi-org:protocol:rest</name>
+        <description xml:lang="en">A tModel that represents the Representational State Transfer architectural style</description>
+        <overviewDoc>
+            <overviewURL>
+               http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:protocol" keyValue="protocol" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+	
+	
+	
+	
+    <tModel tModelKey="uddi:uddi.org:findqualifier:approximatematch">
+        <name>uddi-org:approximateMatch:SQL99
+        </name>
+        <description>UDDI approximate matching find qualifier
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#wildcard
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:exactmatch">
+        <name>uddi-org:exactMatch</name>
+        <description>UDDI exact name matching findQualifier
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#exactmatch
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:caseinsensitivematch">
+        <name>uddi-org:caseInsensitiveMatch
+        </name>
+        <description>UDDI case insensitive matching find qualifier
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#caseinsens
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:casesensitivematch">
+        <name>uddi-org:caseSensitiveMatch</name>
+        <description>UDDI Case Sensitive Matching find qualifier
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#casesens
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:diacriticsinsensitivematch">
+        <name>uddi-org:diacriticsInsensitiveMatch
+        </name>
+        <description>UDDI Diacritics Insensitive Matching find qualifier
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#diacritInsens
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:diacriticssensitivematch">
+        <name>uddi-org:diacriticsSensitiveMatch
+        </name>
+        <description>UDDI Diacritics Sensitive Matching find qualifier
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#diacritSens
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:sortorder:binarysort">
+        <name>uddi-org:binarySort</name>
+        <description>UDDI binary sort sortOrder qualifier
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#sortOrd
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:sortOrder" keyValue="sortOrder" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:sortorder:uts-10">
+        <name>uddi-org:UTS-10</name>
+        <description>UDDI Unicode Technical Standard #10 sort
+            collation sequence find qualifier
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#UCASort
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:sortOrder" keyValue="sortOrder" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:caseinsensitivesort">
+        <name>uddi-org:caseInsensitiveSort</name>
+        <description>UDDI sort qualifier used to sort results without
+            regard to case
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#caseInsensSort
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:casesensitivesort">
+        <name>uddi-org:caseSensitiveSort</name>
+        <description>UDDI sort qualifier used to sort results using
+            case sensitivity
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#caseSensSort
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+
+            <keyedReference keyName="uddi-org:types:sortOrder" keyValue="sortOrder" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:sortbynameasc">
+        <name>uddi-org:sortByNameAsc</name>
+        <description>UDDI sort qualifier used to sort results by name
+            in ascending order
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#nameAsc
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:sortbynamedesc">
+        <name>uddi-org:sortByNameDesc</name>
+        <description>UDDI sort qualifier used to sort results by
+            name in descending order
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#nameDesc
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:sortbydateasc">
+        <name>uddi-org:sortByDateAsc</name>
+        <description>UDDI sort qualifier used to sort results by date in
+            ascending order
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#dateAsc
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:sortbydatedesc">
+        <name>uddi-org:sortByDateDesc</name>
+        <description>UDDI sort qualifier used to sort results
+            by date in descending order
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#dateDesc
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:andallkeys">
+        <name>uddi-org:andAllKeys</name>
+        <description>UDDI find qualifier used to request that a
+            logical AND be performed on bag contents
+            prior to a search
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#andAll
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:orallkeys">
+        <name>uddi-org:orAllKeys</name>
+        <description>UDDI find qualifier used to request that a
+            logical OR be performed on bag contents
+            prior to a search
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#orAll
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:orlikekeys">
+        <name>uddi-org:orLikeKeys</name>
+        <description>UDDI find qualifier used to find entities
+            that reference one of the values from each
+            referenced value set
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#orLike
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:combinecategorybags">
+        <name>uddi-org:combineCategoryBags</name>
+        <description>UDDI find qualifier used to treat all of the
+            categoryBags within a businessEntity as if
+            they were one during inquiry
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#combineCatBags
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:servicesubset">
+        <name>uddi-org:serviceSubset</name>
+        <description>UDDI find qualifier used to use categoryBags
+            of businessService elements to satisfy the
+            find_business inquiry.
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#servSubset
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:bindingsubset">
+        <name>uddi-org:bindingSubset</name>
+        <description>UDDI find qualifier for specifying use of
+            categoryBags of bindingTempate elements to satisfy
+            the find_business or find_service inquiries.
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#bindSubset
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:suppressprojectedservices">
+        <name>uddi-org:suppressProjectedServices
+        </name>
+        <description>UDDI find qualifier used to exclude service
+            projections from an inquiry function at all
+            levels.
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#suppressProjSvcs
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:findqualifier:signaturepresent">
+        <name>uddi-org:signaturePresent</name>
+        <description>UDDI findQualifier used to return only entities
+            that have or are contained in entities that have
+            XML Digital Signatures.
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#sign
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:specification:hostingredirector">
+        <name>uddi-org:hostingRedirector</name>
+        <description>UDDI Hosting Redirector service specification
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#hostDir
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:specification" keyValue="specification" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:specification:v3_policy">
+        <name>uddi-org:v3_policy</name>
+        <description>UDDI Policy Description service specification
+        </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#policyDesc
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:specification" keyValue="specification" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:v3_ownership_transfer">
+        <name>uddi-org:ownership_transfer_v3</name>
+        <description>UDDI Custody and Ownership Transfer API V3.0</description>
+        <overviewDoc>
+            <overviewURL useType="wsdlInterface">
+                http://uddi.org/wsdl/uddi_custody_v3_binding.wsdl
+            </overviewURL>
+        </overviewDoc>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#OwnershipTransfer
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl"
+                      keyValue="wsdlSpec"
+                      tModelKey="uddi:uddi.org:categorization:types"/>
+            <keyedReference keyName="uddi-org:types:soap"
+                      keyValue="soapSpec"
+                      tModelKey="uddi:uddi.org:categorization:types"/>
+            <keyedReference keyName="uddi-org:types:xml"
+                      keyValue="xmlSpec"
+                      tModelKey="uddi:uddi.org:categorization:types"/>
+            <keyedReference keyName="uddi-org:types:specification"
+                      keyValue="specification"
+                      tModelKey="uddi:uddi.org:categorization:types"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:v3_subscription">
+        <name>uddi-org:subscription_v3</name>
+        <description>UDDI Subscription API V3.0</description>
+        <overviewDoc>
+            <overviewURL useType="wsdlInterface">
+                http://uddi.org/wsdl/uddi_sub_v3_binding.wsdl
+            </overviewURL>
+        </overviewDoc>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#Sub
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl"
+                      keyValue="wsdlSpec"
+                      tModelKey="uddi:uddi.org:categorization:types"/>
+            <keyedReference keyName="uddi-org:types:soap"
+                      keyValue="soapSpec"
+                      tModelKey="uddi:uddi.org:categorization:types"/>
+            <keyedReference keyName="uddi-org:types:xml"
+                      keyValue="xmlSpec"
+                      tModelKey="uddi:uddi.org:categorization:types"/>
+            <keyedReference keyName="uddi-org:types:specification"
+                      keyValue="specification"
+                      tModelKey="uddi:uddi.org:categorization:types"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uddi:uddi.org:v3_subscriptionlistener">
+        <name>uddi-org:subscriptionListener_v3</name>
+        <description>UDDI Subscription Listener API V3.0</description>
+        <overviewDoc>
+            <overviewURL useType="wsdlInterface">
+                http://uddi.org/wsdl/uddi_subr_v3_binding.wsdl
+            </overviewURL>
+        </overviewDoc>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#Subscribe
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl"
+                      keyValue="wsdlSpec"
+                      tModelKey="uddi:uddi.org:categorization:types"/>
+            <keyedReference keyName="uddi-org:types:soap"
+                      keyValue="soapSpec"
+                      tModelKey="uddi:uddi.org:categorization:types"/>
+            <keyedReference keyName="uddi-org:types:xml"
+                      keyValue="xmlSpec"
+                      tModelKey="uddi:uddi.org:categorization:types"/>
+            <keyedReference keyName="uddi-org:types:specification"
+                      keyValue="specification"
+                      tModelKey="uddi:uddi.org:categorization:types"/>
+        </categoryBag>
+    </tModel>
+    <!--  New Canonical tModels (see also JUDDI-461) -->
+    <!--  1. WSDL Entity Type tModel -->
+    <tModel tModelKey="uddi:uddi.org:wsdl:types">
+        <name>uddi-org:wsdl:types</name>
+        <description xml:lang="en">WSDL Type Category System</description>
+        <overviewDoc>
+            <overviewURL>
+                http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#wsdlTypes
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:unchecked" keyValue="unchecked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+	
+	 <tModel tModelKey="uddi:uddi.org:wadl:types">
+        <name>uddi-org:wadl:types</name>
+        <description xml:lang="en">WADL Type Category System</description>
+        <overviewDoc>
+            <overviewURL>
+                http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:unchecked" keyValue="unchecked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+	
+	
+    <!-- 2. XML Namespace tModel  -->
+    <tModel tModelKey="uddi:uddi.org:xml:namespace">
+        <name>uddi-org:xml:namespace</name>
+        <description xml:lang="en">A category system used to indicate namespaces</description>
+        <overviewDoc>
+            <overviewURL>   
+                http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlNamespace
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:unchecked" keyValue="unchecked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <!-- 3. XML Local Name tModel  -->
+    <tModel tModelKey="uddi:uddi.org:xml:localname">
+        <name>uddi-org:xml:localName</name>
+        <description xml:lang="en">A category system used to indicate XML local names</description>
+        <overviewDoc>
+            <overviewURL>   
+                http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlLocalName
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:unchecked" keyValue="unchecked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <!--  4. WSDL portType Reference tModel -->
+    <tModel tModelKey="uddi:uddi.org:wsdl:porttypereference">
+        <name>uddi-org:wsdl:portTypeReference</name>
+        <description xml:lang="en">A category system used to reference a wsdl:portType tModel</description>
+        <overviewDoc>
+            <overviewURL>
+                http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#portTypeReference
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <!-- 5. SOAP Protocol tModel  -->
+    <tModel tModelKey="uddi:uddi.org:protocol:soap">
+        <name>uddi-org:protocol:soap</name>
+        <description xml:lang="en">A tModel that represents the SOAP 1.1 protocol</description>
+        <overviewDoc>
+            <overviewURL>
+                http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#soap
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:protocol" keyValue="protocol" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+	
+	
+	 <tModel tModelKey="uddi:uddi.org:protocol:soap12">
+        <name>uddi-org:protocol:soap12</name>
+        <description xml:lang="en">A tModel that represents the SOAP 1.2 protocol</description>
+        <overviewDoc>
+            <overviewURL>
+                http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#soap
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:protocol" keyValue="protocol" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+	
+	
+    <!-- 6. HTTP Protocol tModel -->
+    <tModel tModelKey="uddi:uddi.org:protocol:http">
+        <name>uddi-org:protocol:http</name>
+        <description xml:lang="en">A tModel that represents the HTTP protocol</description>
+        <overviewDoc>
+            <overviewURL>
+                http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#http
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:protocol" keyValue="protocol" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <!-- 7. Protocol Categorization -->
+    <tModel tModelKey="uddi:uddi.org:wsdl:categorization:protocol">
+        <name>uddi-org:wsdl:categorization:protocol</name>
+        <description xml:lang="en">Category system used to describe the protocol supported by a wsdl:binding</description>
+        <overviewDoc>
+            <overviewURL>
+                http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#protocol
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <!-- 8. Transport Categorization -->
+    <tModel tModelKey="uddi:uddi.org:wsdl:categorization:transport">
+        <name>uddi-org:wsdl:categorization:transport</name>
+        <description xml:lang="en">Category system used to describe the transport supported by a wsdl:binding</description>
+        <overviewDoc>
+            <overviewURL>
+                http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#transport
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <!-- 9. WSDL Address tModel -->
+    <tModel tModelKey="uddi:uddi.org:wsdl:address" >
+        <name>uddi-org:wsdl:address</name>
+        <description xml:lang="en">A tModel used to indicate the WSDL address option</description>
+        <overviewDoc>
+            <overviewURL>
+                http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#Address
+            </overviewURL>
+        </overviewDoc>
+    </tModel>
+    <!-- BPEL Categorization -->
+    <tModel tModelKey="uddi:uddi.org:bpel:types">
+        <name>uddi-org:bpel:types</name>
+        <description xml:lang="en">Category system used indicate BPEL processes</description>
+        <overviewDoc>
+            <overviewURL>
+                http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-bpel-20040725.htm
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:unchecked" keyValue="unchecked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+  
+   
+  
+  
+    <tModel tModelKey="uddi:tmodelkey:keygenerator" xmlns="urn:uddi-org:api_v3">
+        <name>uddi:tmodelkey:keygenerator
+        </name>
+        <description>Key Generator for generic UDDI tModel Keys
+        </description>
+       
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:keyGenerator" keyValue="keyGenerator" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+
+  
+    <tModel tModelKey="uddi:tmodelkey:address">
+        <name>uddi:tmodelkey:address</name>
+        <description xml:lang="en">Identifies an address. This can be a physical, mailing, or electric address.</description>
+       
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" 
+                keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:unchecked"
+                keyValue="unchecked" tModelKey="uddi:uddi.org:categorization:types"/>
+        </categoryBag>
+    </tModel>
+    
+     <tModel tModelKey="uddi:tmodelkey:group">
+        <name>uddi:tmodelkey:group</name>
+        <description xml:lang="en">Identifies a tModel group.</description>
+       
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+
+    <tModel tModelKey="uddi:tmodelkey:blank">
+        <name>uddi:tmodelkey:blank</name>
+        <description xml:lang="en">Identifies a blank tModel</description>
+       
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    
+    
+    
+    
+    
+    
+    <tModel tModelKey="urn:wsdm.org:keygenerator" xmlns="urn:uddi-org:api_v3">
+        <name>urn:wsdm.org:keygenerator</name>
+        <description>Key Generator for WSDM.org tModels </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#protocolKeyGen
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:keyGenerator" keyValue="keyGenerator" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+     <tModel tModelKey="urn:wsdm.org:metric:keygenerator" xmlns="urn:uddi-org:api_v3">
+        <name>urn:wsdm.org:metric:keygenerator</name>
+        <description>Key Generator for WSDM.org Metric tModels </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#protocolKeyGen
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:keyGenerator" keyValue="keyGenerator" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+     <tModel tModelKey="urn:wsdm.org:identity:keygenerator" xmlns="urn:uddi-org:api_v3">
+        <name>urn:wsdm.org:identity:keygenerator</name>
+        <description>Key Generator for WSDM.org Identity tModels </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#protocolKeyGen
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:keyGenerator" keyValue="keyGenerator" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="urn:wsdm.org:qos:keygenerator" xmlns="urn:uddi-org:api_v3">
+        <name>urn:wsdm.org:qos:keygenerator</name>
+        <description>Key Generator for WSDM.org Quality of Service tModels </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#protocolKeyGen
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:keyGenerator" keyValue="keyGenerator" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="urn:wsdm.org:metric:requestcount">
+        <name>RequestCount</name>
+        <description xml:lang="en">The number of requests to a given service. (number of requests)</description>
+       <overviewDoc>
+            <overviewURL>
+                https://www.oasis-open.org/committees/download.php/6227/uddi-spec-tc-tn-QoS-metrics-20040224.doc
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="urn:wsdm.org:metric:replycount">
+        <name>ReplyCount</name>
+        <description xml:lang="en">The number of replies from a given service. (number of replies)</description>
+       <overviewDoc>
+            <overviewURL>
+                https://www.oasis-open.org/committees/download.php/6227/uddi-spec-tc-tn-QoS-metrics-20040224.doc
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+     <tModel tModelKey="urn:wsdm.org:metric:faultcount">
+        <name>FaultCount</name>
+        <description xml:lang="en">The number of faults from a given service. (number of faults)</description>
+       <overviewDoc>
+            <overviewURL>
+                https://www.oasis-open.org/committees/download.php/6227/uddi-spec-tc-tn-QoS-metrics-20040224.doc
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="urn:wsdm.org:identity:resourceId">
+        <name>ResourceId</name>
+        <description xml:lang="en">This is the unique identity by which the resource (service) is known to the management system.  It is useful for further queries. (resource identification in URI format)</description>
+       <overviewDoc>
+            <overviewURL>
+                https://www.oasis-open.org/committees/download.php/6227/uddi-spec-tc-tn-QoS-metrics-20040224.doc
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    
+    <tModel tModelKey="urn:wsdm.org:metric:lastupdatetime">
+        <name>LastUpdateTime</name>
+        <description xml:lang="en">Represents the last time this metric was updated. (time value)</description>
+       <overviewDoc>
+            <overviewURL>
+                https://www.oasis-open.org/committees/download.php/6227/uddi-spec-tc-tn-QoS-metrics-20040224.doc
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    
+    <tModel tModelKey="urn:wsdm.org:qos:responsetime_average">
+        <name>ResponseTime_Average</name>
+        <description xml:lang="en">Average response time of the service. (numeric value or symbolic rating)</description>
+       <overviewDoc>
+            <overviewURL>
+                https://www.oasis-open.org/committees/download.php/6227/uddi-spec-tc-tn-QoS-metrics-20040224.doc
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="urn:wsdm.org:qos:throughput_count">
+        <name>Throughput_count</name>
+        <description xml:lang="en">Throughput count. (numeric value or symbolic rating)</description>
+       <overviewDoc>
+            <overviewURL>
+                https://www.oasis-open.org/committees/download.php/6227/uddi-spec-tc-tn-QoS-metrics-20040224.doc
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="urn:wsdm.org:qos:throughput_bytes">
+        <name>Throughput_bytes</name>
+        <description xml:lang="en">Throughput bytes. (numeric value or symbolic rating)</description>
+       <overviewDoc> 
+            <overviewURL>
+                https://www.oasis-open.org/committees/download.php/6227/uddi-spec-tc-tn-QoS-metrics-20040224.doc
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="urn:wsdm.org:qos:reliability">
+        <name>Reliability</name>
+        <description xml:lang="en">Reliability or the measure of. (numeric value or symbolic rating)</description>
+       <overviewDoc>
+            <overviewURL>
+                https://www.oasis-open.org/committees/download.php/6227/uddi-spec-tc-tn-QoS-metrics-20040224.doc
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="urn:wsdm.org:qos:reportingperiodstart">
+        <name>ReportingPeriodStart</name>
+        <description xml:lang="en">The beginning on the reporting time period used for the information above. (dateTime)</description>
+       <overviewDoc>
+            <overviewURL>
+                https://www.oasis-open.org/committees/download.php/6227/uddi-spec-tc-tn-QoS-metrics-20040224.doc
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="urn:wsdm.org:qos:reportingperiodend">
+        <name>ReportingPeriodEnd</name>
+        <description xml:lang="en">The end of the reporting time period used for the information above. (dateTime)</description>
+       <overviewDoc>
+            <overviewURL>
+                https://www.oasis-open.org/committees/download.php/6227/uddi-spec-tc-tn-QoS-metrics-20040224.doc
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="urn:wsdm.org:qos:updateinterval">
+        <name>UpdateInterval</name>
+        <description xml:lang="en">How often is this information updated in UDDI (it is not assumed to be realtime). (duration)</description>
+       <overviewDoc>
+            <overviewURL>
+                https://www.oasis-open.org/committees/download.php/6227/uddi-spec-tc-tn-QoS-metrics-20040224.doc
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+	
+	<tModel tModelKey="urn:uddi:uddi.org:version">
+        <name>Service Interface Version</name>
+        <description xml:lang="en">When using this tModel as a tModelInstance, it can be used to describe a version associated with either a service interface, a bindingTemplate service instance. Note: This is a jUDDI specific addon and may not be present in other registries.</description>
+       <overviewDoc>
+            <overviewURL>
+               http://www.ibm.com/developerworks/webservices/library/ws-version/
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:categorization:iso3166">
+		<name>ubr-uddi-org:iso-ch:3166-2003</name>
+        <name>ISO 3166 Country Codes</name>
+        <description xml:lang="en">When used in a Category Bag for a Business or Service, it can indicate the physical or logically location of the Business or Service.</description>
+		<description xml:lang="en">ISO 3166 Codes for names of countries or regions. Updated with newsletters ISO 3166-1 V-1, V-2, V-3, V-4, V-5, V-6, V-7, ISO 3166-2 I-1, I-2, I-3, I-4.</description>
+       <overviewDoc>
+            <overviewURL>
+               http://www.iso.org/iso/country_codes
+            </overviewURL>
+        </overviewDoc>
+		 <overviewDoc>
+		<overviewURL useType="text">
+		  http://uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#ISO3166
+		</overviewURL> 
+	  </overviewDoc> 
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+			<keyedReference keyName="uddi-org:types:categorization"      keyValue="categorization"       tModelKey="uddi:uddi.org:categorization:types"/> 
+			 <keyedReference keyName="uddi-org:types:cacheable"      keyValue="cacheable"       tModelKey="uddi:uddi.org:categorization:types"/> 
+			<keyedReference keyName="uddi-org:types:valueSet"      keyValue="valueSet"       tModelKey="uddi:uddi.org:categorization:types"/> 
+   
+			
+        </categoryBag>
+    </tModel>
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:categorizationgroup:unspsc_geo3166">
+        <name>United Nations Standard Products and Services Code with ISO 3166 Grouping</name>
+        <description xml:lang="en">Grouping of the category systems for UNSPSC and ISO 3166. As a consequence, keyedReferenceGroups that reference this tModel describe countries or regions where a product category is offered.</description>
+       <overviewDoc>
+            <overviewURL>
+               http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc535251470
+            </overviewURL>
+        </overviewDoc>
+		<overviewDoc>
+            <overviewURL>
+               http://www.unspsc.org/
+            </overviewURL>
+        </overviewDoc>
+		
+		<categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+			<keyedReference keyName="uddi-org:types:categorization"      keyValue="categorization"       tModelKey="uddi:uddi.org:categorization:types"/> 
+		</categoryBag>
+    </tModel>
+	
+	
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:categorizationgroup:wgs84:keygenerator">
+        <name>World Geodetic System Key Generator</name>
+        <description xml:lang="en">Key Generator for Standard for use in cartography, geodesy, and navigation. </description>
+       <overviewDoc>
+            <overviewURL>
+               http://www.ngs.noaa.gov/PUBS_LIB/Geodesy4Layman/TR80003E.HTM#ZZ11
+            </overviewURL>
+        </overviewDoc>
+		<overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#protocolKeyGen
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+			<keyedReference keyName="uddi-org:types:keyGenerator" keyValue="keyGenerator" tModelKey="uddi:uddi.org:categorization:types" />
+         </categoryBag>
+    </tModel>
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:categorizationgroup:wgs84">
+        <name>World Geodetic System</name>
+        <description xml:lang="en">Standard for use in cartography, geodesy, and navigation. </description>
+       <overviewDoc>
+            <overviewURL>
+               http://www.ngs.noaa.gov/PUBS_LIB/Geodesy4Layman/TR80003E.HTM#ZZ11
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+	
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:categorizationgroup:wgs84:latitude">
+        <name>WGS Latitude</name>
+        <description xml:lang="en">Standard for use in cartography, geodesy, and navigation. </description>
+       <overviewDoc>
+            <overviewURL>
+               http://www.ngs.noaa.gov/PUBS_LIB/Geodesy4Layman/TR80003E.HTM#ZZ11
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:categorizationgroup:wgs84:longitude">
+        <name>WGS Longitude</name>
+        <description xml:lang="en">Standard for use in cartography, geodesy, and navigation. </description>
+       <overviewDoc>
+            <overviewURL>
+               http://www.ngs.noaa.gov/PUBS_LIB/Geodesy4Layman/TR80003E.HTM#ZZ11
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+	
+	<tModel tModelKey="org:ubr:categorization:geo_precision">
+        <name xml:lang="en">WGS Geographic Precision</name>
+        <description xml:lang="en">Standard for use in cartography, geodesy, and navigation. </description>
+       <overviewDoc>
+            <overviewURL>
+               http://www.ngs.noaa.gov/PUBS_LIB/Geodesy4Layman/TR80003E.HTM#ZZ11
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+        </categoryBag>
+    </tModel>
+	
+	
+	
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:keygenerator">
+        <name>Universal Business Registry Key Generator</name>
+        <description>UBR domain key generator</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#keyGen
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+                      keyValue="keyGenerator" />
+        </categoryBag>
+    </tModel>
+	<tModel tModelKey="uddi:uddi.org:ubr:categorizationgroup:keygenerator">
+        <name>Universal Business Registry Categorization Group Key Generator</name>
+        <description>UBR Categorization Group domain key generator</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#keyGen
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+                      keyValue="keyGenerator" />
+        </categoryBag>
+    </tModel>
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:categorization:keygenerator">
+        <name>Universal Business Registry Categorization Key Generator</name>
+        <description>UBR Categorization domain key generator</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#keyGen
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+                      keyValue="keyGenerator" />
+        </categoryBag>
+    </tModel>
+	
+	 <tModel tModelKey="uddi:uddi.org:ubr:postaladdress">
+	  <name>ubr-uddi-org:postalAddress</name>
+	  <description xml:lang="en">Postal address structure</description>
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      http://uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#postal
+	    </overviewURL>
+	  </overviewDoc>
+	  <categoryBag>
+	    <keyedReference keyName="uddi-org:types:postalAddress"	      keyValue="postalAddress"	      tModelKey="uddi:uddi.org:categorization:types"/>
+	    <keyedReference keyName="uddi-org:types:unchecked"	      keyValue="unchecked"	      tModelKey="uddi:uddi.org:categorization:types"/>
+	   </categoryBag>
+	</tModel>
+	
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:relationships">
+	  <name>ubr-uddi-org:relationships</name>
+	  <description xml:lang="en">relationships in a UBR</description>
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      http://uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm
+	    </overviewURL>
+	  </overviewDoc>
+	  <categoryBag>
+	    <keyedReference keyName="uddi-org:types:unchecked"
+	      keyValue="unchecked"
+	      tModelKey="uddi:uddi.org:categorization:types"/>
+	   </categoryBag>
+	</tModel>
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:identifier:keygenerator">
+	  <name>ubr-uddi-org:identifier key generator</name>
+	  <description>UBR Identifier Group domain key generator</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#keyGen
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+                      keyValue="keyGenerator" />
+        </categoryBag>
+	</tModel>
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:identifier:owningbusiness">
+	  <name>UBR Identifier Owning Business</name>
+	  <description xml:lang="en">Identifier for an Owning Business in a UBR</description>
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      http://uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm
+	    </overviewURL>
+	  </overviewDoc>
+	  <categoryBag>
+	    <keyedReference keyName="uddi-org:types:unchecked"
+	      keyValue="unchecked"
+	      tModelKey="uddi:uddi.org:categorization:types"/>
+	   </categoryBag>
+	</tModel>
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:categorization:unspsc">
+	  <name>UBR Categorization United Nations Standard Products and Services Code</name>
+	  <description xml:lang="en">UNSPSC Categorization in a UBR</description>
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      http://uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm
+	    </overviewURL>
+	  </overviewDoc>
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      http://www.unspsc.org/
+	    </overviewURL>
+	  </overviewDoc>
+	  
+	  <categoryBag>
+	    <!--<keyedReference keyName="uddi-org:types:unchecked"	      keyValue="unchecked"	      tModelKey="uddi:uddi.org:categorization:types"/>-->
+		  <keyedReference keyName="uddi-org:types:categorization"      keyValue="categorization"       tModelKey="uddi:uddi.org:categorization:types"/> 
+		<keyedReference keyName="uddi-org:types:checked"      keyValue="checked"       tModelKey="uddi:uddi.org:categorization:types"/> 
+		<keyedReference keyName="uddi-org:types:cacheable"      keyValue="cacheable"       tModelKey="uddi:uddi.org:categorization:types"/> 
+	  
+	   </categoryBag>
+	</tModel>
+	
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:categorization:naics:keygenerator">
+	  <name>North American Industry Classification System Key Generator</name>
+	  <description xml:lang="en">North American Industry Classification System Key Generator.</description>
+	  <description xml:lang="en">The North American Industry Classification System (NAICS) is the standard used by Federal statistical agencies in classifying business establishments for the purpose of collecting, analyzing, and publishing statistical data in the U.S. business economy</description>
+	  <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#keyGen
+            </overviewURL>
+			<overviewURL useType="text">
+                https://www.census.gov/eos/www/naics/index.html
+            </overviewURL>
+			
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+                      keyValue="keyGenerator" />
+        </categoryBag>
+	</tModel>
+	 
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:categorization:naics:1997">
+	  <name>North American Industry Classification System 1997</name>
+	  <description xml:lang="en">North American Industry Classification System 1997</description>
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      https://www.census.gov/eos/www/naics/reference_files_tools/1997/1997.html
+	    </overviewURL>
+		
+	  </overviewDoc>
+	  <overviewDoc>
+	   <overviewURL useType="text">
+            http://uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#NAICS 
+         </overviewURL>  
+		</overviewDoc>
+	  <categoryBag>
+	     <!--<keyedReference keyName="uddi-org:types:unchecked" keyValue="unchecked"  tModelKey="uddi:uddi.org:categorization:types"/>-->
+		 <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types"/> 
+	     <keyedReference keyName="uddi-org:types:checked"  keyValue="checked"   tModelKey="uddi:uddi.org:categorization:types"/> 
+         <keyedReference keyName="uddi-org:types:cacheable"  keyValue="cacheable"  tModelKey="uddi:uddi.org:categorization:types"/> 
+	   </categoryBag>
+	</tModel>
+	 
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:categorization:naics:2012">
+	  <name>North American Industry Classification System 2012</name>
+	  <description xml:lang="en">North American Industry Classification System 2012</description>
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      https://www.census.gov/cgi-bin/sssd/naics/naicsrch?chart=2012
+	    </overviewURL>
+	  </overviewDoc>
+	  <categoryBag>
+	    <keyedReference keyName="uddi-org:types:unchecked"
+	      keyValue="unchecked"
+	      tModelKey="uddi:uddi.org:categorization:types"/>
+	   </categoryBag>
+	</tModel>
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:categorization:naics:2002">
+	  <name>ntis-gov:naics:2002</name> 
+	  <name>North American Industry Classification System 2002</name>
+	  <description xml:lang="en">North American Industry Classification System 2002</description>
+	  <description xml:lang="en">Business Taxonomy: NAICS (2002 Release)</description> 
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      https://www.census.gov/cgi-bin/sssd/naics/naicsrch?chart=2002
+	    </overviewURL>
+	  </overviewDoc>
+	  <overviewDoc> 
+    <overviewURL>
+      http://uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#NAICS2002 
+    </overviewURL> 
+  </overviewDoc> 
+	  <categoryBag>
+		<keyedReference keyName="uddi-org:types:categorization"     keyValue="categorization"     tModelKey="uddi:uddi.org:categorization:types"/> 
+		<keyedReference keyName="uddi-org:types:checked"      keyValue="checked"       tModelKey="uddi:uddi.org:categorization:types"/> 
+		<keyedReference keyName="uddi-org:types:cacheable"      keyValue="cacheable"       tModelKey="uddi:uddi.org:categorization:types"/> 
+	   </categoryBag>
+	</tModel>
+
+
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:categorization:naics:2007">
+	  <name>North American Industry Classification System 2007</name>
+	  <description xml:lang="en">North American Industry Classification System 2007</description>
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      https://www.census.gov/cgi-bin/sssd/naics/naicsrch?chart=2007
+	    </overviewURL>
+	  </overviewDoc>
+	  <categoryBag>
+	    <keyedReference keyName="uddi-org:types:unchecked"
+	      keyValue="unchecked"
+	      tModelKey="uddi:uddi.org:categorization:types"/>
+	   </categoryBag>
+	</tModel>
+	
+	
+	
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:taxonomy:keygenerator">
+	  <name>UBR Taxonomies</name>
+	  <description xml:lang="en">Universal Business Registry Taxonomy Key Generator.</description>
+	  <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#keyGen
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+                      keyValue="keyGenerator" />
+        </categoryBag>
+	</tModel>
+
+	<tModel tModelKey="uddi:uddi.org:ubr:taxonomy:naics">
+	  <name>North American Industry Classification System Taxonomy</name>
+	  <description xml:lang="en">North American Industry Classification System Taxonomy</description>
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      https://www.census.gov/eos/www/naics/index.html
+	    </overviewURL>
+	  </overviewDoc>
+	  <categoryBag>
+	    <keyedReference keyName="uddi-org:types:unchecked"
+	      keyValue="unchecked"
+	      tModelKey="uddi:uddi.org:categorization:types"/>
+	   </categoryBag>
+	</tModel>
+	
+	
+	
+	<tModel tModelKey="uddi:uddi.org:sortorder:jis-x4061">
+	  <name>uddi-org:JIS-X4061</name>
+	  <description>UDDI JIS X 4061 Japanese
+				   collation sequence find qualifier
+	  </description>
+	  <overviewDoc typeURI="text">
+		<overviewURL>
+		   http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc42047570
+		</overviewURL> 
+	  </overviewDoc> 
+	  <categoryBag>
+		<keyedReference keyName="uddi-org:types:categorization"
+		  keyValue="sortOrder" 
+		  tModelKey="uddi:uddi.org:categorization:types"/> 
+		<keyedReference keyName="uddi-org:types:categorization"
+		  keyValue="findQualifier" 
+		  tModelKey="uddi:uddi.org:categorization:types"/> 
+	   </categoryBag>
+	</tModel>
+	
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:identifier:dnb.com:keygenerator">
+	  <name>ubr-uddi-org:identifier for dnb.com</name>
+	  <description>UBR Identifier dnb.com Group domain key generator</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#keyGen
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+                      keyValue="keyGenerator" />
+        </categoryBag>
+	</tModel>
+	
+	<tModel tModelKey="uddi:uddi.org:ubr:identifier:dnb.com:d-u-n-s">
+	  <name>Dun and Bradstreet D-U-N-S Number</name>
+	  <description>A unique nine digit identification number, for each physical location of your business. </description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://fedgov.dnb.com/webform/pages/dunsnumber.jsp
+            </overviewURL>
+        </overviewDoc>
+		<overviewDoc>
+			<overviewURL useType="text">
+			  http://uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#D-U-N-S
+			</overviewURL> 
+		  </overviewDoc> 
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:unchecked"	      keyValue="unchecked"	      tModelKey="uddi:uddi.org:categorization:types"/>
+		   <keyedReference keyName="uddi-org:types:identifier"		keyValue="identifier"       tModelKey="uddi:uddi.org:categorization:types"/> 
+		   <keyedReference keyName="D-U-N-S"   keyValue="0060"  tModelKey="uddi:uddi.org:ubr:identifier:iso6523icd"/>
+        </categoryBag>
+	</tModel>
+	<!-- new stuff -->
+	
+	<tModel	 tModelKey="uddi:uddi.org:ubr:identifier:iso6523icd">
+	  <name>ubr-uddi-org:iso-ch:1998:icd</name>
+	  <description xml:lang="EN">ISO 6523 International Code Designator (ICD) System
+	  </description>
+	  <overviewDoc>
+		<overviewURL useType="text">
+		  http://uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#ISO6523Code
+		</overviewURL> 
+		http://metadata-stds.org/Document-library/Draft-standards/6523-Identification-of-Organizations/ICD_list.htm
+	  </overviewDoc> 
+	  <overviewDoc>
+		<overviewURL useType="text">
+		http://metadata-stds.org/Document-library/Draft-standards/6523-Identification-of-Organizations/ICD_list.htm  
+		</overviewURL> 
+	  </overviewDoc> 
+	  <categoryBag>
+		<keyedReference keyName="uddi-org:types:identifier"      keyValue="identifier"       tModelKey="uddi:uddi.org:categorization:types"/> 
+		<keyedReference keyName="uddi-org:types:unchecked"      keyValue="unchecked"       tModelKey="uddi:uddi.org:categorization:types"/> 
+	   </categoryBag>
+	</tModel>
+	
+	
+	<tModel tModelKey="uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823">
+        <name>dnb-com:D-U-N-S</name>
+        <description xml:lang="en">Dun&amp;Bradstreet D-U-N-S® Number</description>
+        <overviewDoc>
+            <description xml:lang="en">This tModel is used for the Dun&amp;Bradstreet D-U-N-S® Number identifier.</description>
+            <overviewURL>http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#D-U-N-S</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="identifier"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2">
+        <name>ntis-gov:naics:1997</name>
+        <description xml:lang="en">Business Taxonomy: NAICS(1997 Release)</description>
+        <overviewDoc>
+            <description xml:lang="en">This tModel defines the NAICS industry taxonomy.</description>
+            <overviewURL>http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#NAICS</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="categorization"/>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="checked"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:C7536010-F786-11DB-A010-E6245C4E79A1">
+        <name>org.jboss.soa.esb.:category</name>
+        <overviewDoc/>
+    </tModel>
+    <tModel tModelKey="uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039">
+        <name>thomasregister-com:supplierID</name>
+        <description xml:lang="en">Thomas Registry Suppliers</description>
+        <overviewDoc>
+            <description xml:lang="en">This tModel is used for the Thomas Register supplier identifier codes.</description>
+            <overviewURL>http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Thomas</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="identifier"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4">
+        <name>uddi-org:general_keywords</name>
+        <description xml:lang="en">Special taxonomy consisting of namespace identifiers and the keywords associated with the namespaces</description>
+        <overviewDoc>
+            <description xml:lang="en">This tModel defines an unidentified taxonomy.</description>
+            <overviewURL>http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#GenKW</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="categorization"/>
+			<keyedReference tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4" keyName="types" keyValue="checked"/>
+        </categoryBag>
+    </tModel>
+   
+    <tModel tModelKey="uuid:AC104DCC-D623-452F-88A7-F8ACD94D9B2B">
+        <name>uddi-org:inquiry_v2</name>
+        <description xml:lang="en">UDDI Inquiry API Version 2 - Core Specification</description>
+        <overviewDoc>
+            <description xml:lang="en">This tModel defines the inquiry API calls for interacting with a V2 UDDI node.</description>
+            <overviewURL>http://www.uddi.org/wsdl/inquire_v2.wsdl</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="specification"/>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="xmlSpec"/>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="soapSpec"/>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="wsdlSpec"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E">
+        <name>uddi-org:isReplacedBy</name>
+        <description xml:lang="en">An identifier system used to point (using UDDI keys) to the tModel (or businessEntity) that is the logical replacement for the one in which isReplacedBy is used</description>
+        <overviewDoc>
+            <description xml:lang="en">This is a checked value set.</description>
+            <overviewURL>http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#IsReplacedBy</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="identifier"/>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="checked"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88">
+        <name>uddi-org:iso-ch:3166-1999</name>
+        <description xml:lang="en">ISO 3166-1:1997 and 3166-2:1998. Codes for names of countries and their subdivisions. Part 1: Country codes. Part 2:Country subdivision codes. Update newsletters include ISO 3166-1 V-1 (1998-02-05), V-2 (1999-10-01), ISO 3166-2 I-1 (1998)</description>
+        <overviewDoc>
+            <description xml:lang="en">Taxonomy used to categorize entries by geographic location.</description>
+            <overviewURL>http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#ISO3166</overviewURL>
+        </overviewDoc>
+		 <overviewDoc>
+            <overviewURL>
+               http://www.iso.org/iso/country_codes
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="categorization"/>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="checked"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:327A56F0-3299-4461-BC23-5CD513E95C55">
+        <name>uddi-org:operators</name>
+        <description xml:lang="en">Taxonomy for categorizing the businessEntity of an operator of a registry.</description>
+        <overviewDoc>
+            <description xml:lang="en">This checked value set is used to identify UDDI operators.</description>
+            <overviewURL>http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Operators</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="categorization"/>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="checked"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:4064C064-6D14-4F35-8953-9652106476A9">
+        <name>uddi-org:owningBusiness</name>
+        <description xml:lang="en">A pointer to a businessEntity that owns the tagged data.</description>
+        <overviewDoc>
+            <description xml:lang="en">This tModel indicates the businessEntity that published or owns the tagged tModel. Used with tModels to establish an &quot;owned&quot; relationship with a registered businessEntity.</description>
+            <overviewURL>http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#owningBusiness</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="categorization"/>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="checked"/>
+            <keyedReference keyName="" keyValue="uddi:juddi.apache.org:servicebindings-valueset-cp" tModelKey="uuid:25b22e3e-3dfa-3024-b02a-3438b9050b59"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794">
+        <name>uddi-org:protocol:http</name>
+        <description xml:lang="en">A tModel that represents the HTTP protocol</description>
+        <overviewDoc>
+            <description xml:lang="en">The HTTP Protocol tModel can be used to indicate that a Web service supports the HTTP protocol.</description>
+            <overviewURL>http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#http</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="uddi-org:types" keyValue="protocol"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E">
+        <name>uddi-org:protocol:soap</name>
+        <description xml:lang="en">A tModel that represents the SOAP 1.1 protocol</description>
+        <overviewDoc>
+            <description xml:lang="en">The SOAP Protocol tModel can be used to indicate that a Web service supports the SOAP 1.1 protocol.</description>
+            <overviewURL>http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#soap</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="uddi-org:types" keyValue="protocol"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03">
+        <name>uddi-org:relationships</name>
+        <description xml:lang="en">Starter set classifications of businessEntity relationships</description>
+        <overviewDoc>
+            <description xml:lang="en">This tModel is used to describe business relationships. Used in the publisher assertion messages.</description>
+            <overviewURL>http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Relationships</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="relationship"/>
+            <keyedReference keyName="" keyValue="uddi:juddi.apache.org:servicebindings-valueset-cp" tModelKey="uuid:25b22e3e-3dfa-3024-b02a-3438b9050b59"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:1E3E9CBC-F8CE-41ab-8F99-88326BAD324A">
+        <name>uddi-org:taxonomy_v2</name>
+        <description xml:lang="en">UDDI Taxonomy API Version 2 - Core Specification</description>
+        <overviewDoc>
+            <description xml:lang="en">This tModel defines the taxonomy validation API calls for interacting with a V2 UDDI node.</description>
+            <overviewURL>http://www.uddi.org/taxonomies/UDDI_Registry_tModels.htm#TaxV2</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="specification"/>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="xmlSpec"/>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="soapSpec"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4">
+        <name>uddi-org:types</name>
+        <description xml:lang="en">UDDI Type Taxonomy</description>
+        <overviewDoc>
+            <description xml:lang="en">Taxonomy used to categorize Service Descriptions.</description>
+            <overviewURL>http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UDDItypes</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="categorization"/>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="checked"/>
+            
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212">
+        <name>uddi-org:wsdl:address</name>
+        <description xml:lang="en">A tModel used to indicate the WSDL address option.</description>
+        <overviewDoc>
+            <description xml:lang="en">The WSDL Address tModel provides A mechanism to indicate that the endpoint address should be obtained from a WSDL document.</description>
+            <overviewURL>http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#Address</overviewURL>
+        </overviewDoc>
+    </tModel>
+    <tModel tModelKey="uuid:4DC74177-7806-34D9-AECD-33C57DC3A865">
+        <name>uddi-org:wsdl:categorization:protocol</name>
+        <description xml:lang="en">Category system used to describe the protocol supported by a wsdl:binding.</description>
+        <overviewDoc>
+            <description xml:lang="en">The Protocol Categorization tModel provides a mechanism to capture this protocol information in the UDDI binding tModel.</description>
+            <overviewURL>http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#protocol</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="uddi-org:types" keyValue="categorization"/>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="uddi-org:types" keyValue="checked"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:E5C43936-86E4-37BF-8196-1D04B35C0099">
+        <name>uddi-org:wsdl:categorization:transport</name>
+        <description xml:lang="en">Category system used to describe the transport supported by a wsdl:binding.</description>
+        <overviewDoc>
+            <description xml:lang="en">The Transport Categorization tModel provides a mechanism to capture transport information in the UDDI binding tModel which allows a user to search for bindings that implement a specific transport protocol.</description>
+            <overviewURL>http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#transport</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="uddi-org:types" keyValue="categorization"/>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="uddi-org:types" keyValue="checked"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:082B0851-25D8-303C-B332-F24A6D53E38E">
+        <name>uddi-org:wsdl:portTypeReference</name>
+        <description xml:lang="en">A category system used to reference a wsdl:portType tModel</description>
+        <overviewDoc>
+            <description xml:lang="en">The WSDL portType Reference category system provides a mechanism to indicate that a UDDI entity has a relationship with a certain wsdl:portType tModel.</description>
+            <overviewURL>http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#portTypeReference</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="uddi-org:types" keyValue="checked"/>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="uddi-org:types" keyValue="categorization"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457">
+        <name>uddi-org:wsdl:types</name>
+        <description xml:lang="en">WSDL Type Category System</description>
+        <overviewDoc>
+            <description xml:lang="en">The WSDL Entity Type tModel uses a number of UDDI entities to represent the various entities within a WSDL document.</description>
+            <overviewURL>http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#wsdlTypes</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="uddi-org:types" keyValue="unchecked"/>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="uddi-org:types" keyValue="categorization"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6">
+        <name>uddi-org:xml:localName</name>
+        <description xml:lang="en">A category system used to indicate XML local names</description>
+        <overviewDoc>
+            <description xml:lang="en">The XML Local Name tModel provides a mechanism to indicate the name attribute for the uddi:businessService.</description>
+            <overviewURL>http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlLocalName</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="uddi-org:types" keyValue="unchecked"/>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="uddi-org:types" keyValue="categorization"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824">
+        <name>uddi-org:xml:namespace</name>
+        <description xml:lang="en">A category system used to indicate namespaces</description>
+        <overviewDoc>
+            <description xml:lang="en">A namespace provides necessary qualifying information about a technical concept or model. The XML Namespace tModel provides a mechanism to associate a namespace with a UDDI entity.</description>
+            <overviewURL>http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlNamespace</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="uddi-org:types" keyValue="unchecked"/>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="uddi-org:types" keyValue="categorization"/>
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:CD153257-086A-4237-B336-6BDCBDCC6634">
+        <name>unspsc-org:unspsc</name>
+        <description xml:lang="en">Product Taxonomy: UNSPSC (Version 7.3)</description>
+        <overviewDoc>
+            <description xml:lang="en">This tModel defines Version 7.3 of the UNSPSC product taxonomy.</description>
+            <overviewURL>http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="categorization"/>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="Checked"/>
+			<keyedReference keyName="uddi-org:types:cacheable"   keyValue="cacheable"  tModelKey="uddi:uddi.org:categorization:types"/> 
+   
+        </categoryBag>
+    </tModel>
+    <tModel tModelKey="uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384">
+        <name>unspsc-org:unspsc:3-1</name>
+        <description xml:lang="en">Product Taxonomy: UNSPSC (Version 3.1)</description>
+        <overviewDoc>
+            <description xml:lang="en">This tModel defines the UNSPSC product taxonomy.</description>
+            <overviewURL>http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC31</overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="categorization"/>
+        </categoryBag>
+    </tModel>
+	
+	<tModel tModelKey="uuid:f1b347da-6cbb-3a10-93e7-7cd4328b88d3">
+  <name>ubr-uddi-org:iso-ch:1998:icd</name>
+  <description xml:lang="EN">ISO 6523 International Code Designator (ICD) System
+  </description>
+  <overviewDoc>
+    <overviewURL>
+      http://uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#ISO6523Code
+    </overviewURL> 
+  </overviewDoc> 
+  <categoryBag>
+    <keyedReference tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4"
+      keyName="types"
+      keyValue="identifier"/>
+  </categoryBag>
+</tModel>
+
+
+
+<tModel tModelKey="uuid:1ff729f2-1948-46cf-b660-31ec107f1663"> 
+  <name>ntis-gov:naics:2002</name> 
+  <name>North American Industry Classification System 2002</name>
+  <description xml:lang="en">North American Industry Classification System 2002</description>
+  <description xml:lang="en">Business Taxonomy: NAICS (2002 Release)</description> 
+  <overviewDoc> 
+    <overviewURL>
+      http://uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#NAICS2002 
+    </overviewURL> 
+  </overviewDoc> 
+  <categoryBag>
+    <keyedReference keyName="uddi-org:types:categorization"      keyValue="categorization"       tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4"/> 
+    <keyedReference keyName="uddi-org:types:checked"      keyValue="checked"       tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4"/>
+    <keyedReference keyName="uddi-org:types:cacheable"       keyValue="cacheable"       tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4"/>
+   </categoryBag>
+</tModel>
+ 
+ <tModel
+ tModelKey="uuid:4614c240-b483-11d7-8be8-000629dc0a53">
+  <name> unspsc-org:unspsc:v6.0501</name>
+  <description xml:lang="en"> Product and Service Category System: United Nations Standard Products and Services Code (UNSPSC)</description>
+  <overviewDoc>
+    <overviewURL>
+      http://uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSCv60501
+    </overviewURL> 
+  </overviewDoc> 
+  <categoryBag>
+    <keyedReference tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4"      keyName="types"      keyValue="categorization"/>
+    <keyedReference tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4"      keyName="types"      keyValue="checked"/>
+  </categoryBag>
+</tModel>
+
+
+<tModel
+ tModelKey="uuid:48eb2518-c1bd-354f-92c9-21a53b0ff2b1">
+  <name>ubr-uddi-org:postalAddress</name>
+  <description xml:lang="en">Postal address structure</description>
+  <overviewDoc>
+    <overviewURL useType="text">
+      http://uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#postal
+    </overviewURL> 
+  </overviewDoc> 
+  <categoryBag>
+    <keyedReference tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4"      keyName="types"      keyValue="categorization"/>
+    <keyedReference tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4"      keyName="types"      keyValue="checked"/>
+  </categoryBag>
+</tModel> 
+
+
+
+
+
+
+	<tModel tModelKey="uddi:uddi.org:ubr:identifier:thomasregister.com:keygenerator">
+	  <name>thomasregister-com:key generator</name>
+	  <description> Thomas Registry Suppliers key generator</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://uddi.org/pubs/uddi_v3.htm#keyGen
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+                      keyValue="keyGenerator" />
+        </categoryBag>
+	</tModel>
+
+	<tModel tModelKey="uddi:uddi.org:ubr:identifier:thomasregister.com:supplierid">
+	  <name>Thomas Registry</name>
+	  <name>thomasregister-com:supplierID</name>
+	  <description xml:lang="en">This tModel is used for the Thomas Register supplier identifier codes.</description>
+        <overviewDoc>
+            <overviewURL useType="text">
+                http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Thomas
+            </overviewURL>
+        </overviewDoc>
+        <categoryBag>
+            <keyedReference keyName="uddi-org:types:identifier"
+			  keyValue="identifier" 
+			  tModelKey="uddi:uddi.org:categorization:types"/> 
+			<keyedReference keyName="uddi-org:types:unchecked"
+			  keyValue="unchecked" 
+			  tModelKey="uddi:uddi.org:categorization:types"/> 
+        </categoryBag>
+	</tModel>
+	
+ 
+</save_tModel>
\ No newline at end of file
diff --git a/juddi-tomcat/juddi_install_data_node2/root_BusinessEntity.xml b/juddi-tomcat/juddi_install_data_node2/root_BusinessEntity.xml
index 6c8b682..8c923d9 100644
--- a/juddi-tomcat/juddi_install_data_node2/root_BusinessEntity.xml
+++ b/juddi-tomcat/juddi_install_data_node2/root_BusinessEntity.xml
@@ -40,7 +40,7 @@
 -->
 <businessEntity xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:another.juddi.apache.org:businesses-asf">
      <!-- Change the name field to represent the name of your registry -->
-     <name xml:lang="en">An Apache jUDDI Node</name>
+     <name xml:lang="en">An Apache jUDDI Node (2)</name>
      <!-- Change the description field to provided a brief description of your registry -->
      <description xml:lang="en">This is a UDDI registry node as implemented by Apache jUDDI.</description>
      <discoveryURLs>
diff --git a/uddi-ws/src/main/java/org/uddi/repl_v3/NotifyChangeRecordsAvailable.java b/uddi-ws/src/main/java/org/uddi/repl_v3/NotifyChangeRecordsAvailable.java
index f1fcfaa..dc5300d 100644
--- a/uddi-ws/src/main/java/org/uddi/repl_v3/NotifyChangeRecordsAvailable.java
+++ b/uddi-ws/src/main/java/org/uddi/repl_v3/NotifyChangeRecordsAvailable.java
@@ -55,6 +55,11 @@
 })

 @XmlRootElement(name = "notify_changeRecordsAvailable")

 public class NotifyChangeRecordsAvailable implements Serializable{

+        public NotifyChangeRecordsAvailable(){}

+        public NotifyChangeRecordsAvailable(String node, HighWaterMarkVectorType changesAvailable){

+                this.notifyingNode = node;

+                this.changesAvailable = changesAvailable;

+        }

 	@XmlTransient

 	private static final long serialVersionUID = -8280288001706059769L;

 	@XmlElement(required = true)