<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_101) on Mon Sep 19 16:59:27 EDT 2022 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>UDDIPublicationPortType (jUDDI_v3 Parent 3.3.11-SNAPSHOT API)</title>
<meta name="date" content="2022-09-19">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="UDDIPublicationPortType (jUDDI_v3 Parent 3.3.11-SNAPSHOT API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/UDDIPublicationPortType.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../org/uddi/v3_service/UDDIInquiryPortType.html" title="interface in org.uddi.v3_service"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../org/uddi/v3_service/UDDIReplicationPortType.html" title="interface in org.uddi.v3_service"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/uddi/v3_service/UDDIPublicationPortType.html" target="_top">Frames</a></li>
<li><a href="UDDIPublicationPortType.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.uddi.v3_service</div>
<h2 title="Interface UDDIPublicationPortType" class="title">Interface UDDIPublicationPortType</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/Remote.html?is-external=true" title="class or interface in java.rmi">Remote</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../org/apache/juddi/v3/client/transport/wrapper/Publish3to2.html" title="class in org.apache.juddi.v3.client.transport.wrapper">Publish3to2</a>, <a href="../../../org/apache/juddi/api/impl/UDDIPublicationImpl.html" title="class in org.apache.juddi.api.impl">UDDIPublicationImpl</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">UDDIPublicationPortType</span>
extends <a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/Remote.html?is-external=true" title="class or interface in java.rmi">Remote</a></pre>
<div class="block">This portType defines all of the UDDI publication operations.

 This class was generated by the JAX-WS RI. JAX-WS RI 2.1.5-b03- Generated
 source version: 2.1 <h2 style="margin-left:0in;text-indent:0in"><a
 name="_Toc527816081">Publication </a>API Set</h2>

 <p class="MsoBodyText">The API calls in this section are used to publish and
 update information contained in a UDDI registry.&nbsp; According to the
 policy of the UDDI registry, a publisher selects a UDDI node where it will
 publish the information.&nbsp; </p>

 <p class="MsoBodyText">API calls in this section MUST all be implemented as
 synchronous and "atomic" from the point of view of the caller. That is, each
 call MUST either succeed completely or fail completely. Partial results MUST
 NOT be returned.</p>

 <h3><a name="_Toc528997551"></a><a name="_Toc525464311"></a><a
 name="_Ref247612"></a><a name="_Toc85908096"></a><a
 name="_Toc53709291"></a><a name="_Toc45096377"></a><a
 name="_Toc45095920"></a><a name="_Toc42047297"></a><a
 name="_Ref12253009">5.2.1 Publishing entities with node assigned
 keys</a></h3>

 <p class="MsoBodyText">When a publisher does not provide keys for new
 entities, the UDDI node will assign keys in accordance with registry policy.
 Node-assigned keys MUST use keys that conform to the grammar in Section <a
 href="#_Ref8978849 ">4.4</a> <i>About uddiKeys</i>.</p>

 <h3><a name="_Toc85908097"></a><a name="_Toc53709292"></a><a
 name="_Toc45096378"></a><a name="_Toc45095921"></a><a
 name="_Toc42047298"></a><a name="_Ref8978630">5.2.2 Publishing entities with
 publisher-assigned keys</a></h3>

 <p class="MsoBodyText">The registry keying policy MAY allow an entity’s key
 to be proposed by the publisher. If the publisher does not propose a key for
 an entity, the registry MUST assign one. </p>

 <p class="MsoBodyText">Since entity keys MUST be unique in a registry without
 regard to the type of entity and since registries MUST define to impose
 policies concerning which publishers may publish which keys,
 publisher-assigned keys are subject to rules that UDDI registries enforce.
 Behavior that ensures uniqueness across entity types (businessEntity,
 businessService, bindingTemplate, tModel and subscription) is REQUIRED for
 all registries. In this section we discuss the behavior of registries that
 use the recommended "uddi:" key structure. This behavior provides uniqueness
 and promotes interoperability among registries, while allowing various
 registry-specific policies to be built. Practical guidance for the use of
 this facility may be found in Section <a
 href="../../../../../hately/My%20Documents/uddi/v3specification/UDDI%20V3%20Specification.htm#_Ref9007543#_Ref9007543">9.4.2</a>
 <i>General Keying Policy</i> and Section <a
 href="../../../../../hately/My%20Documents/uddi/v3specification/UDDI%20V3%20Specification.htm#_Ref9007521#_Ref9007521">9.4.3</a>
 <i>Policy Abstractions for the UDDI keying scheme</i>.</p>

 <h4 style="margin-left:0in;text-indent:0in"><a name="_Ref9009437">5.2.2.1 Key
 generator keys and their partitions</a></h4>

 <p class="MsoBodyText">To ensure that publisher-generated keys do not
 conflict with one another, registries assign the authority to generate keys
 to publishers in the following manner:</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in">1.<span
 style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>The conceptual space
 of uddiKeys is divided into non-overlapping, hierarchically arranged
 partitions, each of which can be associated with a publisher.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in">2.<span
 style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Only the publisher
 associated with a particular partition is given the authority to assign keys
 within the partition.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in">3.<span
 style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>The publisher with
 authority for a given partition may designate any publisher it chooses for
 any partition directly below the partition it manages, provided it has not
 already designated a publisher to that partition.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in">4.<span
 style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>The publisher with
 authority for a partition may transfer its authority to another
 publisher.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in">5.<span
 style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Initially, the
 registry itself has authority for the root partition of the hierarchy.</p>

 <p class="MsoBodyText">The specific mechanisms that enforce these rules are
 explained below.</p>

 <p class="MsoBodyText">Each node of a registry is a generator of keys.&nbsp;
 This is required to enable the node to generate keys not provided by
 publishers. In addition, the policies of a registry MAY allow individual
 publishers to obtain the authority to be generators of keys for specific
 partitions within the space of uddiKeys. Publishers obtain this authority by
 owning a particular tModel called a key generator tModel.&nbsp; The key
 generator tModel contains a key generator key, and it specifies the partition
 for which the publisher may assign keys.&nbsp; </p>

 <p class="MsoBodyText"><span style="layout-grid-mode:line">The subset of
 derivedKeys called <i>key generator keys</i> consists of all the keys of the
 form:</span></p>

 <p class="MsoNormal" style="margin-left:1.0in">keyGeneratorKey
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uddiKey <span
 style="layout-grid-mode:line">":keygenerator"</span></p>

 <p class="MsoBodyText">As described in Section 4.4.1, a derivedKey is one
 that is formed from another key by appending a non-empty, colon-prefixed
 string to another uddiKey.&nbsp; A derivedKey is said to be "based on" this
 uddiKey. With this in mind, the complete partition of a given keyGeneratorKey
 is the set of keys consisting of:</p>

 <p class="MsoBodyText">&nbsp;</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in">1.<span
 style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>The set of
 derivedKeys based on the same uddiKey that the keyGeneratorKey is based
 upon.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in">2.<span
 style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>The set of
 keyGeneratorKeys based on a key that is in the partition.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in">3.<span
 style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>The domainKey, if
 the keyGeneratorKey is based upon that domainKey.</p>

 <p class="MsoBodyText">&nbsp;</p>

 <p class="MsoBodyText">Note that the partition's keyGeneratorKey itself is
 exluded from the partition.</p>

 <p class="MsoBodyText">A rootKeyGeneratorKey is a keyGeneratorKey that is not
 based on a derivedKey. That is:</p>

 <p class="MsoNormal" style="margin-left:1.0in">rootKeyGeneratorKey
 &nbsp;&nbsp; = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (uuidKey /
 domainKey) ":keygenerator"</p>

 <p class="MsoNormal" style="margin-left:1.0in">&nbsp;</p>

 <h5 style="margin-left:0in;text-indent:0in">5.2.2.1.1 Examples</h5>

 <p class="MsoBodyText">Based on the rules above, it is possible to construct
 the keyGeneratorKey for any key by manipulating the string representation of
 the key. To illustrate, suppose the key is x, then the following pseudo-code
 will determine the keyGeneratoryKey:</p>

 <p class="codeSample">If x is a keyGeneratorKey, and y is that key minus the
 ":keygenerator" suffix,</p>

 <p class="codeSample">then if y is a domainKey</p>

 <p class="codeSample">&nbsp;&nbsp; then x is a top-level keyGenerator, and
 has no keyGeneratorKey (1.a)</p>

 <p class="codeSample">&nbsp;&nbsp; else y is a derivedKey, based on z, </p>

 <p class="codeSample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and x’s
 keyGeneratorKey is z:keyGenerator (1.b)</p>

 <p class="codeSample">else</p>

 <p class="codeSample" style="margin-left:1.0in">If x is a domainKey </p>

 <p class="codeSample" style="margin-left:1.0in">then x’s keyGeneratorkey is
 x:keyGenerator (2)<br> else x is based on a key y, and x’s keyGenerator is
 y:keyGenerator (3)</p>

 <p class="MsoBodyText">&nbsp;</p>

 <p class="MsoBodyText">Using this pseudo-code illustration, the following
 table provides examples of legal URI’s and their associated key generators
 for each of the four cases noted:</p>

 <table class="specTable"
 style="width:452.0pt;margin-left:.5in;border-collapse:collapse;border:none"
 border="1" cellpadding="0" cellspacing="0" width="603"> <tbody><tr> <td
 style="width:164.0pt;border:solid black 1.0pt; background:#FFFFCA;padding:0in
 5.4pt 0in 5.4pt" valign="top" width="219"> <p
 class="MsoNormal"><b>Key</b></p> </td> <td style="width:2.25in;border:solid
 black 1.0pt; border-left:none;background:#FFFFCA;padding:0in 5.4pt 0in 5.4pt"
 valign="top" width="216"> <p class="MsoNormal"><b>keyGeneratorKey</b></p>
 </td> <td style="width:1.75in;border:solid black 1.0pt;
 border-left:none;background:#FFFFCA;padding:0in 5.4pt 0in 5.4pt" valign="top"
 width="168"> <p class="MsoNormal"><b>Case in pseudo-code</b></p> </td> </tr>
 <tr> <td style="width:164.0pt;border:solid black 1.0pt;
 border-top:none;padding:0in 5.4pt 0in 5.4pt" valign="top" width="219"> <p
 class="MsoNormal">uddi:tempuri.com</p> </td> <td
 style="width:2.25in;border-top:none;border-left: none;border-bottom:solid
 black 1.0pt;border-right:solid black 1.0pt; padding:0in 5.4pt 0in 5.4pt"
 valign="top" width="216"> <p
 class="MsoNormal">uddi:tempuri.com:keygenerator</p> </td> <td
 style="width:1.75in;border-top:none;border-left: none;border-bottom:solid
 black 1.0pt;border-right:solid black 1.0pt; padding:0in 5.4pt 0in 5.4pt"
 valign="top" width="168"> <p class="MsoNormal">2</p> </td> </tr> <tr> <td
 style="width:164.0pt;border:solid black 1.0pt; border-top:none;padding:0in
 5.4pt 0in 5.4pt" valign="top" width="219"> <p
 class="MsoNormal">uddi:tempuri.com:keygenerator</p> </td> <td
 style="width:2.25in;border-top:none;border-left: none;border-bottom:solid
 black 1.0pt;border-right:solid black 1.0pt; padding:0in 5.4pt 0in 5.4pt"
 valign="top" width="216"> <p class="MsoNormal">&lt;none&gt;</p> </td> <td
 style="width:1.75in;border-top:none;border-left: none;border-bottom:solid
 black 1.0pt;border-right:solid black 1.0pt; padding:0in 5.4pt 0in 5.4pt"
 valign="top" width="168"> <p class="MsoNormal">1.a</p> </td> </tr> <tr> <td
 style="width:164.0pt;border:solid black 1.0pt; border-top:none;padding:0in
 5.4pt 0in 5.4pt" valign="top" width="219"> <p class="MsoNormal"><span
 lang="IT">uddi:tempuri.com:xxx:keygenerator</span></p> </td> <td
 style="width:2.25in;border-top:none;border-left: none;border-bottom:solid
 black 1.0pt;border-right:solid black 1.0pt; padding:0in 5.4pt 0in 5.4pt"
 valign="top" width="216"> <p
 class="MsoNormal">uddi:tempuri.com:keygenerator</p> </td> <td
 style="width:1.75in;border-top:none;border-left: none;border-bottom:solid
 black 1.0pt;border-right:solid black 1.0pt; padding:0in 5.4pt 0in 5.4pt"
 valign="top" width="168"> <p class="MsoNormal">1.b</p> </td> </tr> <tr> <td
 style="width:164.0pt;border:solid black 1.0pt; border-top:none;padding:0in
 5.4pt 0in 5.4pt" valign="top" width="219"> <p
 class="MsoNormal">uddi:tempuri.com:xxx</p> </td> <td
 style="width:2.25in;border-top:none;border-left: none;border-bottom:solid
 black 1.0pt;border-right:solid black 1.0pt; padding:0in 5.4pt 0in 5.4pt"
 valign="top" width="216"> <p
 class="MsoNormal">uddi:tempuri.com:keygenerator</p> </td> <td
 style="width:1.75in;border-top:none;border-left: none;border-bottom:solid
 black 1.0pt;border-right:solid black 1.0pt; padding:0in 5.4pt 0in 5.4pt"
 valign="top" width="168"> <p class="MsoNormal">3</p> </td> </tr> <tr> <td
 style="width:164.0pt;border:solid black 1.0pt; border-top:none;padding:0in
 5.4pt 0in 5.4pt" valign="top" width="219"> <p
 class="MsoNormal">uddi:tempuri.com:xxx:yyy</p> </td> <td
 style="width:2.25in;border-top:none;border-left: none;border-bottom:solid
 black 1.0pt;border-right:solid black 1.0pt; padding:0in 5.4pt 0in 5.4pt"
 valign="top" width="216"> <p class="MsoNormal"><span
 lang="IT">uddi:tempuri.com:xxx:keygenerator</span></p> </td> <td
 style="width:1.75in;border-top:none;border-left: none;border-bottom:solid
 black 1.0pt;border-right:solid black 1.0pt; padding:0in 5.4pt 0in 5.4pt"
 valign="top" width="168"> <p class="MsoNormal">3</p> </td> </tr>
 </tbody></table>

 <p class="MsoBodyText">&nbsp;</p>

 <p class="MsoBodyText">The following keys do NOT belong to the partition of
 the key generator key "uddi:tempuri.com:keygenerator".</p>

 <table class="MsoNormalTable"
 style="width:405.0pt;margin-left:77.4pt;border-collapse:collapse" border="0"
 cellpadding="0" cellspacing="0" width="540"> <tbody><tr> <td
 style="width:171.0pt;padding:0in 5.4pt 0in 5.4pt" valign="top" width="228">
 <p class="MsoNormal">&nbsp;"uddi:tempuri.com:keygenerator"</p> </td> <td
 style="width:3.25in;padding:0in 5.4pt 0in 5.4pt" valign="top" width="312"> <p
 class="MsoNormal">The keyGeneratorKey does not belong to the partition it
 designates.</p> <p class="MsoNormal">&nbsp;</p> </td> </tr> <tr> <td
 style="width:171.0pt;padding:0in 5.4pt 0in 5.4pt" valign="top" width="228">
 <p class="MsoNormal">"uddi:tempuri.com:xxx:yyy"</p> </td> <td
 style="width:3.25in;padding:0in 5.4pt 0in 5.4pt" valign="top" width="312"> <p
 class="MsoNormal">This key belongs to the partition of the keyGeneratorKey
 "uddi:tempuri.com:xxx:keygenerator", not this one.</p> </td> </tr> <tr> <td
 style="width:171.0pt;padding:0in 5.4pt 0in 5.4pt" valign="top" width="228">
 <p class="MsoNormal"><span
 lang="IT">"uddi:tempuri.com:keygenerator:zzz"</span></p> </td> <td
 style="width:3.25in;padding:0in 5.4pt 0in 5.4pt" valign="top" width="312"> <p
 class="MsoNormal">This key does not belong in any partition – it is an
 invalid key.</p> </td> </tr> </tbody></table>

 <p class="MsoNormal"><a name="_Ref529862482"></a><a
 name="_Hlt531586136"></a>&nbsp;</p>

 <h4 style="margin-left:0in;text-indent:0in"><a name="_Ref8978954">5.2.2.2
 Behavior of publishers</a></h4>

 <p class="MsoBodyText">To successfully publish a new entity with a proposed
 key, the publisher needs to own the key generator tModel for the partition in
 which the key lies. Typically, a publisher gets ownership by publishing the
 tModel in question, but publishers can also get ownership in other ways, for
 example by having another publisher transfer ownership.</p>

 <p class="MsoBodyText">Once a publisher owns a key generator tModel that
 publisher MAY publish new entities<a href="#_ftn20" name="_ftnref20"
 title=""><span class="MsoFootnoteReference"><span
 class="MsoFootnoteReference"><span
 style="font-size:10.0pt;letter-spacing:-.25pt">[20]</span></span></span></a>
 and assign them keys within the key generator tModel’s partition. New keys
 can only be generated from keyGenerator tModels that are not hidden.
 Publishers are responsible for managing the uniqueness of the keys in the
 partition they own. If a publisher fails to do so, and generates an already
 used key, a publish operation could inadvertently replace an entity
 previously published by that publisher.</p>

 <p class="MsoBodyText">If a publisher owns key generator tModels with the
 same key in multiple registries – for example one in the publisher’s private
 test registry and one in the UDDI Business Registry – that publisher MAY
 publish the entities with identical keys in those registries. This enables
 many interesting capabilities. For example, publishers may choose to develop
 their UDDI entities by publishing them into test registries and then, at
 appropriate times, "promote" them to the UDDI Business Registry.</p>

 <h4 style="margin-left:0in;text-indent:0in"><a name="_Ref4335985">5.2.2.3
 Behavior of UDDI nodes</a></h4>

 <p class="MsoBodyText">To ensure that publisher-assigned keys work correctly
 all UDDI implementations behave as follows.</p>

 <h5 style="margin-left:0in;text-indent:0in">5.2.2.3.1 "New" and "existing"
 entities defined</h5>

 <p class="MsoBodyText">During a publish operation, the entity or entities
 being published are either "new" or "existing". An existing entity is one
 that has a key that matches the key of an entity already in the registry. A
 new entity is one that does not. If a new entity has a key, this key is the
 key proposed for that entity by its publisher.</p>

 <h5 style="margin-left:0in;text-indent:0in">5.2.2.3.2 Behavior with respect
 to entities for which no key is proposed.</h5>

 <p class="MsoBodyText">A UDDI node MUST generate and assign a key to each
 entity for which the publisher proposes no key. It may generate uuidKeys for
 use as the keys of new entities for which no key is proposed or it may
 generate keys in the partition of a key generator tModel it owns. </p>

 <p class="MsoBodyText">A registry whose nodes assign uddiKeys to new entities
 is called a root registry. The UDDI Business Registry is a root registry. A
 registry whose nodes gain ownership of their key generator tModels by
 publishing them in the UDDI Business Registry are affiliates of the UDDI
 Business Registry. See Section <a href="#_Ref11678674 ">1.5.5</a>
 <i>Affiliations of Registries</i>.</p>

 <h5 style="margin-left:0in;text-indent:0in">5.2.2.3.3 Behavior with respect
 to uuidKeys</h5>

 <p class="MsoBodyText">A UDDI node SHOULD accept a uuidKey as the key for a
 new entity during a publish operation if the publisher is a trusted publisher
 of such keys, according to the policies of the registry. UDDI nodes MUST NOT
 allow other publishers to generate uuidKeys.</p>

 <h5 style="margin-left:0in;text-indent:0in">5.2.2.3.4 Behavior with respect
 to key generator keys</h5>

 <p class="MsoBodyText">A UDDI node MUST NOT publish any non-tModel entity
 whose proposed key is a key generator key.&nbsp; A tModel whose proposed key
 is a key generator key MUST include a category bag with a keyed reference
 with the tModelKey set to "uddi:uddi.org:categorization:types" and the
 keyValue set to "keyGenerator".</p>

 <h5 style="margin-left:0in;text-indent:0in">5.2.2.3.5 Behavior with respect
 to root key generator keys</h5>

 <p class="MsoBodyText">During a publish operation a UDDI node SHOULD accept a
 root key generator key as the key for a new tModel if it is proposed by a
 publisher authorized to publish the key, according to the policies of the
 registry. The policy MUST prevent more than one publisher from publishing
 tModels with the same root key generator key. </p>

 <p class="MsoBodyText">An appropriate policy for root and for affiliated
 registries is given in Chapter <a href="#_Ref8981882 ">9</a>
 <i>Policy</i>.</p>

 <h5 style="margin-left:0in;text-indent:0in">5.2.2.3.6 Behavior with respect
 to other proposed keys</h5>

 <p class="MsoBodyText">A UDDI node SHOULD accept keys proposed for new
 entities during publishing operations if they meet both of the following
 criteria.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol;layout-grid-mode:line">·<span style="font:7.0pt
 &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><span style="layout-grid-mode:line">The proposed key lies in
 the partition of the key of an existing key generator tModel and the key
 generator tModel is not hidden.</span></p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span>The same publisher who is proposing the new key owns the key
 generator tModel referred to in the previous bullet.<span
 class="MsoFootnoteReference"> </span><a href="#_ftn21" name="_ftnref21"
 title=""><span
 style="font-size:10.0pt;font-family:Arial;letter-spacing:-.25pt">[21]</span></a></p>

 <h4 style="margin-left:0in;text-indent:0in">5.2.2.4 Affiliations of
 registries</h4>

 <p class="MsoBodyText">A set of registries may cooperate in managing a single
 multi-registry key space by designating one of the registries in the group to
 be the "root registry" and assigning it to be the authority for the root
 partition. Other registries in the set are said to be affiliate
 registries.&nbsp; See Section <a href="#_Ref11678674 ">1.5.5</a>
 &nbsp;<i>Affiliations of Registries</i> for more information</p>

 <p class="MsoBodyText">The UDDI Business Registry is a root registry. Its
 policies and procedures are designed to make it simple for any UDDI registry
 to be affiliated with it.</p>

 <p class="MsoBodyText">Designating new authorities is done by publishing key
 generator tModels in the root registry, in one or more of the registries
 affiliated with the root registry or both. The owner of a key generator
 tModel is the naming authority for the partition the tModel represents. </p>

 <h3><a name="_Toc85908098"></a><a name="_Toc53709293"></a><a
 name="_Toc45096379"></a><a name="_Toc45095922"></a><a
 name="_Toc42047299"></a><a name="_Ref8978999">5.2.3 Special considerations
 for validated value sets</a></h3>

 <p class="MsoBodyText">Several of the APIs defined in this section allow
 publishers to save category and identifier information in support of searches
 that use category and identifier system references.&nbsp; The save_business,
 save_service, save_binding and save_tModel APIs allow designation of these
 value set references.&nbsp; Categorization is specified using the element
 named categoryBag, which contains namespace-qualified references to
 categories and descriptions.&nbsp; categoryBags can also contain groups of
 these references to categories and descriptions.&nbsp; Identifiers are
 specified using the identifierBag element, which contains namespace-qualified
 references to identifiers and descriptions.</p>

 <p class="MsoBodyText">Similarly, the add_publisherAssertions and
 set_publisherAssertions APIs allow publisherAssertion elements to be
 saved.&nbsp; These publisherAssertion elements contain a characterization of
 the relationship being established using a keyedReference element that refers
 to a relationship type system.</p>

 <p class="MsoBodyText">Identifier, category and relationship type systems
 taken together are referred to as "value sets."&nbsp; UDDI allows value sets
 to be checked or unchecked.&nbsp; References to checked value sets that are
 registered in UDDI can be checked internally by the UDDI nodes where
 publishing takes place, or externally by a provider of a validation Web
 service.&nbsp; The UDDI node can also choose to not support some or all
 checked value sets.</p>

 <p class="MsoBodyText">When a UDDI node encounters a reference to a checked
 value set in a keyedReference it will either ensure the reference is
 validated or fail the save.&nbsp; Such references to supported checked value
 sets are verified for validity according to the validation algorithm defined
 for the value set and described by its tModel.&nbsp; When all checks succeed,
 the save is permitted.&nbsp; An E_unvalidatable error indicates the checked
 value set is supported but its validation algorithm is not available.&nbsp;
 An E_unsupported indicates the checked value set is not supported by the
 node. &nbsp;E_invalidValue or E_valueNotAllowed indicate one or more
 references failed validation.&nbsp; When the checked value set is not
 supported, the value set’s validation algorithm is unavailable, or any of the
 references fail validation, the save operation MUST fail. </p>

 <p class="MsoBodyText">When the UDDI node supports a checked value set it may
 check the references itself, or consult a validation Web service.&nbsp; For
 cached checked value sets, the UDDI node verifies that referenced keyValues
 are in the set of valid values for the value set.&nbsp; The selection of an
 algorithm for verifying a checked value set is a matter of registry policy as
 detailed in Chapter <a href="#_Ref8980043 ">9</a> <i>Policy</i>.</p>

 <p class="MsoBodyText">A category group system is portrayed by a
 keyedRefererenceGroup element.&nbsp; Each keyedReferenceGroup has a tModelKey
 that references the category group system, and a set of contained
 keyedReference elements that make up the actual group of categories.&nbsp;
 Similar to references to checked value sets, validation is carried out for a
 keyedReferenceGroup if the referenced category group system is checked.&nbsp;
 Such validation entails verification that the keyedReferenceGroup is valid
 according to the validation algorithm described by the tModel for the
 category group system.&nbsp; Validation for a keyedReferenceGroup that
 references a cached checked category group system involves verification that
 the tModels referenced by the contained keyedReference elements are valid for
 the category group system.&nbsp; The set of valid values for such a cacheable
 checked category group system is defined by the tModelKeys for the set of
 tModels that can participate in the group.</p>

 <p class="MsoBodyText">No validation is performed on references to unchecked
 value sets</p>

 <h3><a name="_Toc85908099"></a><a name="_Toc53709294"></a><a
 name="_Toc45096380"></a><a name="_Toc45095923"></a><a
 name="_Toc42047300"></a><a name="_Ref535223605"></a><a
 name="_Toc528997553"></a><a name="_Toc525464313"></a><a
 name="_Hlt536851811"></a>5.2.4 Special considerations for the xml:lang
 attribute</h3>

 <p class="MsoBodyText">During save_xx API calls, the name, description,
 address, and personName UDDI elements MAY be adorned with the xml:lang
 attribute to indicate the language in which their content is expressed. (See
 Chapter <a href="#_Ref8981895 ">3</a> <i>UDDI Registry Data
 Structures</i>.)&nbsp; When an optional xml:lang attribute is omitted from an
 element, no xml:lang attribute will be saved for that element.</p>

 <p class="MsoBodyText">Name elements in UDDI core data structures are
 frequently the main targets for sorts during UDDI inquiries.&nbsp; When a
 UDDI data structure has multiple names, sorting occurs on the first
 name.&nbsp; Care should be taken to list the primary name first when the
 entity is saved to ensure the proper placement of the entity in a sorted
 result set.</p>

 <p class="MsoBodyText">Values which can be passed in the language supplied in
 a save_xx API call MUST obey the recommended rules and syntax governing the
 xml:lang data type as defined in Section <a href="#_Ref8977786 ">3.3.2.3</a>
 <i>name</i>.</p>

 <h3><a name="_Toc528997554"></a><a name="_Toc525464316"></a><a
 name="_Toc85908100"></a><a name="_Toc53709295"></a><a
 name="_Toc45096381"></a><a name="_Toc45095924"></a><a
 name="_Toc42047301">5.2.5 Publisher </a>API summary</h3>

 <p class="MsoBodyText">The publishing API calls are:</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><a href="#_add_publisherAssertions"><b><span
 style="color:windowtext;
 text-decoration:none">add_publisherAssertions</span></b></a>: Used to add
 relationship assertions to the existing set of assertions.&nbsp; See Appendix
 A <i>Relationships and Publisher Assertions</i>.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><a href="#_delete_binding"><b><span style="color:windowtext;
 text-decoration:none">delete_binding</span></b></a>: Used to remove an
 existing bindingTemplate from the registry.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><a href="#_save_business"><b><span style="color:windowtext;
 text-decoration:none">delete_business</span></b></a>: Used to delete existing
 businessEntity information from the registry.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><a href="#_delete_publisherAssertions"><b><span style="color:
 windowtext;text-decoration:none">delete_publisherAssertions</span></b></a>:
 Used to delete specific publisher assertions from the assertion collection
 controlled by a particular publisher.&nbsp; Deleting assertions from the
 assertion collection affects the visibility of business relationships.&nbsp;
 Deleting an assertion causes any relationships based on that assertion to
 become incomplete.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><a href="#_delete_service"><b><span style="color:windowtext;
 text-decoration:none">delete_service</span></b></a>: Used to delete an
 existing businessService from the registry.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><a href="#_delete_tModel"><b><span style="color:windowtext;
 text-decoration:none">delete_tModel</span></b></a>: Used to hide existing
 information about a tModel.&nbsp; Any tModel hidden in this way is still
 usable for reference purposes and accessible via the get_tModelDetail API,
 but is hidden from find_tModel result sets.&nbsp; There is no specified way
 to delete a tModel.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><a href="#_get_assertionStatusReport"><b><span
 style="color:windowtext;
 text-decoration:none">get_assertionStatusReport</span></b></a>: Used to get a
 status report containing publisher assertions and status information.&nbsp;
 This report is useful to help an administrator manage publisher assertions.
 Returns an assertionStatusReport that includes the status of all assertions
 made involving any businessEntity controlled by the requesting publisher.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><a href="#_get_publisherAssertions"><b><span
 style="color:windowtext;
 text-decoration:none">get_publisherAssertions</span></b></a>: Used to get a
 list of publisher assertions that are controlled by an individual
 publisher.&nbsp; Returns a publisherAssertions structure containing all
 publisher assertions associated with a specific publisher.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><a href="#_get_registeredInfo"><b><span
 style="color:windowtext;
 text-decoration:none">get_registeredInfo</span></b></a>: Used to request an
 abbreviated list of businesses and tModels currently managed by a given
 publisher.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><a href="#_save_binding"><b><span style="color:windowtext;
 text-decoration:none">save_binding</span></b></a>: Used to register new
 bindingTemplate information or to update existing bindingTemplate
 information.&nbsp; Use this to control information about technical
 capabilities exposed by a registered business.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><a href="#_save_business"><b><span style="color:windowtext;
 text-decoration:none">save_business</span></b></a>: Used to register new
 businessEntity information or update existing businessEntity
 information.&nbsp; Use this to control the full set of information about the
 entire business, including its businessService and bindingTemplate
 structures.&nbsp; This API has the broadest effect of all of the save_xx
 APIs.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><a href="#_save_service"><b><span style="color:windowtext;
 text-decoration:none">save_service</span></b></a>:&nbsp; Used to register or
 update complete information about a businessService.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><a href="#_save_tModel"><b><span style="color:windowtext;
 text-decoration:none">save_tModel</span></b></a>:&nbsp; Used to register or
 update information about a tModel.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><a href="#_set_publisherAssertions"><b><span
 style="color:windowtext;
 text-decoration:none">set_publisherAssertions</span></b></a>: Used to save
 the complete set of publisher assertions for an individual publisher.&nbsp;
 Replaces any existing assertions, and causes any old assertions that are not
 reasserted to be removed from the registry.</p></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/uddi/v3_service/UDDIPublicationPortType.html#addPublisherAssertions-org.uddi.api_v3.AddPublisherAssertions-">addPublisherAssertions</a></span>(<a href="../../../org/uddi/api_v3/AddPublisherAssertions.html" title="class in org.uddi.api_v3">AddPublisherAssertions</a>&nbsp;body)</code>
