WSDL Publishing Advanced APIs

Arguments • wsdl2uddi:wsdl - Contains URI or physical location of mapped WSDL. • wsdl2uddi:wsdlMapping - Describes wsdl:types to be mapped. wsdl WSDL contains information about location of a mapped WSDL. Arguments • wsdlLocation - The URI or physical location of a mapped WSDL. • any - Used to make extensible documents see XML schema [http:www.w3.orgTRxmlschema-1]. It is generally used as the DOM pattern of a mapped WSDL. wsdlMapping WsdlMapping describes the wsdl:types to be mapped. It is used to alter the default behavior of mapping the specified WSDL. In contained structures, it is possible to describe each mapped wsdl:type correctly. This is to ensure exact mapping and prevent duplication of data in the registry. Arguments • uddi:businessKey - Represents the businessKey of an existing uddi:businessEntity to which the assigned wsdl:types will be mapped. • uddi:businessEntity - Represents an existing businessEntity to which the assigned wsdl:types will be mapped. • wsdl2uddi:porttypes - Represents the container of wsdl:portTypes to be mapped. wsdl2uddi:porttypes makes it possible map a uddi:tModel to its corresponding wsdl:portType . • wsdl2uddi:bindings - Represents the container of wsdl:bindings to be mapped. wsdl2uddi:bindings makes it possible to map a uddi:tModel to its corresponding wsdl:binding. • wsdl2uddi:services - Represents the container of wsdl:services to be mapped. wsdl2uddi:services makes it possible to map a uddi:businessService to its corresponding wsdl:service. Note Note that uddi:businessKey and uddi:businessEntity are mutually exclusive. Page 459 Arguments portTypes The portTypes structure is a simple container of one or more wsdl2uddi:portTypes. portType PortType represents a mapping of wsdl:portType in UDDI. It contains information necessary to map the wsdl:portType to a corresponding uddi:tModel accurately. Arguments • uddi:tModelKey - Represents the tModelKey of an existing uddi:tModel which will be reused or rewritten depending on the publishingMethod selected by the user with data from wsdl:portType. • uddi:tModel - Represents an existing uddi:tModel which will be reused or rewritten depending on the publishingMethod selected by the user with data from wsdl:portType. Note Note that uddi:tModelKey and uddi:tModel are mutually exclusive. Table 28. Attributes Required Name optional name optional namespace optional publishingMethod These attributes describe the wsdl:portType of the appropriate WSDL. Name and namespace represent the wsdl:portType QName. publishingMethod represents an enumeration of available mapping use cases. It can be set to rewrite, create, reuse , or ignore. The default publishingMethod is reuse. Bindings The bindings structure is a simple container of one or more wsdl2uddi:bindings. binding Page 460 binding A binding represents a mapping of wsdl:binding in UDDI. It contains information necessary for the precise mapping of a wsdl:binding to the appropriate uddi:tModel. Arguments • uddi:tModelKey - Represents the tModelKey of an existing uddi:tModel which will be reused or rewritten depending on the publishingMethod selected by the user with data from wsdl:binding. • uddi:tModel - Represents an existing uddi:tModel which will be reused or rewritten depending on the publishingMethod selected by the user with data from wsdl:binding. Note Note that uddi:tModelKey and uddi:tModel are mutually exclusive. Table 29. Attributes Required Name optional name optional namespace optional publishingMethod These attributes describe the wsdl:binding from the appropriate WSDL. Name and namespace represent the wsdl:binding QName. publishingMethod represents an enumeration of the available mapping use cases. It can be set to rewrite, create, reuse , or ignore. The default publishingMethod is reuse. Services The services structure is a simple container of one or more wsdl2uddi:services. service Service represents the mapping of wsdl:service in UDDI. It contains information necessary to map a wsdl:service to the appropriate uddi:businessService precisely. Arguments • uddi:businessKey - represents businessKey of an existing uddi:businessEntity to which the translated wsdl:service will be stored. Page 461 Arguments • uddi:serviceKey - represents the serviceKey of an existing uddi:businessService which will be reused or rewritten depending on the publishingMethod selected by user with data from wsdl:service. • uddi:businessService - represents an existing uddi:businessService which will be reused or rewritten depending on the publishingMethod selected by user with data from wsdl:service. • wsdl:ports - represents existing uddi:bindingTemplates which will be reused or rewritten depending on the publishingMethod selected by user with data from wsdl:service ports. Note Note that uddi:serviceKey and uddi:businessService are mutually exclusive. Table 30. Attributes Use Name optional name optional namespace optional publishingMethod These attributes describe the wsdl:service from an appropriate WSDL. Name and namespace represents the wsdl:service QName. publishingMethod represents an enumeration of available mapping use cases. It can be set to rewrite, create, reuse, or ignore. The default publishingMethod is reuse. ports The ports structure is a simple container for one or more wsdl2uddi:ports. port Port represents a mapping of wsdl:port in UDDI. It contains information necessary to map the wsdl:port to the appropriate uddi:bindingTemplate precisely. Arguments • uddi:bindingKey - Represents the bindingKey of an existing uddi:bindingTemplate which will be reused or rewritten depending on the publishingMethod selected by user with data from wsdl:port. • uddi:bindingTemplate - Represents an existing uddi:bindingTemplate which will be reused or rewritten depending on the publishingMethod selected by user with data from wsdl:service. Page 462 Arguments Note Note that uddi:bindingKey and uddi:bindingTemplate are mutually exclusive. Table 31. Attributes Required Name optional name optional publishingMethod These attributes describe the wsdl:port from an appropriate WSDL.Name represents the wsdl:port name. publishingMethod represents an enumeration of available mapping use cases. It can be set to rewrite, create, or reuse. The default publishingMethod is reuse. wsdlServiceInfos The wsdlServiceInfo structure is a simple container of one or more wsdl2uddi:wsdlServiceInfos. wsdlServiceInfo The wsdlServiceInfo completes information about the wsdlLocation and uddi:businessService being searched. Arguments • wsdlLocation - The URI or physical location of a WSDL. • wsdl2uddi:portInfos - Container for wsdl2uddi:ports which contain the wsdl:port mapped to the appropriate uddi:bindingTemplate . Table 32. Attributes Required Name required name required namespace required serviceKey These attributes describes how the wsdl:service is mapped from the appropriate WSDL. Name and namespace represent the wsdl:service QName. The serviceKey represents the uddi:businessService on which the wsdl:service is mapped. Page 463 Arguments PortInfos The portInfos structure is a simple container of one or more wsdl2uddi:portInfos. portInfo The portInfo completes information about uddi:bindingTemplates used in the uddi:businessService being searched. Arguments • uddi:accessPoint contains information about accessing the uddi:businessService being searched. Table 33. Attributes Required Name required name required bindingKey These attributes describe how the wsdl:port is mapped from the appropriate WSDL. Name represents the wsdl:port name. BindingKey represents the uddi:bindingTemplate on which the wsdl:port is mapped. Operations publish_wsdl Publish_wsdl ensures the publishing of a WSDL to a UDDI registry. It uses the Publishing API to store translated wsdl:types to the UDDI registry. For more information about the Publishing API, please see UDDI v3 - publishing API [http:uddi.orgpubsuddi_v3.htm_Toc53709290]. By default UDDI entities are rewritten by data contained in wsdl:types as follows: Each wsdl:type is first searched on the specified registry. The found UDDI entity is rewritten, or a new entity is created if one is not found. However, the user can specify how the wsdl:types will be published to the registry. You can alter the default publish behavior and define which wsdl:types will be mapped on the appropriate UDDI entity and, naturally, whether the UDDI entity will be created, rewritten, or reused. For more information about publish behavior and its use cases, see publishingMethod . Below are some rules by which wsdl:types are assigned to the appropriate UDDI entities depending on whether the wsdl:type is found on the user account or on a foreign account. Note that wsdl:services are searched only on the users account, unlike wsdl:portType or wsdl:binding. This is because it is preferable to use tModels from a foreign account rather then tModels translated from a WSDL. Page 464 publish_wsdl publishingMethod PublishingMethod describes the behavior of the publish operation. In accordance with the set behavior, the corresponding wsdl:type will be mapped to the UDDI registry. Note that publish_wsdl is set to reuse by default. However, if a user wants to rewrite an entity or a create a new entity, the default behavior can be changed from reuse to rewrite or create to ensure unique mapping. Use cases • rewrite - wsdl:type is searched on the registry and the found UDDI structure is redrawn by data of that wsdl:type. If the wsdl:type is not found, a new one will be created. • reuse - The default behavior of the publish operation. Using this behavior, the user is able to reuse an entire existing UDDI structure. The found UDDI entity will not be redrawn by data of that wsdl:type. Note that when using this method, inconsistencies may occur between the published wsdl:type and the corresponding UDDI entity. This behavior should be helpful when we need to use existing tModels instead of tModels mapped from wsdl:portTypes or wsdl:bindings For example, uddi:hostingRedirectors. • create - This method is used mainly for testing purposes. By using this behavior a new UDDI entity is created from the wsdl:type regardless of whether the UDDI entity already exists on the registry. Important When using this behavior, undesirable duplications may occur. It is necessary to use this behavior carefully. • ignore - This method is used when you do not want to publish the UDDI entity. You can restrict which parts of the WSDL document will be published. Arguments • uddi:authInfo - This required argument is the string representation of the uddi:authToken. • wsdl2uddi:wsdlDetail - Completes WSDL location and user-defined WSDL mapping rules. For more information, please see wsdl2uddi:wsdlDetaill . Here the user can specify which wsdl:type from the WSDL corresponds to the entity on the target registry and how the specified wsdl:type will be mapped. For more information, please see wsdl2uddi:publishingMethod . Returns wsdl2uddi:wsdlDetail - Contains detailed information about how the individual wsdl:types are published. For more information, please see wsdl2uddi:wsdlDetaill . unpublish_wsdl Unpublish_wsdl ensures unpublishing of WSDL from UDDI registry. It uses the Publishing API to delete UDDI entities corresponding to wsdl:types from a UDDI registry. For more information about the Publishing API, please see UDDI v3 - publishing API [http:uddi.orgpubsuddi_v3.htm_Toc53709290]. Page 465 unpublish_wsdl Each wsdl:type is first searched on the specified registry. The found UDDI entity is deleted or if the entity is not found it is simply omitted. Found tModels are either physically deleted or only marked as deprecated in accordance with configuration. When tModels are deleted by their owners, they are generally marked as deprecated. Usually only the administrator can permanently delete deprecated tModels from the registry. Arguments • uddi:authInfo - This required argument is the string representation of the uddi:authToken. • wsdl2uddi:wsdlDetail - completes the WSDL location and user-defined WSDL unpublish rules. For more information, please see wsdl2uddi:wsdlDetaill . Here the user can specify which wsdl:type from a WSDL corresponds to the UDDI entity existing on the target registry. This is because that wsdl:type can occur more than once on a registry. Returns wsdl2uddi:wsdlDetail - Contains detailed information about how individual wsdl:types are unpublished from a target registry. For more information, please see wsdl2uddi:wsdlDetaill . get_wsdlServiceInfo Get_wsdlServiceInfo discovers uddi:businessServices corresponding to wsdl:services from a particular WSDL. It uses the Inquiry API to get UDDI entities matching wsdl:types. For more information about the Inquiry API, please see UDDI-inquiry API [http:uddi.orgpubsuddi_v3.htm_Toc53709271]. This operation discovers corresponding UDDI entities either on the users account or on the foreign account in accordance with the specified uddi:authInfo. In consideration with multiple occurrences of UDDI entities corresponding to wsdl:types , the search algorithm optimizes output in accordance with relations between individual wsdl:types from the given WSDL. Only the wsdl2uddi:wsdlServiceInfo corresponding exactly to the wsdl:service from the WSDL that is, that contains all wsdl:types from the appropriate WSDL will be returned. Arguments • uddi:authInfo - This optional argument is the string representation of the uddi:authToken. • wsdl2uddi:wsdl - An argument used to discover wsdl2uddi:wsdlServiceInfos . This argument ensures that only the uddi:businessService corresponding exactly to the wsdl:service from that WSDL will be returned. For more information, please see wsdl2uddi:wsdl . • uddi:serviceKey - uddi:serviceKey of uddi:businessService existing on the target registry. Note that only uddi:businessServices containing a WSDL Type Category System that is, the uddi:categoryBag of a found uddi:businessService must contain a uddi:keyedReference with a uddi:tModelKey representing WSDL Type Category System and the keyValue service will be returned. • uddi:bindingKey - uddi:bindingKey of uddi:bindingTemplate existing on the target registry. For UDDI v3 holds that only uddi:businessServices which contain uddi:bindingTemplate corresponding to a given uddi:bindingKey with the WSDL Type Category System. that is, the uddi:categoryBag of a found uddi:bindingTemplate must contain uddi:keyedReference with uddi:tModelKey representing WSDL Type Category System and the keyValue Page 466 Arguments binding will be returned. Naturally this WSDL Type Category System must also be contained in the appropriate uddi:businessService . Note that uddi:bindingTemplates in v2 do not contain uddi:categoryBag. Even though the found uddi:bindingTemplate must contain uddi:tModels compliant with WSDL Type Category System in its uddi:tModelInstanceDetails. • uddi:tModelKey - the uddi:tModelKey of the uddi:tModel existing on the target registry. Note that only uddi:businessServices which use uddi:tModels compliant with WSDL Type Category System will be returned. That is, the uddi:categoryBag of the found uddi:tModel must contain uddi:keyedReference with uddi:tModelKey representing WSDL Type Category System and the keyValue binding or portType. Naturally, this WSDL Type Category System must also be contained in the appropriate uddi:businessService. Note Note that wsdl2uddi:wsdl, uddi:serviceKey, uddi:bindingKey and uddi:tModelKey are mutually exclusive. Returns wsdl2uddi:wsdlServiceInfos - Contains UDDI entities corresponding to wsdl:types from the specified WSDL. For more information, please see wsdl2uddi:wsdlServiceInfos . find_wsdlServiceInfo This operation is a bit more complex than wsdl2uddi:get_wsdlServiceInfo . Find_wsdlServiceInfo discovers uddi:businessServices corresponding to wsdl:services from a particular WSDL. It uses the Inquiry API to find UDDI entities matching wsdl:types. For more information about the Inquiry API, please see UDDI-inquiry API [http: uddi.orgpubsuddi_v3.htm_Toc53709271]. This operation discovers corresponding UDDI entities either on the users account or on a foreign account in accordance with the specified uddi:authInfo. In consideration for multiple occurrence of UDDI entities corresponding to wsdl:types, the search algorithm optimizes output in accordance with relations between individual wsdl:types from the specified WSDL and the uddi:find_xx structure specified by the user. Only the wsdl2uddi:wsdlServiceInfo corresponding exactly to the wsdl:service from the WSDL will be returned, that is, the wsdl2uddi:wsdlServiceInfo containing all wsdl:types from the appropriate WSDL at once, and satisfying the users defined uddi:find_xx. Arguments • uddi:authInfo - This optional argument is the string representation of the uddi:authToken. • wsdl2uddi:wsdl - required argument used to discover wsdl2uddi:wsdlServiceInfos . This argument ensures that only the uddi:businessService corresponding exactly to the wsdl:service from that WSDL will be returned. For more information, please see wsdl2uddi:wsdl . • uddi:find_service - Argument used for a more detailed description of search criteria. For more information, see uddi:find_service [http:uddi.orgpubsuddi_v3.htm_Toc53709283]. Found uddi:businessServices must follow the same rules as in the case of wsdl2uddi:get_wsdlServiceInfo . Page 467 Arguments • uddi:find_binding - Argument used for a more detailed description of search criteria. For more information, see uddi:find_binding [http:uddi.orgpubsuddi_v3.htm_Toc53709280]. Found uddi:businessServices and uddi:bindingTemplates must follow the same rules as in the case of wsdl2uddi:get_wsdlServiceInfo . • uddi:find_tModel - Argument used for a more detailed description of search criteria. For more information, see uddi:find_tModel [http:uddi.orgpubsuddi_v3.htm_Toc53709284]. Found UDDI entities must follow the same rules as in the case of wsdl2uddi:get_wsdlServiceInfo . Note Note that uddi:find_service, uddi:find_binding and uddi:find_tModel are mutually exclusive. Returns wsdl2uddi:wsdlServiceInfos - Contains UDDI entities corresponding to wsdl:types from the specified WSDL. For more information, please see wsdl2uddi:wsdlServiceInfos . find_wsdlMapping This operation finds mapping of the WSDL document. Arguments • uddi:authInfo - This argument is the string representation of the uddi:authToken. • uddi:findQualifiers - See Find Qualifiers [http:uddi.orgpubsuddi-v3.0.1-20031014.htm_Toc53709275] • wsdl2uddi:wsdl Returns This operation returns wsdl2uddi:wsdlMapping . WSDL wsdl2uddi_v2.wsdl.wsdl [http:www.systinet.comdocsr-65wsdlwsdl2uddi_v2.wsdl] wsdl2uddi_v3.wsdl.wsdl [http:www.systinet.comdocsr-65wsdlwsdl2uddi_v3.wsdl] API Endpoint You can find the WSDL2UDDI API endpoint at http:host name:portcontextuddiwsdl2uddi. Java org.systinet.uddi.client.wsdl2uddi.v3.Wsdl2uddiApi Demos v2: WSDL2UDDI demos Demos v3: WSDL2UDDI demos Page 468 Java