<div class="block">The add_publisherAssertions API call causes one or more
 publisherAssertions to be added to an individual publisher’s assertion
 collection.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/uddi/v3_service/UDDIPublicationPortType.html#deleteBinding-org.uddi.api_v3.DeleteBinding-">deleteBinding</a></span>(<a href="../../../org/uddi/api_v3/DeleteBinding.html" title="class in org.uddi.api_v3">DeleteBinding</a>&nbsp;body)</code>
<div class="block">The delete_binding API call causes one or more instances of
 bindingTemplate data to be deleted from the UDDI registry.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/uddi/v3_service/UDDIPublicationPortType.html#deleteBusiness-org.uddi.api_v3.DeleteBusiness-">deleteBusiness</a></span>(<a href="../../../org/uddi/api_v3/DeleteBusiness.html" title="class in org.uddi.api_v3">DeleteBusiness</a>&nbsp;body)</code>
<div class="block">The delete_business API call is used to remove one or more business
 registrations and all elements that correspond to the natural content of
 the corresponding businessEntity elements from a UDDI registry.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/uddi/v3_service/UDDIPublicationPortType.html#deletePublisherAssertions-org.uddi.api_v3.DeletePublisherAssertions-">deletePublisherAssertions</a></span>(<a href="../../../org/uddi/api_v3/DeletePublisherAssertions.html" title="class in org.uddi.api_v3">DeletePublisherAssertions</a>&nbsp;body)</code>
<div class="block">The delete_publisherAssertions API call causes one or more
 publisherAssertion elements to be removed from a publisher’s assertion
 collection.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/uddi/v3_service/UDDIPublicationPortType.html#deleteService-org.uddi.api_v3.DeleteService-">deleteService</a></span>(<a href="../../../org/uddi/api_v3/DeleteService.html" title="class in org.uddi.api_v3">DeleteService</a>&nbsp;body)</code>
<div class="block">The delete_service API call is used to remove one or more businessService
 elements from the UDDI registry and from its containing businessEntity
 parent.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/uddi/v3_service/UDDIPublicationPortType.html#deleteTModel-org.uddi.api_v3.DeleteTModel-">deleteTModel</a></span>(<a href="../../../org/uddi/api_v3/DeleteTModel.html" title="class in org.uddi.api_v3">DeleteTModel</a>&nbsp;body)</code>
<div class="block">The delete_tModel API call is used to logically delete one or more tModel
 structures.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../org/uddi/api_v3/AssertionStatusItem.html" title="class in org.uddi.api_v3">AssertionStatusItem</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/uddi/v3_service/UDDIPublicationPortType.html#getAssertionStatusReport-java.lang.String-org.uddi.api_v3.CompletionStatus-">getAssertionStatusReport</a></span>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;authInfo,
                        <a href="../../../org/uddi/api_v3/CompletionStatus.html" title="enum in org.uddi.api_v3">CompletionStatus</a>&nbsp;completionStatus)</code>
<div class="block">The get_assertionStatusReport API call provides administrative support
 for determining the status of current and outstanding publisher
 assertions that involve any of the business registrations managed by the
 individual publisher.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../org/uddi/api_v3/PublisherAssertion.html" title="class in org.uddi.api_v3">PublisherAssertion</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/uddi/v3_service/UDDIPublicationPortType.html#getPublisherAssertions-java.lang.String-">getPublisherAssertions</a></span>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;authInfo)</code>
<div class="block">The get_publisherAssertions API call is used to obtain the full set of
 publisher assertions that is associated with an individual publisher.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../org/uddi/api_v3/RegisteredInfo.html" title="class in org.uddi.api_v3">RegisteredInfo</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/uddi/v3_service/UDDIPublicationPortType.html#getRegisteredInfo-org.uddi.api_v3.GetRegisteredInfo-">getRegisteredInfo</a></span>(<a href="../../../org/uddi/api_v3/GetRegisteredInfo.html" title="class in org.uddi.api_v3">GetRegisteredInfo</a>&nbsp;body)</code>
<div class="block">The get_registeredInfo API call is used to get an abbreviated list of all
 businessEntity and tModel data that are controlled by a publisher.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../org/uddi/api_v3/BindingDetail.html" title="class in org.uddi.api_v3">BindingDetail</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/uddi/v3_service/UDDIPublicationPortType.html#saveBinding-org.uddi.api_v3.SaveBinding-">saveBinding</a></span>(<a href="../../../org/uddi/api_v3/SaveBinding.html" title="class in org.uddi.api_v3">SaveBinding</a>&nbsp;body)</code>
<div class="block">The save_binding API call is used to save or update a complete
 bindingTemplate element.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../org/uddi/api_v3/BusinessDetail.html" title="class in org.uddi.api_v3">BusinessDetail</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/uddi/v3_service/UDDIPublicationPortType.html#saveBusiness-org.uddi.api_v3.SaveBusiness-">saveBusiness</a></span>(<a href="../../../org/uddi/api_v3/SaveBusiness.html" title="class in org.uddi.api_v3">SaveBusiness</a>&nbsp;body)</code>
<div class="block"><p class="MsoBodyText">The save_business API call is used to save or
 update information about a complete businessEntity structure.&nbsp; This
 API has the broadest scope of all of the save_xx API calls, and can be
 used to make sweeping changes to the published information for one or
 more businessEntity elements controlled by an individual.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../org/uddi/api_v3/ServiceDetail.html" title="class in org.uddi.api_v3">ServiceDetail</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/uddi/v3_service/UDDIPublicationPortType.html#saveService-org.uddi.api_v3.SaveService-">saveService</a></span>(<a href="../../../org/uddi/api_v3/SaveService.html" title="class in org.uddi.api_v3">SaveService</a>&nbsp;body)</code>
<div class="block">The save_service API call adds or updates one or more businessService
 elements.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../org/uddi/api_v3/TModelDetail.html" title="class in org.uddi.api_v3">TModelDetail</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/uddi/v3_service/UDDIPublicationPortType.html#saveTModel-org.uddi.api_v3.SaveTModel-">saveTModel</a></span>(<a href="../../../org/uddi/api_v3/SaveTModel.html" title="class in org.uddi.api_v3">SaveTModel</a>&nbsp;body)</code>
<div class="block">The save_tModel API call adds or updates one or more registered tModel
 elements.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/uddi/v3_service/UDDIPublicationPortType.html#setPublisherAssertions-java.lang.String-javax.xml.ws.Holder-">setPublisherAssertions</a></span>(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;authInfo,
                      <a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/Holder.html?is-external=true" title="class or interface in javax.xml.ws">Holder</a>&lt;<a href="https://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../org/uddi/api_v3/PublisherAssertion.html" title="class in org.uddi.api_v3">PublisherAssertion</a>&gt;&gt;&nbsp;publisherAssertion)</code>
<div class="block">The set_publisherAssertions API call is used to manage all of the tracked
 relationship assertions associated with an individual publisher.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="addPublisherAssertions-org.uddi.api_v3.AddPublisherAssertions-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addPublisherAssertions</h4>
<pre>void&nbsp;addPublisherAssertions(<a href="../../../org/uddi/api_v3/AddPublisherAssertions.html" title="class in org.uddi.api_v3">AddPublisherAssertions</a>&nbsp;body)
                     throws <a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a>,
                            <a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></pre>
<div class="block">The add_publisherAssertions API call causes one or more
 publisherAssertions to be added to an individual publisher’s assertion
 collection. See Appendix A Relationships and Publisher Assertions
 describing relationships and the API get_publisherAssertions for more
 information on this collection. <p class="MsoBodyText">The publisher must
 own the businessEntity referenced in the fromKey, the toKey, or
 both.&nbsp; If both of the businessKey values passed within an assertion
 are owned by the publisher, then the assertion is automatically complete
 and the relationship described in the assertion is visible via the
 find_relatedBusinesses API.&nbsp; To form a relationship when the
 publisher only owns one of the two keys passed, the assertion MUST be
 matched exactly by an assertion made by the publisher who owns the other
 business referenced. Assertions exactly match if and only if they: </p>

 <p class="MsoBodyText"
 style="margin-left:1.0in;text-indent:-.25in">1.<span style="font:7.0pt
 &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span>refer to the same businessEntity in their fromKeys; </p>

 <p class="MsoBodyText"
 style="margin-left:1.0in;text-indent:-.25in">2.<span style="font:7.0pt
 &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span>refer to the same businessEntity in their toKeys; </p>

 <p class="MsoBodyText"
 style="margin-left:1.0in;text-indent:-.25in">3.<span style="font:7.0pt
 &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span>refer to the same tModel in their tModelKeys; </p>

 <p class="MsoBodyText"
 style="margin-left:1.0in;text-indent:-.25in">4.<span style="font:7.0pt
 &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span>have identical keyNames; and </p>

 <p class="MsoBodyText"
 style="margin-left:1.0in;text-indent:-.25in">5.<span style="font:7.0pt
 &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span>have identical keyValues.</p>

 <p class="MsoBodyText">When a publisherAssertion being added references a
 checked relationship system using the tModelKey in the contained
 keyedReference, the reference MUST be checked for validity prior to
 completion of the add, or the node must return E_unsupported, indicating
 it does not support the referenced checked relationship system.&nbsp;
 Validation of a relationship system reference entails verification that
 the reference is valid according to the validation algorithm defined for
 the relationship system and described by its tModel.&nbsp; For cached
 checked relationship systems, the validation algorithm verifies that
 referenced keyValues are in the set of valid values for the relationship
 system.</p>

 <p class="MsoBodyText">For registries supporting the subscription APIs at
 any node, it is necessary to track a modified date for publisherAssertion
 elements so that nodes have the necessary information for responding to
 subscription requests involving find_relatedBusinesses and
 get_assertionStatusReport filters.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>body</code> - <p class="MsoBodyText"
 style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>authInfo</i></b>: This optional argument is an
 element that contains an authentication token.&nbsp; Authentication
 tokens are obtained using the get_authToken API call or through some
 other method external to this specification. Registries that serve
 multiple publishers and registries that restrict who can publish in them
 typically require authInfo for this call.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>publisherAssertion</i></b>: This required repeating
 element holds the relationship assertions that are being added.&nbsp;
 Relationship assertions consist of a reference to two businessEntity key
 values as designated by the fromKey and toKey elements, as well as a
 REQUIRED expression of directional relationship within the contained
 keyedReference element.&nbsp; See Appendix A <i>Relationships and
 PublisherAssertions</i> on managing relationships. The fromKey, the
 toKey, and all three parts of the keyedReference – the tModelKey, the
 keyName, and the keyValue MUST be specified or the call will fail with
 the error E_fatalError. Empty (zero length) keyNames and keyValues are
 permitted.</p> Upon successful completion, an empty message is returned.
 See section 4.8 Success and Error Reporting.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>DispositionReportFaultMessage,</code> - RemoteException

 <p class="MsoBodyText">If an error occurs in processing this API call, a
 dispositionReport structure MUST be returned to the caller in a SOAP
 Fault. See Section <a href="#_Ref8978558 ">4.8</a> <i>Success and Error
 Reporting.&nbsp; </i>In addition to the errors common to all APIs, the
 following error information is relevant here:</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_invalidKeyPassed</b>: signifies that one of the
 <i>uddiKey</i> values passed did not match with any known businessKey or
 tModelKey values.&nbsp; The key and element or attribute that caused the
 problem SHOULD be clearly indicated in the error text.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_userMismatch</b>: signifies that neither of the
 businessKey values passed in the embedded fromKey and toKey elements is
 owned by the publisher associated with the authentication token.&nbsp;
 The error text SHOULD clearly indicate which assertion caused the
 error.</p></dd>
<dd><code><a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></code></dd>
</dl>
</li>
</ul>
<a name="deleteBinding-org.uddi.api_v3.DeleteBinding-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteBinding</h4>
<pre>void&nbsp;deleteBinding(<a href="../../../org/uddi/api_v3/DeleteBinding.html" title="class in org.uddi.api_v3">DeleteBinding</a>&nbsp;body)
            throws <a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a>,
                   <a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></pre>