2.2.9. XML Publishing

XML-to-UDDI mapping enables the automatic publishing of XML documents to UDDI and precise, flexible UDDI queries based on specific XML metadata. Data Structures namespace This structure is a container for a namespace. Table 34. Attributes optional publishingMethod Arguments • uri - URI of the namespace. • schemaLocation - This argument holds the location of the schema specified by the XML document using xsi:schemaLocation declaration. • tns:namespaceModel - This argument holds mappings that represent this namespace. namespaceList This structure represent a list of namespaces. Arguments • tns:namespace - represents a member of the namespaceList. namespaceModel This structure describes mapping of a particular namespace or no namespace within the XML document. Arguments • uddi:name - name of the tModel corresponding to the namespaces XML Schema • uddi:tModelKey - tModelKey name of the tModel corresponding to the namespaces XML Schema Page 469 Arguments resourceInfo This structure holds the location of the resource. usesNamespaces This structure represents a list of namespaces. usesSchemas This structure holds a list of schemas. xmlMapping This structure represents an XML mapping. Arguments • uddi:tModelKey - tModelKeys of tModels that correspond to the XML document. When used with publish_xml, zero tModelKeys or a single tModelKey can be used. • tns:namespace - List of namespaces used in the XML document with their mappings to UDDI tModels xmlResourceDetail This structure describes the published XML document. It contains the location of the document and a list of the namespaces referenced by the XML document. The document declares a prefix for the XML namespace using the xmlns: declaration. Arguments • tns:xmlResourceInfo - contains the location of the XML document URI • tns:namespace - a list of namespace information, one entry for each namespace used in the XML document Page 470 Arguments