<div class="block">The delete_binding API call causes one or more instances of
 bindingTemplate data to be deleted from the UDDI registry.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>body</code> - <p class="MsoBodyText"
 style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>authInfo</i></b>: This optional argument is an
 element that contains an authentication token.&nbsp; Authentication
 tokens are obtained using the get_authToken API call or through some
 other method external to this specification. Registries that serve
 multiple publishers and registries that restrict who can publish in them
 typically require authInfo for this call.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>bindingKey</i></b>: One or more required
 <i>uddiKey</i> values that represent specific instances of known
 bindingTemplate data.</p>
     
 Upon successful completion, an empty message is returned. See section 4.8
 Success and Error Reporting.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>DispositionReportFaultMessage,</code> - RemoteException <p
 class="MsoBodyText">If an error occurs in processing this API call, a
 dispositionReport structure MUST be returned to the caller in a SOAP
 Fault.&nbsp; See Section <a href="#_Ref8978558 ">4.8</a> <i>Success and
 Error Reporting.&nbsp; </i>In addition to the errors common to all APIs,
 the following error information is relevant here:</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_invalidKeyPassed</b>: Signifies that one of the
 <i>uddiKey</i> values passed did not match with any known bindingKey
 values or multiple instances of the same bindingKey values were
 passed.&nbsp; No partial results are returned – if any bindingKey values
 passed are not valid, this error is returned.&nbsp; The key that caused
 the problem SHOULD clearly be indicated in the error text.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_userMismatch</b>: Signifies that one or more of the
 bindingKey values passed refers to a bindingTemplate that is not owned by
 the individual publisher associated with the authentication token.</p>

 <b><span
 style="font-size:13.0pt;font-family:Arial;color:navy"></span></b></dd>
<dd><code><a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></code></dd>
</dl>
</li>
</ul>
<a name="deleteBusiness-org.uddi.api_v3.DeleteBusiness-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteBusiness</h4>
<pre>void&nbsp;deleteBusiness(<a href="../../../org/uddi/api_v3/DeleteBusiness.html" title="class in org.uddi.api_v3">DeleteBusiness</a>&nbsp;body)
             throws <a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a>,
                    <a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></pre>
<div class="block">The delete_business API call is used to remove one or more business
 registrations and all elements that correspond to the natural content of
 the corresponding businessEntity elements from a UDDI registry.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>body</code> - · authInfo: This optional argument is an element that
 contains an authentication token. Authentication tokens are obtained
 using the get_authToken API call or through some other means external to
 this specification. Registries that serve multiple publishers and
 registries that restrict who can publish in them typically require
 authInfo for this call.

 · businessKey: One or more required uddiKey values that represent
 specific instances of known businessEntity data. <p
 class="MsoBodyText">The UDDI registry MUST permanently remove all of the
 <i>natural contents</i><a href="#_ftn22" name="_ftnref22" title=""><span
 class="MsoFootnoteReference"><span class="MsoFootnoteReference"><span
 style="font-size:10.0pt;letter-spacing:-.25pt">[22]</span></span></span></a>
 of the passed businessEntity elements, including any currently nested
 businessService and bindingTemplate data, from the UDDI registry.</p>

 <p class="MsoBodyText">If there are service projections<a href="#_ftn23"
 name="_ftnref23" title=""><span class="MsoFootnoteReference"><span
 class="MsoFootnoteReference"><span
 style="font-size:10.0pt;letter-spacing:-.25pt">[23]</span></span></span></a>
 that reference businessService elements deleted in this way, they are
 left untouched. Such "broken" service projections appear in their
 businessEntity as businessService elements containing the businessKey and
 serviceKey attributes as their only content. For this reason, it is a
 best practice to coordinate references to businessService data published
 under another businessEntity with the party who manages that data.&nbsp;
 </p>

 <p class="MsoBodyText">All publisher assertions that reference the
 businessKey of the businessEntity being deleted in either the fromKey or
 toKey of the publisherAssertion MUST be automatically deleted.&nbsp; A
 deleted business MUST not be returned in the find_relatedBusinesses
 API.</p>

 <p class="MsoBodyText">Any transferToken referring to the business entity
 being deleted becomes invalid and can no longer be used to transfer any
 entities.</p> Upon successful completion, an empty message is returned.
 See section 4.8 Success and Error Reporting.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>DispositionReportFaultMessage,</code> - RemoteException <p
 class="MsoBodyText">If an error occurs in processing this API call, a
 dispositionReport element MUST be returned to the caller within a SOAP
 Fault.&nbsp; See Section <a href="#_Ref8978558 ">4.8</a> <i>Success and
 Error Reporting.&nbsp; </i>In addition to the errors common to all APIs,
 the following error information is relevant here:</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_invalidKeyPassed</b>: Signifies that one of the
 <i>uddiKey</i> values passed did not match with any known businessKey
 values or multiple instances of the same businessKey values were passed.
 The key that caused the error SHOULD be clearly indicated in the error
 text.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_userMismatch</b>: Signifies that one or more of the
 businessKey values passed refers to data that is not owned by the
 individual publisher who is represented by the authentication token.</p>

 <p class="MsoNormal">&nbsp;</p></dd>
<dd><code><a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></code></dd>
</dl>
</li>
</ul>
<a name="deletePublisherAssertions-org.uddi.api_v3.DeletePublisherAssertions-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deletePublisherAssertions</h4>
<pre>void&nbsp;deletePublisherAssertions(<a href="../../../org/uddi/api_v3/DeletePublisherAssertions.html" title="class in org.uddi.api_v3">DeletePublisherAssertions</a>&nbsp;body)
                        throws <a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a>,
                               <a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></pre>
<div class="block">The delete_publisherAssertions API call causes one or more
 publisherAssertion elements to be removed from a publisher’s assertion
 collection. See Appendix A Relationships and Publisher Assertions and the
 API get_publisherAssertions for more information on this collection.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>body</code> - <p class="MsoBodyText"
 style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>authInfo</i></b>: This optional argument is an
 element that contains an authentication token.&nbsp; Authentication
 tokens are obtained using the get_authToken API call or through some
 other means external to this specification. Registries that serve
 multiple publishers and registries that restrict who can publish in them
 typically require authInfo for this call.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>publisherAssertion</i></b>: One or more required
 publisher assertion structures exactly matching an existing assertion in
 the publisher’s assertion collection.</p> <p class="MsoBodyText">The UDDI
 registry scans the assertion collection associated with the publisher,
 and removes any assertions that exactly match all parts of each
 publisherAssertion passed.&nbsp; Any assertions described that cannot be
 located result in an error.&nbsp; The removal of assertions in this API
 causes the corresponding relationships to no longer be visible via the
 find_relatedBusinesses API.</p>

 <p class="MsoBodyText">For registries supporting the subscription APIs at
 any node, it is necessary to track a modified date for publisherAssertion
 elements so that nodes have the necessary information for responding to
 subscription requests involving find_relatedBusinesses and
 get_assertionStatusReport filters.</p> Upon successful completion, an
 empty message is returned. See section 4.8 Success and Error Reporting.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>DispositionReportFaultMessage,</code> - RemoteException <p
 class="MsoBodyText">If an error occurs in processing this API call, a
 dispositionReport structure MUST be returned to the caller in a SOAP
 Fault.&nbsp; See Section <a href="#_Ref8978558 ">4.8</a> <i>Success and
 Error Reporting.&nbsp; </i>In addition to the errors common to all APIs,
 the following error information is relevant here:</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_assertionNotFound</b>: Signifies that one of the
 assertion structures passed does not have any corresponding match in the
 publisher’s assertion collection or multiple instances of the same
 publisherAssertions elements were passed.&nbsp; The assertion that caused
 the problem SHOULD be clearly indicated in the error text. </p>

 <b><span
 style="font-size:13.0pt;font-family:Arial;color:navy"></span></b></dd>
<dd><code><a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></code></dd>
</dl>
</li>
</ul>
<a name="deleteService-org.uddi.api_v3.DeleteService-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteService</h4>
<pre>void&nbsp;deleteService(<a href="../../../org/uddi/api_v3/DeleteService.html" title="class in org.uddi.api_v3">DeleteService</a>&nbsp;body)
            throws <a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a>,
                   <a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></pre>
<div class="block">The delete_service API call is used to remove one or more businessService
 elements from the UDDI registry and from its containing businessEntity
 parent.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>body</code> - <p class="MsoBodyText"
 style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>authInfo</i></b>: This optional argument is an
 element that contains an authentication token.&nbsp; Authentication
 tokens are obtained using the get_authToken API call or through some
 other means external to this specification. Registries that serve
 multiple publishers and registries that restrict who can publish in them
 typically require authInfo for this call.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>serviceKey</i></b>: One or more required
 <i>uddiKey</i> values that represent specific instances of known
 businessService data.</p> <p class="MsoBodyText">All contained
 bindingTemplate data MUST also be removed from the registry as a result
 of this call.</p>

 <p class="MsoBodyText">If a business service being deleted is the target
 of a business service projection associated with another businessEntity,
 the referencing businessService elements are left untouched.&nbsp; Such
 "broken" service projections appear in their businessEntity and
 businessService elements containing the businessKey and serviceKey
 attributes as their only content.&nbsp; For this reason, it is
 recommended that references to businessService data published under
 another businessEntity be coordinated with the party that manages that
 data.&nbsp; </p></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>DispositionReportFaultMessage,</code> - RemoteException If an error occurs
 in processing this API call, a dispositionReport structure MUST be
 returned to the caller in a SOAP Fault. See Section 4.8 Success and Error
 Reporting. In addition to the errors common to all APIs, the following
 error information is relevant here:

 · E_invalidKeyPassed: Signifies that one of the uddiKey values passed did
 not match with any known serviceKey values or multiple instances of the
 same serviceKey values were passed. The key causing the error SHOULD be
 clearly indicated in the error text.

 · E_userMismatch: Signifies that one or more of the serviceKey values
 passed refers to data that is not owned by the individual publisher who
 is represented by the authentication token.</dd>
<dd><code><a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></code></dd>
</dl>
</li>
</ul>
<a name="deleteTModel-org.uddi.api_v3.DeleteTModel-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteTModel</h4>
<pre>void&nbsp;deleteTModel(<a href="../../../org/uddi/api_v3/DeleteTModel.html" title="class in org.uddi.api_v3">DeleteTModel</a>&nbsp;body)
           throws <a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a>,
                  <a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></pre>
<div class="block">The delete_tModel API call is used to logically delete one or more tModel
 structures. Logical deletion hides the deleted tModels from find_tModel
 result sets but does not physically delete them. New references to
 deleted (hidden) tModels can be established by publishers that know their
 keys. Deleting an already deleted tModel has no effect.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>body</code> - <p class="MsoBodyText"
 style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>authInfo</i></b>: This optional argument is an
 element that contains an authentication token.&nbsp; Authentication
 tokens are obtained using the get_authToken API call or through some
 other means external to this specification. Registries that serve
 multiple publishers and registries that restrict who can publish in them
 typically require authInfo for this call.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>tModelKey</i></b>: One or more required
 <i>uddiKey</i> values that represent specific instances of known tModel
 data.</p> <p class="MsoBodyText">If a tModel is hidden in this way it
 MUST not be physically deleted as a result of this call. Any tModels
 hidden in this way are still accessible, via the get_registeredInfo and
 get_tModelDetail APIs, but are omitted from any results returned by calls
 to find_tModel.&nbsp; All other inquiry APIs may include references to
 tModelKeys of deleted tModelKeys, and UDDI data structures that reference
 these tModels are found and retrieved. </p>

 <p class="MsoBodyText">The purpose of the delete_tModel behavior is to
 ensure that the details associated with a hidden tModel are still
 available to anyone currently using the tModel.&nbsp; A hidden tModel can
 be restored and made visible to search results by invoking the
 save_tModel API at a later time, passing the original data and the
 tModelKey value of the hidden tModel.</p>

 <p class="MsoBodyText">It is not an error to transfer a hidden tModel
 (i.e. deleted attribute set to TRUE).</p> Upon successful completion, an
 empty message is returned. See section 4.8 Success and Error Reporting.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>DispositionReportFaultMessage,</code> - RemoteException If an error occurs
 in processing this API call, a dispositionReport element MUST be returned
 to the caller within a SOAP Fault. See Section 4.8 Success and Error
 Reporting. In addition to the errors common to all APIs, the following
 error information is relevant here:

 · E_invalidKeyPassed: Signifies that one of the uddiKey values passed did
 not match with any known tModelKey values or multiple instances of the
 same tModelKey values were passed. The invalid key references SHOULD be
 clearly indicated in the error text.

 · E_userMismatch: Signifies that one or more of the tModelKey values
 passed refers to data that is not owned by the individual publisher who
 is represented by the authentication token.</dd>
<dd><code><a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></code></dd>
</dl>
</li>
</ul>
<a name="getAssertionStatusReport-java.lang.String-org.uddi.api_v3.CompletionStatus-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAssertionStatusReport</h4>
<pre><a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/RequestWrapper.html?is-external=true" title="class or interface in javax.xml.ws">@RequestWrapper</a>(<a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/RequestWrapper.html?is-external=true#localName--" title="class or interface in javax.xml.ws">localName</a>="get_assertionStatusReport",
                <a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/RequestWrapper.html?is-external=true#targetNamespace--" title="class or interface in javax.xml.ws">targetNamespace</a>="urn:uddi-org:api_v3",
                <a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/RequestWrapper.html?is-external=true#className--" title="class or interface in javax.xml.ws">className</a>="org.uddi.api_v3.GetAssertionStatusReport")
 <a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/ResponseWrapper.html?is-external=true" title="class or interface in javax.xml.ws">@ResponseWrapper</a>(<a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/ResponseWrapper.html?is-external=true#localName--" title="class or interface in javax.xml.ws">localName</a>="assertionStatusReport",
                 <a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/ResponseWrapper.html?is-external=true#targetNamespace--" title="class or interface in javax.xml.ws">targetNamespace</a>="urn:uddi-org:api_v3",
                 <a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/ResponseWrapper.html?is-external=true#className--" title="class or interface in javax.xml.ws">className</a>="org.uddi.api_v3.AssertionStatusReport")
<a href="https://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../org/uddi/api_v3/AssertionStatusItem.html" title="class in org.uddi.api_v3">AssertionStatusItem</a>&gt;&nbsp;getAssertionStatusReport(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;authInfo,
                                                                                                                                                                                                                                                                                                                                                                                                                              <a href="../../../org/uddi/api_v3/CompletionStatus.html" title="enum in org.uddi.api_v3">CompletionStatus</a>&nbsp;completionStatus)
                                                                                                                                                                                                                                                                                                                                                                                                                       throws <a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a>,
                                                                                                                                                                                                                                                                                                                                                                                                                              <a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></pre>
<div class="block">The get_assertionStatusReport API call provides administrative support
 for determining the status of current and outstanding publisher
 assertions that involve any of the business registrations managed by the
 individual publisher. Using this API, a publisher can see the status of
 assertions that they have made, as well as see assertions that others
 have made that involve businessEntity structures controlled by the
 requesting publisher. See Appendix A Relationships and Publisher
 Assertions for more information.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>completionStatus</code> - </dd>
<dd><code>authInfo</code> - <p class="MsoBodyText"
 style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>authInfo</i></b>: This optional argument is an
 element that contains an authentication token.&nbsp; Authentication
 tokens are obtained using the get_authToken API call or through some
 other means external to this specification. Registries that serve
 multiple publishers and registries that restrict who can publish in them
 typically require authInfo for this call.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>completionStatus</i></b>: This optional argument lets
 the publisher restrict the result set to only those relationships that
 have the specified status value.&nbsp; Assertion status is a calculated
 result based on the sum total of assertions made by the individuals that
 control specific business registrations.&nbsp; When no completionStatus
 element is provided, all assertions involving the businesses that the
 publisher owns are retrieved, without regard to the completeness of the
 relationship.&nbsp; completionStatus MUST contain one of the following
 values</p>

 <p class="MsoNormal" style="margin-left:1.5in;text-indent:-.25in"><span
 style="font-family:&quot;Courier New&quot;">o<span style="font:7.0pt
 &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>status:complete</b>: Passing this value causes only the
 publisher assertions that are complete to be returned.&nbsp; Each
 businessEntity listed in assertions that are complete has a visible
 relationship that directly reflects the data in a complete assertion (as
 described in the find_relatedBusinesses API).</p>

 <p class="MsoNormal" style="margin-left:1.5in;text-indent:-.25in"><span
 style="font-family:&quot;Courier New&quot;">o<span style="font:7.0pt
 &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>status:toKey_incomplete</b>: Passing this value causes
 only those publisher assertions where the party who controls the
 businessEntity referenced by the toKey value in an assertion, has not
 made a matching assertion, to be listed.</p>

 <p class="MsoNormal" style="margin-left:1.5in;text-indent:-.25in"><span
 style="font-family:&quot;Courier New&quot;">o<span style="font:7.0pt
 &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>status:fromKey_incomplete</b>: Passing this value causes
 only those publisher assertions where the party who controls the
 businessEntity referenced by the fromKey value in an assertion, has not
 made a matching assertion, to be listed.</p>

 <p class="MsoNormal" style="margin-left:1.5in;text-indent:-.25in"><span
 style="font-family:&quot;Courier New&quot;">o<span style="font:7.0pt
 &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>status:both_incomplete</b>. This status value, however,
 is only applicable to the context of UDDI subscription and SHOULD not be
 present as part of a response to a get_assertionStatusReport request.</p>

 <span
 style="font-size:10.0pt;font-family:Arial;letter-spacing:-.25pt"></span></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>returns java.util.List<org.uddi.api_v3.AssertionStatusItem> Upon
 successful completion, an assertionStatusReport structure is returned
 containing zero or more assertionStatusItem structures. Elements will be
 sorted by last date change in ascending order.

 The assertionStatusReport has the form: <img
 src="http://uddi.org/pubs/uddi-v3.0.2-20041019_files/image067.gif"> <p
 class="MsoBodyText">The assertionStatusReport reports all complete and
 incomplete assertions and serves an administrative use for determining if
 there are any outstanding, incomplete assertions pertaining to
 relationships involving businesses with which the publisher is
 associated.</p>

 <p class="MsoBodyText">Since the publisher who was authenticated by the
 get_assertionStatusReport API may own several businesses, the
 assertionStatusReport structure shows the assertions made for all
 businesses owned by the publisher.</p>

 <p class="MsoBodyText">The assertion status report is composed of a set
 of assertionStatusItem elements that describe the assertions in which the
 publisher’s businesses participate.&nbsp; The assertionStatusItem element
 has the form:</p>

 <p class="MsoBodyText"><img
 src="http://uddi.org/pubs/uddi-v3.0.2-20041019_files/image068.gif"
 border="0" height="170" width="393"></p>

 <p class="MsoBodyText">&nbsp;</p>

 <p class="MsoBodyText">The assertionStatusItem structure has the
 following attribute:</p>

 <table class="MsoNormalTable"
 style="margin-left:48.75pt;border-collapse:collapse;border:none"
 border="1" cellpadding="0" cellspacing="0"> <tbody><tr> <td
 style="border:solid black 1.0pt;background:#FFFFCA;padding: 0in 5.4pt 0in
 5.4pt" valign="top"> <p class="MsoNormal"><b>Name&nbsp; </b></p> </td>
 <td style="border:solid black 1.0pt;border-left:none;background:
 #FFFFCA;padding:0in 5.4pt 0in 5.4pt" valign="top"> <p
 class="MsoNormal"><b>Use&nbsp; </b></p> </td> </tr> <tr> <td
 style="border:solid black 1.0pt;border-top:none;padding:0in 5.4pt 0in
 5.4pt" valign="top"> <p class="MsoNormal">completionStatus&nbsp; </p>
 </td> <td style="border-top:none;border-left:none;border-bottom:solid
 black 1.0pt; border-right:solid black 1.0pt;padding:0in 5.4pt 0in 5.4pt"
 valign="top"> <p class="MsoNormal">required</p> </td> </tr>
 </tbody></table>

 <p class="MsoNormal">&nbsp;</p>

 <p class="MsoBodyText">While the elements fromKey, toKey and
 keyedReference together identify the assertion on whose status a report
 is being provided, the keysOwned element designates those businessKeys
 the publisher manages.&nbsp; The keysOwned element has the form:</p>

 <p class="MsoBodyText"><img
 src="http://uddi.org/pubs/uddi-v3.0.2-20041019_files/image069.gif"
 border="0" height="137" width="372"></p>

 <p class="MsoBodyText">An assertion is part of a reciprocal relationship
 only if the completionStatus attribute has a value "status:complete". If
 completionStatus has a value "status:toKey_incomplete" or
 "status:fromKey_incomplete", the party who controls the businessEntity
 referenced by the toKey or the fromKey has not yet made a matching
 assertion.</p></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>DispositionReportFaultMessage,</code> - RemoteException If an error occurs
 in processing this API call, a dispositionReport element MUST be returned
 to the caller within a SOAP Fault. See Section 4.8 Success and Error
 Reporting. In addition to the errors common to all APIs, the following
 error information is relevant here:

 · E_invalidCompletionStatus: Signifies that the completionStatus value
 passed is unrecognized. The completion status that caused the problem
 SHOULD be clearly indicated in the error text.</dd>
<dd><code><a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></code></dd>
</dl>
</li>
</ul>
<a name="getPublisherAssertions-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPublisherAssertions</h4>
<pre><a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/RequestWrapper.html?is-external=true" title="class or interface in javax.xml.ws">@RequestWrapper</a>(<a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/RequestWrapper.html?is-external=true#localName--" title="class or interface in javax.xml.ws">localName</a>="get_publisherAssertions",
                <a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/RequestWrapper.html?is-external=true#targetNamespace--" title="class or interface in javax.xml.ws">targetNamespace</a>="urn:uddi-org:api_v3",
                <a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/RequestWrapper.html?is-external=true#className--" title="class or interface in javax.xml.ws">className</a>="org.uddi.api_v3.GetPublisherAssertions")
 <a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/ResponseWrapper.html?is-external=true" title="class or interface in javax.xml.ws">@ResponseWrapper</a>(<a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/ResponseWrapper.html?is-external=true#localName--" title="class or interface in javax.xml.ws">localName</a>="publisherAssertionsResponse",
                 <a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/ResponseWrapper.html?is-external=true#targetNamespace--" title="class or interface in javax.xml.ws">targetNamespace</a>="urn:uddi-org:api_v3",
                 <a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/ResponseWrapper.html?is-external=true#className--" title="class or interface in javax.xml.ws">className</a>="org.uddi.api_v3.PublisherAssertionsResponse")
<a href="https://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../org/uddi/api_v3/PublisherAssertion.html" title="class in org.uddi.api_v3">PublisherAssertion</a>&gt;&nbsp;getPublisherAssertions(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;authInfo)
                                                                                                                                                                                                                                                                                                                                                                                                                            throws <a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a>,
                                                                                                                                                                                                                                                                                                                                                                                                                                   <a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></pre>
<div class="block">The get_publisherAssertions API call is used to obtain the full set of
 publisher assertions that is associated with an individual publisher. It
 complements the get_registeredInfo API which returns information about
 businesses, services, bindings, and tModels managed by a publisher.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>authInfo</code> - · authInfo: This optional argument is an element that
 contains an authentication token. Authentication tokens are obtained
 using the get_authToken API call or through some other means external to
 this specification. Registries that serve multiple publishers and
 registries that restrict who can publish in them typically require
 authInfo for this call.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>returns java.util.List<org.uddi.api_v3.PublisherAssertion> This
 API call returns a publisherAssertions structure that contains a
 publisherAssertion element for each publisher assertion registered by the
 publisher. When the registry distinguishes between publishers, this
 information is associated with the authentication information. Only
 assertions made by the publisher are returned. Elements will be sorted by
 last date change in ascending order. See get_assertionStatusReport and
 Appendix A Relationships and Publisher Assertions for more details.

 The publisherAssertions structure has the form: <img
 src="http://uddi.org/pubs/uddi-v3.0.2-20041019_files/image071.gif"></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>DispositionReportFaultMessage,</code> - RemoteException None, other than
 those common to all UDDI APIs. See Section 12.1 Common Error Codes.</dd>
<dd><code><a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></code></dd>
</dl>
</li>
</ul>
<a name="getRegisteredInfo-org.uddi.api_v3.GetRegisteredInfo-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRegisteredInfo</h4>
<pre><a href="../../../org/uddi/api_v3/RegisteredInfo.html" title="class in org.uddi.api_v3">RegisteredInfo</a>&nbsp;getRegisteredInfo(<a href="../../../org/uddi/api_v3/GetRegisteredInfo.html" title="class in org.uddi.api_v3">GetRegisteredInfo</a>&nbsp;body)
                          throws <a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a>,
                                 <a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></pre>
<div class="block">The get_registeredInfo API call is used to get an abbreviated list of all
 businessEntity and tModel data that are controlled by a publisher. When
 the registry distinguishes between publishers, this is the individual
 associated with the credentials passed in the authInfo element. This
 returned information is intended, for example, for driving tools that
 display lists of registered information and then provide drill-down
 features. This is the recommended API to use after a network problem
 results in an unknown status of saved information.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>body</code> - authInfo: This optional argument is an element that contains
 an authentication token. Authentication tokens are obtained using the
 get_authToken API call or through some other means external to this
 specification. Registries that serve multiple publishers and registries
 that restrict who can publish in them typically require authInfo for this
 call.

 · infoSelection: This required argument represents an enumerated choice
 that determines which tModels are returned. "all" indicates all visible
 and hidden tModels owned by the publisher are to be returned (this is the
 default). "visible" indicates only visible tModels owned by the publisher
 are to be returned. "hidden" indicates only hidden (logically deleted)
 tModels owned by the publisher are to be returned.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>returns org.uddi.api_v3.RegisteredInfo Upon successful
 completion, a registeredInfo structure MUST be returned, listing
 abbreviated business information in one or more businessInfo elements,
 and tModel information in one or more tModelInfo elements. This API is
 useful for determining the full extent of registered business and tModel
 information owned by a single publisher in a single call. This structure
 complements the get_publisherAssertions API call, which returns
 information about assertions owned by an individual publisher.
 businessInfos and/or tModelInfos will be sorted case-sensitively on the
 primary name in ascending order, using the collation sequence determined
 by node policy.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>DispositionReportFaultMessage,</code> - RemoteException</dd>
<dd><code><a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></code></dd>
</dl>
</li>
</ul>
<a name="saveBinding-org.uddi.api_v3.SaveBinding-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>saveBinding</h4>
<pre><a href="../../../org/uddi/api_v3/BindingDetail.html" title="class in org.uddi.api_v3">BindingDetail</a>&nbsp;saveBinding(<a href="../../../org/uddi/api_v3/SaveBinding.html" title="class in org.uddi.api_v3">SaveBinding</a>&nbsp;body)
                   throws <a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a>,
                          <a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></pre>
<div class="block">The save_binding API call is used to save or update a complete
 bindingTemplate element. It can be used to add or update one or more
 bindingTemplate elements as well as the container/contained relationship
 that each bindingTemplate has with one or more existing businessService
 elements. Each bindingTemplate MAY be signed and MAY have
 publisher-assigned keys.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>body</code> - <p class="MsoBodyText"
 style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>authInfo</i></b>: This optional argument is an
 element that contains an authentication token.&nbsp; Authentication
 tokens are obtained using the get_authToken API call or through some
 other means external to this specification. Registries that serve
 multiple publishers and registries that restrict who can publish in them
 typically require authInfo for this call.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>bindingTemplate</i></b>: Required repeating element
 containing one or more complete bindingTemplate structures. To save a new
 bindingTemplate, a bindingTemplate element is passed with either an empty
 bindingKey attribute value, or with a publisher-assigned bindingKey. See
 Section <a href="#_Ref8978954 ">5.2.2.2</a> <i>Behavior of
 Publishers</i>. </p> <p class="MsoBodyText"><span lang="EN-AU">Each new
 bindingTemplate passed MUST contain a serviceKey value that corresponds
 to a registered businessService controlled by the same publisher. An
 existing binding template MAY contain a serviceKey value that corresponds
 to a registered businessService controlled by the same
 publisher</span>.&nbsp; The net effect of this call is to determine the
 containing parent businessService for each bindingTemplate affected by
 this call. If the same bindingTemplate (determined by matching bindingKey
 value) is listed more than once, any relationship to the containing
 businessService is determined by processing order, which is determined by
 the position of the bindingTemplate data in first to last order.</p>

 <p class="MsoBodyText">If the bindingKey within a bindingTemplate element
 is missing or is passed with an empty value, this is a signal that the
 bindingTemplate is being inserted for the first time.&nbsp; When this
 occurs, the node MUST automatically generate a new key for the
 bindingTemplate that is without an associated key. New bindingTemplate
 structures can also be added with publisher-assigned keys. See Section <a
 href="#_Ref8978954 ">5.2.2.2</a> <i>Behavior of Publishers</i>.</p>

 <p class="MsoBodyText">Using this API call it is possible to move an
 existing bindingTemplate from one businessService to another by simply
 specifying a different parent businessService relationship along with the
 complete bindingTemplate.&nbsp; Changing a parent relationship in this
 way causes two businessService structures to be affected.&nbsp; The net
 result of such a move is that the bindingTemplate still resides within
 one, and only one businessService based on the value of the serviceKey
 passed. An attempt to move a bindingTemplate in this manner by a party
 who is not the publisher of the businessService that is specified by the
 serviceKey MUST be rejected with an error E_userMismatch.</p>

 <p class="MsoBodyText">When a bindingTemplate is saved with a categoryBag
 content that is associated with a checked value set or category group
 system tModel, the references MUST be checked for validity prior to
 completion of the save, or the node must return E_unsupported, indicating
 it does not support the referenced checked value set or category group
 system.&nbsp; See Section <a href="#_Ref8978999 ">5.2.3</a> <i>Special
 considerations for validated value sets</i> and Appendix F <i>Using
 Categorization</i> for additional details.</p></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>returns org.uddi.api_v3.BindingDetail This API returns a
 bindingDetail structure containing the results of the call that reflects
 the newly registered information for the effected bindingTemplate
 elements. If more than one bindingTemplate is saved in a single
 save_binding call, the resulting bindingDetail MUST return results in the
 same order that they appeared in the save_binding call. If the same
 bindingTemplate (determined by matching bindingKey) is listed more than
 once in the save_binding call, it MAY be listed once in the result for
 each appearance in the save_binding call. If the same bindingTemplate
 appears more than once in the response, the last occurrence of the
 bindingTemplate in the results represents the state stored in the
 registry. Any bindingKeys that were assigned as a result of processing
 the save_binding call are included in the bindingTemplate data.

 The bindingDetail structure has the form: <img
 src="http://uddi.org/pubs/uddi-v3.0.2-20041019_files/image075.gif"></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>DispositionReportFaultMessage,</code> - RemoteException <p
 class="MsoBodyText">If an error occurs in processing this API call, a
 dispositionReport element MUST be returned to the caller in a SOAP
 Fault.&nbsp; See Section <a href="#_Ref8978558 ">4.8</a> <i>Success and
 Error Reporting.&nbsp; </i>In addition to the errors common to all APIs,
 the following error information is relevant here:</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_accountLimitExceeded</b>: Signifies that user account
 limits have been exceeded. </p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_invalidKeyPassed</b>: Signifies that the request
 cannot be satisfied because one or more <i>uddiKey</i> values specified
 are not valid key values for the entities being published. tModelKey,
 serviceKey, or bindingKey values that either do not exist, or exist with
 a different entity type, or are not authorized to be proposed by the
 publisher are considered to be invalid values. The key causing the error
 SHOULD be clearly indicated in the error text. This error code will also
 be returned in the event that the serviceKey is not provided and the
 bindingKey is either absent or has a value not registered in the
 registry. In this case, the error text SHOULD clearly indicate the use of
 an incomplete bindingTemplate.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_invalidValue</b>: A value that was passed in a
 keyValue attribute did not pass validation.&nbsp; This applies to checked
 value sets that are referenced using keyedReferences. The error text
 SHOULD clearly indicate the key and value combination that failed
 validation.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><span
 style="layout-grid-mode:line">E_keyUnavailable</span></b><span
 style="layout-grid-mode:line">: Indicates that the proposed key has
 already been assigned to some other publisher or is not within the
 partition defined by a key generator tModel that the publisher
 owns.</span></p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_requestTimeout</b>: Signifies that the request could
 not be carried out because a needed validate_values service did not
 respond in a reasonable amount of time. Details identifying the failing
 Web service SHOULD be included in the dispositionReport element.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_userMismatch</b>: Signifies that one or more of the
 <i>uddiKey </i>values passed refers to data that is not owned by the
 individual publisher who is represented by the authentication token.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_valueNotAllowed</b>: Restrictions have been placed by
 the value set provider on the types of information that should be
 included at that location within a specific value set. A validate_values
 Web service chosen by the UDDI node has rejected this businessEntity for
 at least one specified keyedReference.&nbsp; The error text SHOULD
 clearly indicate the keyedReference that was not successfully
 validated.</p>

 <span
 style="font-size:10.0pt;font-family:Arial;letter-spacing:-.25pt"></span></dd>
<dd><code><a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></code></dd>
</dl>
</li>
</ul>
<a name="saveBusiness-org.uddi.api_v3.SaveBusiness-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>saveBusiness</h4>
<pre><a href="../../../org/uddi/api_v3/BusinessDetail.html" title="class in org.uddi.api_v3">BusinessDetail</a>&nbsp;saveBusiness(<a href="../../../org/uddi/api_v3/SaveBusiness.html" title="class in org.uddi.api_v3">SaveBusiness</a>&nbsp;body)
                     throws <a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a>,
                            <a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></pre>
<div class="block"><p class="MsoBodyText">The save_business API call is used to save or
 update information about a complete businessEntity structure.&nbsp; This
 API has the broadest scope of all of the save_xx API calls, and can be
 used to make sweeping changes to the published information for one or
 more businessEntity elements controlled by an individual.</p>

 <p class="MsoBodyText">This API call can be used to establish a reference
 relationship to businessService structures that are managed as the
 contents of another businessEntity.&nbsp; In this way, a businessService
 that is a natural part of one businessEntity can appear as a <i>projected
 service</i> of another businessEntity.&nbsp; The content of a
 businessService projected in this way (by way of a reference established
 by this API) are not managed as a part of the referencing entity.</p>

 <p class="MsoBodyText">businessEntity structures MAY be signed and MAY
 have publisher-assigned keys.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>body</code> - <p class="MsoBodyText"
 style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>authInfo</i></b>: This optional argument is an
 element that contains an authentication token.&nbsp; Authentication
 tokens are obtained using the get_authToken API call or through some
 other means external to this specification. Registries that serve
 multiple publishers and registries that restrict who can publish in them
 typically require authInfo for this call.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>businessEntity</i></b>:&nbsp; Required repeating
 element containing one or more businessEntity structures.&nbsp; These can
 be obtained in advance by using the get_businessDetail API call or by any
 other means.</p> <p class="MsoBodyText">If any of the <i>uddiKey</i>
 values within a businessEntity element (e.g. any data with a key value
 regulated by a businessKey, serviceKey or bindingKey) is missing or is
 passed with an empty value, this is a signal that the data that is so
 keyed is being inserted for the first time.<a href="#_ftn24"
 name="_ftnref24" title=""><span class="MsoFootnoteReference"><span
 class="MsoFootnoteReference"><span
 style="font-size:10.0pt;letter-spacing:-.25pt">[24]</span></span></span></a>&nbsp;
 When this occurs, the node MUST automatically generate a new key for the
 data passed that is without an associated key. New entities can also be
 added with publisher-assigned keys. See Section <a href="#_Ref8978954
 ">5.2.2.2</a> <i>Behavior of Publishers</i>.</p>

 <p class="MsoBodyText">To make this API call perform an update to
 existing registered data, the keyed entities (businessEntity,
 businessService or bindingTemplate) MUST have <i>uddiKey</i> values that
 correspond to the registered data to be updated.</p>

 <p class="MsoBodyText">Data can be deleted with this API call when
 registered information is different from the new information provided.
 Any businessService and bindingTemplate structures found in the custodial
 UDDI node, but missing from the businessEntity information provided in
 this call, are deleted from the registry by this call.</p>

 <p class="MsoBodyText">Data contained within businessEntity structures
 can be rearranged with this API call. This can be done by redefining
 parent container relationships for other registered information.&nbsp;
 For instance, if a new businessEntity is saved with information about a
 businessService that is registered already as part of a different
 businessEntity, this results in the businessService being moved from its
 current container to the new businessEntity.&nbsp;&nbsp; This condition
 occurs when the businessKey of the businessService being saved matches
 the businessKey of the businessEntity being saved. An attempt to delete
 or move a businessService in this manner by a party who is not the
 publisher of the businessService MUST be rejected with an error
 E_userMismatch.</p>

 <p class="MsoBodyText">If the businessEntity being saved contains a
 businessService that has a businessKey referring to some businessEntity
 other than the businessEntity being saved, the UDDI registry notes a
 reference, called a "service projection", to the existing
 businessService. Subsequent calls to the get_businessDetail API, passing
 either the businessKey of the businessEntity that contains the referenced
 businessService or the businessKey of the businessEntity that contains
 the service projection will result in an identical businessService
 element being included&nbsp;as part of the&nbsp;result set. </p>

 <p class="MsoBodyText">A businessEntity must not contain a
 businessService and a service projection to this businessService. As a
 result, a businessService cannot be moved to a businessEntity that
 already has a service projection to that businessService. Regardless of
 the order of operation, a businessService and a service projection can
 never appear under the same businessEntity. Implementations are required
 to reject and return an E_fatalError during such a save_business
 operation.</p>

 <p class="MsoBodyText">No changes to the referenced businessService are
 effected by the act of establishing a service projection.&nbsp;&nbsp;
 Existing service projections associated with the businessEntity being
 saved that are not contained in the call to save_business are deleted
 automatically.&nbsp; This reference deletion does not cause any changes
 to the referenced businessService. If the referenced businessService is
 deleted by any means, all references to it associated with other
 businessEntity structures are left untouched. Such "broken" service
 projections appear in their businessEntity as businessService elements
 containing the businessKey and serviceKey attributes as their only
 content. If the businessService is moved to another business, all
 projections will be updated to reflect the new businessKey<a
 href="#_ftn25" name="_ftnref25" title=""><span
 class="MsoFootnoteReference"><span class="MsoFootnoteReference"><span
 style="font-size:10.0pt;letter-spacing:-.25pt">[25]</span></span></span></a>.
 For this reason, it is good practice to coordinate references to
 businessService data published under another businessEntity with the
 party who manages that data</p>

 <p class="MsoBodyText">When saving a businessEntity containing a service
 projection, all of the content of the businessService provided in the
 save_business, with the exception of the serviceKey and businessKey, is
 ignored.&nbsp; The businessKey and serviceKey of the businessService
 being referenced are used to determine if the businessService is for a
 service projection or not.&nbsp; If the businessService identified by the
 serviceKey is not part of the businessEntity identified by the
 businessKey, the error E_invalidProjection will be returned.</p>

 <p class="MsoBodyText">When a businessEntity is saved with identifierBag
 or categoryBag contents that is associated with a checked value set or
 category group system tModel, the references MUST be checked for validity
 prior to completion of the save or the node must return E_unsupported,
 indicating it does not support the referenced checked value set or
 category group system.&nbsp; See Section <a href="#_Ref8978999
 ">5.2.3</a> <i>Special considerations for validated value sets,</i>
 Appendix E <i>Using Identifiers</i> and Appendix F <i>Using
 Categorization</i> for additional details.</p></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>returns org.uddi.api_v3.BusinessDetail <p
 class="MsoBodyText">This API returns a businessDetail structure
 containing the final results of the call that reflects the new registered
 information for the businessEntity information provided. Any businessKey,
 serviceKey, or bindingKey attributes that were assigned as a result of
 processing the save_business are included in the returned data. For
 businessService elements that are service projections, the response
 includes either the businessService elements as provided by the publisher
 or the full contents of the real businessService elements. These results
 include any businessService elements that are contained by reference. If
 the same entity (businessEntity, businessService, or bindingTemplate),
 determined by matching key, is listed more than once in the save_business
 call, it MAY be listed once in the result for each appearance in the
 call. If the same entity appears more than once in the response, the last
 appearance occurrence of the entity in the results represents either the
 final saved state stored in the registry or the last occurrence of the
 entity provided by the publisher within the request.</p>

 <p class="MsoBodyText">The businessDetail has the form:</p> <img
 src="http://uddi.org/pubs/uddi-v3.0.2-20041019_files/image077.gif"></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>DispositionReportFaultMessage,</code> - RemoteException <p
 class="MsoBodyText">If an error occurs in processing this API call, a
 dispositionReport element MUST be returned to the caller in a SOAP
 Fault.&nbsp; See Section <a href="#_Ref8979130 ">4.8</a> <i>Success and
 Error Reporting.&nbsp; </i>In addition to the errors common to all APIs,
 the following error information is relevant here:</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_accountLimitExceeded</b>: Signifies that user account
 limits have been exceeded.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_invalidKeyPassed</b>: Signifies that the request
 cannot be satisfied because one or more <i>uddiKey</i> values specified
 are not valid key values for the entities being published. tModelKey,
 businessKey, serviceKey, or bindingKey values that either do not exist,
 or exist with a different entity type, or are not authorized to be
 proposed by the publisher are considered to be invalid values. The key
 causing the error SHOULD be clearly indicated in the error text.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_invalidProjection</b>: Signifies that an attempt was
 made to save a businessEntity containing a service projection where the
 businessService being projected is not a part of the businessEntity that
 is identified by the businessKey in the businessService. The serviceKey
 of at least one such businessService SHOULD be included in the
 dispositionReport.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_userMismatch</b>: Signifies that one or more of the
 <i>uddiKey </i>values passed refers to data that is not owned by the
 individual publisher who is represented by the authentication
 token.&nbsp; The key causing the error SHOULD be clearly indicated in the
 error text.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_invalidValue</b>: A value that was passed in a
 keyValue attribute did not pass validation.&nbsp; This applies to checked
 value sets that are referenced using keyedReferences. The error text
 SHOULD clearly indicate the key and value combination that failed
 validation.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><span
 style="layout-grid-mode:line">E_keyUnavailable</span></b><span
 style="layout-grid-mode:line">: Indicates that the proposed key has
 already been assigned to some other publisher or is not within the
 partition defined by a key generator tModel that the publisher
 owns.</span></p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_requestTimeout</b>: Signifies that the request could
 not be carried out because a needed validate_values service did not
 respond in a reasonable amount of time. Details identifying the failing
 Web service SHOULD be included in the dispositionReport element.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><span
 style="layout-grid-mode:line">E_unsupported</span></b><span
 style="layout-grid-mode:line">: A keyedReference in a categoryBag or an
 identifierBag that references a checked value set cannot be validated by
 the UDDI node because the node does not support the referenced checked
 value set.&nbsp; The error text should clearly indicate the
 keyedReference that cannot be validated.</span></p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><span
 style="layout-grid-mode:line">E_unvalidatable</span></b><span
 style="layout-grid-mode:line">: A keyedReference in a categoryBag or an
 identifierBag that references a checked value set cannot be validated by
 the UDDI node because the referenced tModel has been marked
 unvalidatable.&nbsp; The error text should clearly indicate the
 keyedReference that cannot be validated.</span></p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_valueNotAllowed</b>: Restrictions have been placed by
 the value set provider on the types of information that should be
 included at that location within a specific value set. A validate_values
 Web service chosen by the UDDI node has rejected this businessEntity for
 at least one specified keyedReference.&nbsp; The error text SHOULD
 clearly indicate the keyedReference that was not successfully
 validated.</p>

 <span
 style="font-size:10.0pt;font-family:Arial;letter-spacing:-.25pt"></span></dd>
<dd><code><a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></code></dd>
</dl>
</li>
</ul>
<a name="saveService-org.uddi.api_v3.SaveService-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>saveService</h4>
<pre><a href="../../../org/uddi/api_v3/ServiceDetail.html" title="class in org.uddi.api_v3">ServiceDetail</a>&nbsp;saveService(<a href="../../../org/uddi/api_v3/SaveService.html" title="class in org.uddi.api_v3">SaveService</a>&nbsp;body)
                   throws <a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a>,
                          <a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></pre>
<div class="block">The save_service API call adds or updates one or more businessService
 elements. Each businessService MAY be signed and MAY have
 publisher-assigned keys.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>body</code> - <p class="MsoBodyText"
 style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>authInfo</i></b>: This optional argument is an
 element that contains an authentication token.&nbsp; Authentication
 tokens are obtained using the get_authToken API call or through some
 other means external to this specification. Registries that serve
 multiple publishers and registries that restrict who can publish in them
 typically require authInfo for this call.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>businessService</i></b>:&nbsp; Required repeating
 element containing one or more complete businessService elements.&nbsp;
 For the purpose of performing round trip updates, this data can be
 obtained in advance by using the get_serviceDetail API call or by any
 other means.</p>
     
 <p class="MsoBodyText"><span lang="EN-AU">Each new businessService passed
 MUST contain a businessKey value that corresponds to a registered
 businessEntity controlled by the same publisher. An existing business
 service MAY contain a businessKey value that corresponds to a registered
 businessEntity controlled by the same publisher</span>.</p>

 <p class="MsoBodyText">If any of the <i>uddiKey</i> values within a
 businessService element (i.e., any data with a key value regulated by a
 serviceKey or bindingKey) is passed with an empty value, this is a signal
 that the data that is so keyed is being inserted for the first time.<span
 class="MsoFootnoteReference"> <a href="#_ftn26" name="_ftnref26"
 title=""><span class="MsoFootnoteReference"><span
 style="font-size:10.0pt;letter-spacing:-.25pt">[26]</span></span></a></span>
 In this case, a new key value MUST be automatically generated for the
 data which was passed without an associated key value. New entities can
 also be added with publisher-assigned keys. See Section <a
 href="#_Ref8978954 ">5.2.2.2</a> <i>Behavior of Publishers</i>.</p>

 <p class="MsoBodyText">If the same businessService is contained in more
 than one businessService argument, the final relationship to the
 containing businessEntity is determined by processing order – which is
 determined by first to last order of the information passed in the
 request. Analogously, if the same bindingTemplate is specified in the
 call as being in more than one businessService, the businessService that
 is its container at the conclusion of the call is last one listed.</p>

 <p class="MsoBodyText">Using this API call it is possible to move an
 existing bindingTemplate element from one businessService element to
 another, or move an existing businessService element from one
 businessEntity to another by simply specifying a different parent
 businessEntity relationship.&nbsp; Changing a parent relationship in this
 way causes two businessEntity or two businessService structures to be
 changed. An attempt to move a bindingTemplate or a businessService in
 this manner by a party who is not the publisher of the businessService
 that is specified by the serviceKey or the businessEntity that is
 specified by the businessKey MUST be rejected with an error
 E_userMismatch.</p>

 <p class="MsoBodyText">When a businessService is saved with categoryBag
 contents that is associated with a checked value set or category group
 system tModel, the references MUST be checked for validity prior to
 completion of the save or the node MUST return E_unsupported, indicating
 it does not support the referenced checked value set or category group
 system.&nbsp; See Section <a href="#_Ref8978999 ">5.2.3</a> <i>Special
 considerations for validated value sets</i> and Appendix F <i>Using
 Categorization</i> for additional details.</p></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>returns org.uddi.api_v3.ServiceDetail <p class="MsoBodyText">This
 API call returns a serviceDetail containing the final results of the call
 that reflects the newly registered information for the affected
 businessService elements.&nbsp; In cases where multiple businessService
 elements are passed in the request, the result contains the final results
 for each businessService passed and these appear in the same order as
 found in the request. Any serviceKey and bindingKey values that were
 assigned as a result of processing the save_service API are included in
 the businessService data.</p>

 <p class="MsoBodyText">If the same entity (businessService, or
 bindingTemplate), determined by matching key, is listed more than once in
 the save_service API, it MAY be listed once in the result for each
 appearance in the save_service API. If the same entity appears more than
 once in the response, the last occurrence of the entity in the results
 represents the state stored in the registry. </p>

 <p class="MsoBodyText">The serviceDetail has the form: </p> <img
 src="http://uddi.org/pubs/uddi-v3.0.2-20041019_files/image079.gif"></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>DispositionReportFaultMessage,</code> - RemoteException <p
 class="MsoBodyText">If an error occurs in processing this API call, a
 dispositionReport element MUST be returned to the caller within a SOAP
 Fault.&nbsp; See Section <a href="#_Ref8979130 ">4.8</a> <i>Success and
 Error Reporting.&nbsp; </i>In addition to the errors common to all APIs,
 the following error information is relevant here:</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_accountLimitExceeded</b>: Signifies that user account
 limits have been exceeded.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_invalidKeyPassed</b>: Signifies that the request
 cannot be satisfied because one or more <i>uddiKey</i> values specified
 are not valid key values for the entities being published. tModelKey,
 businessKey, serviceKey, or bindingKey values that either do not exist,
 or exist with a different entity type, or are not authorized to be
 proposed by the publisher are considered to be invalid values. The key
 causing the error SHOULD be clearly indicated in the error text. This
 error code will also be returned in the event that the businessKey is not
 provided and the serviceKey is either absent or has a value not
 registered in the registry.&nbsp; In this case, the error text SHOULD
 clearly indicate the use of an incomplete businessService.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_invalidValue</b>: A value that was passed in a
 keyValue attribute did not pass validation.&nbsp; This applies to checked
 value sets referenced using keyedReferences. The error text SHOULD
 clearly indicate the key and value combination that failed
 validation.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><span
 style="layout-grid-mode:line">E_keyUnavailable</span></b><span
 style="layout-grid-mode:line">: Indicates that the proposed key has
 already been assigned to some other publisher or is not within the
 partition defined by a key generator tModel that the publisher
 owns.</span></p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_requestTimeout</b>: Signifies that the request could
 not be carried out because a needed validate_values service did not
 respond in a reasonable amount of time. Details identifying the failing
 Web service SHOULD be included in the dispositionReport element.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_userMismatch</b>: Signifies that one or more of the
 <i>uddiKey </i>values passed refers to data that is not owned by the
 individual publisher who is represented by the authentication token.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><span
 style="layout-grid-mode:line">E_unsupported</span></b><span
 style="layout-grid-mode:line">: A keyedReference in a categoryBag that
 references a checked value set cannot be validated by the UDDI node
 because the node does not support the referenced checked value set.&nbsp;
 The error text SHOULD clearly indicate the keyedReference that cannot be
 validated.</span></p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><span
 style="layout-grid-mode:line">E_unvalidatable</span></b><span
 style="layout-grid-mode:line">: A keyedReference in a categoryBag that
 references a checked value set cannot be validated by the UDDI node
 because the referenced tModel has been marked unvalidatable.&nbsp; The
 error text SHOULD clearly indicate the keyedReference that cannot be
 validated.</span></p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_valueNotAllowed</b>: The value set validation routine
 chosen by the UDDI node has rejected the businessService data
 provided.&nbsp; The error text SHOULD clearly indicate the keyedReference
 that was not successfully validated.</p>

 <span
 style="font-size:10.0pt;font-family:Arial;letter-spacing:-.25pt"></span></dd>
<dd><code><a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></code></dd>
</dl>
</li>
</ul>
<a name="saveTModel-org.uddi.api_v3.SaveTModel-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>saveTModel</h4>
<pre><a href="../../../org/uddi/api_v3/TModelDetail.html" title="class in org.uddi.api_v3">TModelDetail</a>&nbsp;saveTModel(<a href="../../../org/uddi/api_v3/SaveTModel.html" title="class in org.uddi.api_v3">SaveTModel</a>&nbsp;body)
                 throws <a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a>,
                        <a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></pre>
<div class="block">The save_tModel API call adds or updates one or more registered tModel
 elements. tModels MAY be signed and tModels MAY be saved with
 publisher-assigned keys, including those tModels that establish the
 domain partition of publisher-assigned keys, known as domain key
 generator tModels.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>body</code> - <p class="MsoBodyText"
 style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>authInfo</i></b>: This optional argument is an
 element that contains an authentication token.&nbsp; Authentication
 tokens are obtained using the get_authToken API call or through some
 other means external to this specification. Registries that serve
 multiple publishers and registries that restrict who can publish in them
 typically require authInfo for this call.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b><i>tModel</i></b>:&nbsp; Required repeating element
 containing one or more required repeating complete tModel elements.&nbsp;
 For the purpose of performing round-trip updates, this data can be
 obtained in advance by using the get_tModel API call or by other
 means.</p> <p class="MsoBodyText">If the <i>uddiKey</i> value within a
 tModel (i.e., tModelKey) is missing or is passed with an empty value,
 this is a signal that a new tModel is being inserted and that the UDDI
 registry MUST assign a new tModelKey identifier to this data.&nbsp; If
 the new tModel is categorized with the <i>keyGenerator</i> value from the
 uddi:uddi.org:categorization:types category system, any publisher
 assigned key MUST end with the string "<i>:keygenerator" , </i>making the
 tModel a key generator tModel.&nbsp; If the new tModel is categorized
 with the <i>keyGenerator</i> value from the
 uddi:uddi.org:categorization:types category, an empty uddiKey signifies
 that the tModelKey generated by the node will end with the string
 "<i>:keygenerator"</i>, making the tModel a key generator tModel.
 &nbsp;New tModels can also be added with publisher-assigned keys. See
 Section <a href="#_Ref8978954 ">5.2.2.2</a> <i>Behavior of Publishers</i>
 and Section <a href="#_Ref535395714 ">5.2.18.3.1</a> <i>Domain Key
 Generator tModels</i>.&nbsp; </p>

 <p class="MsoBodyText">This API call performs an update to existing
 registered data when the tModelKey values have <i>uddiKey</i> values that
 correspond to already registered data.</p>

 <p class="MsoBodyText">If a tModelKey value is passed that corresponds to
 a tModel that was previously hidden via the delete_tModel API call, the
 save_tModel service restores the tModel to full visibility, making it
 available for return in find_tModel results. </p>

 <p class="MsoBodyText">The value of the deleted attribute in the tModel
 is set to false in all saves.</p>

 <p class="MsoBodyText">Multiple representations of the overview document
 MAY be registered for a tModel allowing, for example, both technical and
 human readable representations of the technical overview to be provided.
 </p>

 <p class="MsoBodyText">When a tModel is saved with keyedReferences, all
 tModelKeys used in keyedReferences must refer to tModels that existed
 prior to processing the tModel containing the references. A save_tModel
 API call may contain a sequence of tModels, in which case a
 keyedReference in a tModel may refer to tModelKeys created earlier but
 not later in the sequence. A tModel being created must not refer to
 itself. Self-referencing tModels can be created by using two subsequent
 save_tModel API calls, the first one without the reference, and the
 second one with the reference (to the already saved tModel). If these
 conditions are not met, the node MUST return E_invalidKeyPassed.</p>

 <p class="MsoBodyText">When a tModel is saved with identifierBag or
 categoryBag contents that is associated with a checked value set or
 category group system tModel, the references MUST be checked for validity
 prior to completion of the save, or the node MUST return E_unsupported,
 indicating it does not support the referenced checked value set or
 category group system.&nbsp; See Section <a href="#_Ref8978999
 ">5.2.3</a> <i>Special considerations for validated value sets,</i>
 Appendix E <i>Using Identifiers</i> and Appendix F <i>Using
 Categorization</i> for additional details. </p> <h5
 style="margin-left:0in;text-indent:0in"><a name="_Ref535395714">Domain
 key generator tModels</a></h5>

 <p class="MsoBodyText">For registries that use the recommended key
 syntax, a domain key generator tModel establishes a key partition from
 which <i>uddiKey</i>s can be derived and used in other entities
 controlled by the publisher, as described in Section <a
 href="#_Ref44771019 ">4.4.1</a> <a href="#_Ref44771019 ">Key
 Syntax</a>.&nbsp; Additional considerations are involved when publishing
 a domain key generator tModel for the first time.&nbsp; </p>

 <p class="MsoNormal" style="margin-left:1.0in;text-indent:-.25in">1.<span
 style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>The tModelKey
 MUST be in the form of a <span class="CharChar1"><i>domain_key</i></span>
 and MUST end with the term<span class="CharChar1">:</span><span
 class="CharChar1"> <i>keyGenerator</i></span>. </p>

 <p class="MsoNormal" style="margin-left:1.0in;text-indent:-.25in">2.<span
 style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>The tModelKey
 MUST be categorized with the <i>keyGenerator</i> value from the
 uddi:uddi.org:categorization:types category system.</p>

 <p class="MsoNormal" style="margin-left:1.0in;text-indent:-.25in">3.<span
 style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Registry policy
 for establishing key domains MAY require the tModel to be signed.</p>

 <p class="MsoBodyText">Also, publishers of key generator tModels MAY use
 the overviewDoc to describe how the key space is defined.</p>

 <p class="MsoBodyText">The save_tModel API call does a first pass check
 of the tModel to check its suitability and, if it is acceptable according
 to the policy of the registry for saving domain key generator tModels,
 returns the tModelDetail for the registry. If it is not acceptable the
 reason is clearly indicated in the returned dispositionReport and no
 further processing takes place.</p>

 <p class="MsoBodyText">If the registry has multiple nodes, returning the
 tModelDetail is not an indication that the domain key generator tModel
 has been published successfully. A registry that allows publisher
 assigned keys MUST have a policy to ensure domainKey collisions do not
 occur.&nbsp; The custodial node MUST ensure that the domain key generator
 tModel is not in the process of being published simultaneously on some
 other node. If, after the conclusion of a full replication cycle, no UDDI
 node has already assigned or attempted to assign the partition (e.g., no
 change record has been received from other nodes), the custodial node
 completes the publish operation of the domain key generator tModel,
 assigning it to the publisher. If some other node has already been
 assigned the partition, the tModel is not published.&nbsp; See Section
 7.3.9 changeRecordNewDataConditional for more information on the
 replication structure, and Section 9.4.2 General Keying Policy and
 Section 9.4.3 Policy Abstractions for the UDDI keying scheme for the
 recommended policy that addresses acceptance of a domain key
 generator.</p>

 <p class="MsoBodyText">When the publishing of a domain key generator
 tModel has completed, the custodial node MAY notify the publisher that
 the tModel is ready for use. Whether a node does this and the means by
 which it does so is a node policy. A typical node policy is to notify the
 publisher by e-mail using an e-mail address gathered at the time the
 publisher account was set up.</p>

 <p class="MsoBodyText">Before the publish operation is complete, the
 domain key generator tModel will be ignored by find_xx and get_xx API
 calls, and will return an E_keyUnavailable error to further save_tModel
 calls.</p>

 <p class="MsoBodyText">If after the replication cycle the publisher is in
 doubt about the outcome, get_tModelDetail may be issued specifying the
 key of the domain key generator tModel being published. If a tModel is
 retrieved and the publisher is the owner, the operation succeeded. If a
 tModel is retrieved and some other publisher is the owner, the operation
 failed because another publisher published a domain key generator with
 the chosen <i><span style="layout-grid-mode:line">domain_key</span></i>
 first. If no tModel is retrieved, then either the registry experienced a
 failure, or two publishers tried to publish tModels with the same key
 "simultaneously", and neither succeeded. In either of these cases, the
 save_tModel operation may be retried.</p>

 <p class="MsoBodyText">Attempts to remove the following categorization
 from a successfully published key generator tModel will fail with
 E_fatalError, since it is this very categorization that distinguishes key
 generator tModels from other tModels:</p>

 <p class="codeSample">&lt;tModelKey="uddi:uddi.org:categorization:types"
 keyValue="keyGenerator" /&gt;</p></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>returns org.uddi.api_v3.TModelDetail <p class="MsoBodyText">In
 most cases this API returns a tModelDetail containing the final results
 of the call that reflects the new or pending registered information for
 the affected tModel structures. Any tModelKey attributes that were
 assigned as a result of processing the save_tModel API are included in
 the tModel data.&nbsp; When a domain key generator is saved for the first
 time, the tModel that is returned in the tModelDetail represents an
 interim state, until all nodes in the registry have ascertained that the
 requested key domain does in fact belong to the publisher<a
 href="#_ftn27" name="_ftnref27" title=""><span
 class="MsoFootnoteReference"><span class="MsoFootnoteReference"><span
 style="font-size:10.0pt;letter-spacing:-.25pt">[27]</span></span></span></a>.&nbsp;
 See Section <a href="#_Ref8979261 ">7.3.9</a>
 <i>changeRecordNewDataConditional</i> for more information.&nbsp; If
 multiple tModel elements are passed in the save_tModel request, the order
 of the response MUST exactly match the order that the elements appeared
 in the save. If the same tModel, determined by matching key, is listed
 more than once in the save_tModel API, it MAY be listed only once in the
 result for each appearance in the save_tModel API. If the same tModel
 appears more than once in the response, the last occurrence of the tModel
 in the results represents the state stored in the registry.</p>

 <p class="MsoBodyText">The tModelDetail has the form: </p> <img
 src="http://uddi.org/pubs/uddi-v3.0.2-20041019_files/image081.gif"></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>DispositionReportFaultMessage,</code> - RemoteException <p
 class="MsoBodyText">If an error occurs in processing this API call, a
 dispositionReport element MUST be returned to the caller in a SOAP
 Fault.&nbsp; See Section <a href="#_Ref8979130 ">4.8</a> <i>Success and
 Error Reporting.&nbsp; </i>In addition to the errors common to all APIs,
 the following error information is relevant here:</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_accountLimitExceeded</b>: Signifies that user account
 limits have been exceeded.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_invalidKeyPassed</b>: Signifies that the request
 cannot be satisfied because one or more <i>uddiKey</i> values specified
 are not valid key values for the entities being published. tModelKey
 values that either do not exist, or exist with a different entity type,
 or are not authorized to be proposed by the publisher are considered to
 be invalid values. The key causing the error SHOULD be clearly indicated
 in the error text.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_invalidValue</b>: A value that was passed in a
 keyValue attribute did not pass validation.&nbsp; This applies to checked
 value sets referenced using keyedReferences. The error text SHOULD
 clearly indicate the key and value combination that failed
 validation.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_keyUnavailable</b>: Indicates that the proposed key
 has already been assigned to some other publisher, is not within the
 partition defined by a key generator tModel that the publisher owns, or,
 in the case of a domain key generator tModel being saved for the first
 time, is assigned to some other publisher or is still pending its first
 save.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_requestTimeout</b>: Signifies that the request could
 not be carried out because a needed validate_values Web service did not
 respond in a reasonable amount of time. Details identifying the failing
 Web service SHOULD be included in the dispositionReport element.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_unacceptableSignature</b>: Indicates that the digital
 signature in the tModel is missing or does not meet the requirements of
 the registry. The errInfo element provides additional details.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_userMismatch</b>: Signifies that one or more of the
 uddiKey values passed refers to data that is not owned by the individual
 publisher who is represented by the authentication token.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_unsupported</b>: A keyedReference in a categoryBag or
 an identifierBag that references a checked value set cannot be validated
 by the UDDI node because the node does not support the referenced checked
 value set.&nbsp; The error text SHOULD clearly indicate the
 keyedReference that cannot be validated.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_unvalidatable</b>: A keyedReference in a categoryBag
 or an identifierBag that references a checked value set cannot be
 validated by the UDDI node because the referenced tModel has been marked
 unvalidatable.&nbsp; The error text SHOULD clearly indicate the
 keyedReference that cannot be validated.</p>

 <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
 style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
 Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span></span><b>E_valueNotAllowed</b>: Restrictions have been placed by
 the value set provider on the types of information that should be
 included at that location within a specific value set.&nbsp; The
 validation routine chosen by the UDDI node has rejected this tModel for
 at least one specified keyedReference.&nbsp; The error text SHOULD
 clearly indicate the keyedReference that was not successfully
 validated.</p>

 <span
 style="font-size:10.0pt;font-family:Arial;letter-spacing:-.25pt"></span></dd>
<dd><code><a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></code></dd>
</dl>
</li>
</ul>
<a name="setPublisherAssertions-java.lang.String-javax.xml.ws.Holder-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setPublisherAssertions</h4>
<pre><a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/RequestWrapper.html?is-external=true" title="class or interface in javax.xml.ws">@RequestWrapper</a>(<a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/RequestWrapper.html?is-external=true#localName--" title="class or interface in javax.xml.ws">localName</a>="set_publisherAssertions",
                <a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/RequestWrapper.html?is-external=true#targetNamespace--" title="class or interface in javax.xml.ws">targetNamespace</a>="urn:uddi-org:api_v3",
                <a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/RequestWrapper.html?is-external=true#className--" title="class or interface in javax.xml.ws">className</a>="org.uddi.api_v3.SetPublisherAssertions")
 <a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/ResponseWrapper.html?is-external=true" title="class or interface in javax.xml.ws">@ResponseWrapper</a>(<a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/ResponseWrapper.html?is-external=true#localName--" title="class or interface in javax.xml.ws">localName</a>="publisherAssertions",
                 <a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/ResponseWrapper.html?is-external=true#targetNamespace--" title="class or interface in javax.xml.ws">targetNamespace</a>="urn:uddi-org:api_v3",
                 <a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/ResponseWrapper.html?is-external=true#className--" title="class or interface in javax.xml.ws">className</a>="org.uddi.api_v3.PublisherAssertions")
void&nbsp;setPublisherAssertions(<a href="https://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;authInfo,
                                                                                                                                                                                                                                                                                                                                                                                               <a href="https://docs.oracle.com/javase/6/docs/api/javax/xml/ws/Holder.html?is-external=true" title="class or interface in javax.xml.ws">Holder</a>&lt;<a href="https://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../org/uddi/api_v3/PublisherAssertion.html" title="class in org.uddi.api_v3">PublisherAssertion</a>&gt;&gt;&nbsp;publisherAssertion)
                                                                                                                                                                                                                                                                                                                                                                                        throws <a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a>,
                                                                                                                                                                                                                                                                                                                                                                                               <a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></pre>
<div class="block">The set_publisherAssertions API call is used to manage all of the tracked
 relationship assertions associated with an individual publisher. See
 Appendix A Relationships and Publisher Assertions for more information.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>publisherAssertion</code> - <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><b><i>authInfo</i></b>: This optional argument is an element that
contains an authentication token.&nbsp; Authentication tokens are obtained using the
get_authToken API call or through some other means external to this
specification. Registries that serve multiple publishers and registries that
restrict who can publish in them typically require authInfo for this call.</p></dd>
<dd><code>authInfo</code> - <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><b><i>publisherAssertion</i></b>: Optional repeating element asserting
a relationship.&nbsp; Relationship assertions consist of a reference to two
businessEntity key values as designated by the fromKey and toKey elements, as
well as a REQUIRED expression of the directional relationship within the
contained keyedReference element.&nbsp; See Appendix A <i>Relationships and
Publisher Assertions</i>. The fromKey, the toKey, and all three parts of the
keyedReference – the tModelKey, the keyName, and the keyValue – MUST be
specified. E_fatalError is returned if any of these elements are missing in any
of the publisherAssertion elements.&nbsp; Empty (zero length) keyNames and keyValues
are permitted.</p>
 <p class="MsoBodyText">The full set of assertions associated with a publisher is
effectively replaced whenever this API is used.&nbsp; When this API call is processed, the publisher assertions that exist prior to this API call for a given
publisher are examined by the UDDI registry.&nbsp; Any new assertions not present
prior to the call are added to the assertions attributed to the publisher. Any
existing assertions not present in the call are deleted.&nbsp;&nbsp; As a result, new
relationships may be completed (e.g. determined to have a completed status),
and existing relationships may be dissolved.&nbsp; Invoking this API with no publisherAssertion elements deletes all assertions associated with the publisher.</p>

<p class="MsoBodyText">Any relationships attributed to assertions previously
present but not present in the data provided in this call are deactivated and
are no longer visible via the find_relatedBusinesses API.&nbsp; For the sake of
determining uniqueness within an assertion set, the fromKey, toKey, and the
entire keyedReference within the publisherAssertion element are significant.&nbsp;
Any differences in any of the individual publisherAssertion element contents
constitute a new unique assertion for purposes of detecting new assertions.&nbsp;
The direction of the relationship, as indicated by the two businessKey values
in the fromKey and toKey elements, is also relevant in determining assertion
uniqueness.</p>

<p class="MsoBodyText">The publisher must own the businessEntity referenced in the
fromKey, the toKey, or both.&nbsp; If both of the businessKey values passed within
an assertion are owned by the publisher, then the assertion is automatically
complete and the relationship described in the assertion is visible via the
find_relatedBusinesses API.&nbsp; To form a relationship when the publisher only owns
one of the two keys passed, the assertion MUST be matched exactly by an
assertion made by the publisher who owns the other business referenced.
Assertions exactly match if and only if they: </p>

<p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in">1.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>refer
to the same businessEntity in their fromKeys; </p>

<p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in">2.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>refer
to the same businessEntity in their toKeys; </p>

<p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in">3.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>refer
to the same tModel in their tModelKeys; </p>

<p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in">4.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>have
identical keyNames; and </p>

<p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in">5.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>have
identical keyValues.</p>

<p class="MsoBodyText">When a publisherAssertion that is being saved references a
checked relationship system using the tModelKey in the contained
keyedReference, the reference MUST be checked for validity prior to completion
of the save, or the node must return E_unsupported, indicating it does not
support the referenced checked relationship system.&nbsp; Validation of a
relationship system reference entails verification that the reference is valid
according to the validation algorithm defined for the relationship system and
described by its tModel.&nbsp; For cached checked relationship system, the
validation algorithm verifies that referenced keyedReferences are valid for the
relationship system.</p>

<p class="MsoBodyText">For registries supporting the subscription APIs at any
node, it is necessary to track a modified date for publisherAssertion elements
so that nodes have the necessary information for responding to subscription
requests involving find_relatedBusinesses and get_assertionStatusReport
filters.</p>
<Br>
 <p class="MsoBodyText">Upon successful completion, a publisherAssertions
structure is returned containing all of the relationship assertions currently
attributed to the publisher.&nbsp; When registries distinguish between publishers,
the structure contains assertion data that is associated with the authInfo
passed.</p>

<p class="MsoBodyText">See Section <a href="#_Ref534775361 ">5.2.13.3</a> <i>get_publisherAssertions</i>
for more information on the publisherAssertions structure and contents.</p>

<p class="MsoBodyText">This API returns all assertions made by the publisher who
was authenticated in the set_publisherAssertions API.</p></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>DispositionReportFaultMessage,</code> - RemoteException
 <p class="MsoBodyText">If an error occurs in processing this API call, a dispositionReport element MUST be returned to the caller in a SOAP Fault.&nbsp; See
Section <a href="#_Ref8979130 ">4.8</a> <i>Success and Error Reporting.&nbsp; </i>In
addition to the errors common to all APIs, the following error information is
relevant here:</p>

<p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><b>E_invalidKeyPassed</b>: Signifies that one of the <i>uddiKey</i>
values passed did not match with any known businessKey or tModelKey values.&nbsp;
The assertion element and the key that caused the problem SHOULD be clearly
indicated in the error text.</p>

<p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><b>E_userMismatch</b>: Signifies that neither of the businessKey
values passed in the embedded fromKey and toKey elements is controlled by the
publisher associated with the authentication token.&nbsp; The error text SHOULD
clearly indicate which assertion caused the error.</p>

<span style="font-size:10.0pt;font-family:Arial;letter-spacing:-.25pt"></span></dd>
<dd><code><a href="../../../org/uddi/v3_service/DispositionReportFaultMessage.html" title="class in org.uddi.v3_service">DispositionReportFaultMessage</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/UDDIPublicationPortType.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../org/uddi/v3_service/UDDIInquiryPortType.html" title="interface in org.uddi.v3_service"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../org/uddi/v3_service/UDDIReplicationPortType.html" title="interface in org.uddi.v3_service"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/uddi/v3_service/UDDIPublicationPortType.html" target="_top">Frames</a></li>
<li><a href="UDDIPublicationPortType.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2004&#x2013;2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
