﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-SIMONE-随笔分类-AXIS</title><link>http://www.blogjava.net/wangxinsh55/category/9194.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 12:40:22 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 12:40:22 GMT</pubDate><ttl>60</ttl><item><title>用 Apache Geronimo 和 Axis2 实现在线银行，第 1 部分: 服务：布设框架（3）</title><link>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90798.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Fri, 29 Dec 2006 11:45:00 GMT</pubDate><guid>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90798.html</guid><wfw:comment>http://www.blogjava.net/wangxinsh55/comments/90798.html</wfw:comment><comments>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90798.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangxinsh55/comments/commentRss/90798.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangxinsh55/services/trackbacks/90798.html</trackback:ping><description><![CDATA[
		<p>
				<span class="atitle">
						<font face="Arial" size="4">结束语</font>
				</span>
		</p>
		<p>您已从头至尾地完成了 WSDL，从原始的 SOAP 结构到 WSDL 绑定。还成功地使用 Axis2 的 WSDLJava 工具将其编译成了 Java 代码，并在 Geronimo 上进行了测试与部署。</p>
		<p>请继续阅读第 2 部分，开发 Axis2 生成的 Java 代码，创建一个功能齐全的在线银行 Web 服务。稍后在第 3 部分中，我们将创建一个基于 Web 的客户机，与 Axis2 Web 服务进行通信，请继续关注本系列教程。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr valign="top">
								<td width="100%">
										<p>
												<span class="atitle">
														<a name="download">
																<font face="Arial" size="4">下载</font>
														</a>
												</span>
										</p>
										<table class="data-table-1" cellspacing="0" cellpadding="0" width="70%" border="0">
												<tbody>
														<tr>
																<th>描述</th>
																<th>名字</th>
																<th style="TEXT-ALIGN: right">大小</th>
																<th>下载方法</th>
														</tr>
														<tr>
																<td class="tb-row">Part 1 source code</td>
																<td nowrap="">os-ag-onbank1.zip</td>
																<td style="TEXT-ALIGN: right" nowrap="">9KB</td>
																<td nowrap="">
																		<a class="fbox" href="http://download.boulder.ibm.com/ibmdl/pub/software/dw/opensource/os-ag-onbank1.zip">
																				<b>
																						<font color="#5c81a7">HTTP</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr valign="top">
																<td colspan="5">
																		<font color="#5c81a7">
																				<img height="12" alt="" src="https://www.ibm.com/i/c.gif" width="12" border="0" />
																		</font>
																</td>
														</tr>
														<tr>
																<td>
																		<font color="#5c81a7">
																				<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/fw.gif" width="16" />
																		</font>
																</td>
																<td>
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/whichmethod.html">
																				<font color="#5c81a7">关于下载方法的信息</font>
																		</a>
																</td>
																<td>
																		<font color="#5c81a7">
																				<img height="1" alt="" src="https://www.ibm.com/i/c.gif" width="50" />
																		</font>
																</td>
																<td>
																		<font color="#5c81a7">
																				<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/sout.gif" width="16" />
																		</font>
																</td>
																<td>
																		<a class="fbox" href="http://www.adobe.com/products/acrobat/readstep2.html">
																				<font color="#5c81a7">Get Adobe® Reader®</font>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
								<td width="10">
										<img height="1" alt="" src="https://www.ibm.com/i/c.gif" width="10" />
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<a name="resources">
						<span class="atitle">
								<font face="Arial" size="4">参考资料 </font>
						</span>
				</a>
		</p>
		<b>学习</b>
		<br />
		<ul>
				<li>您可以参阅本文在 developerWorks 全球站点上的 <a href="http://www.ibm.com/developerworks/edu/os-dw-os-ag-onbank1.html" target="_blank"><font color="#5c81a7">英文原文</font></a>。<br /><br /></li>
				<li>阅读关于 <a href="http://www.ibm.com/developerworks/opensource/library/ws-webaxis1/"><font color="#5c81a7">developing Web services using Axis2</font></a> 的文章（developerWorks，2005 年 11 月）。<br /><br /></li>
				<li>访问 <a href="http://ant.apache.org/manual/index.html"><font color="#5c81a7">Apache Ant 手册</font></a> 和 <a href="http://ws.apache.org/axis2/0_94/index.html"><font color="#5c81a7">Apache Axis2 0.94 文档</font></a>。<br /><br /></li>
				<li>获得 <a href="http://ws.apache.org/axis/java/index.html"><font color="#5c81a7">Apache Axis 文档</font></a>。<br /><br /></li>
				<li>访问 <a href="http://geronimo.apache.org/"><font color="#5c81a7">Apache Geronimo 主页</font></a>。 <br /><br /></li>
				<li>加入 <a href="http://geronimo.apache.org/mailing.html"><font color="#5c81a7">Apache Geronimo 邮件列表</font></a>，获得 Apache Geronimo 的信息。<br /><br /></li>
				<li>加入 <a href="http://ws.apache.org/axis2/mail-lists.html"><font color="#5c81a7">Axis2 邮件列表</font></a>。 <br /><br /></li>
				<li>查看 developer.com 推荐的 <a href="http://www.developer.com/open/article.php/3557741"><font color="#5c81a7">新 Axis2 部署架构</font></a> 相关内容。<br /><br /></li>
				<li>访问 <a href="http://wiki.apache.org/ws/FrontPage/Axis2"><font color="#5c81a7">Axis2 Wiki</font></a>。 <br /><br /></li>
				<li>查看 developerWorks 的 <a href="http://www.ibm.com/developerworks/webservices"><font color="#5c81a7">SOA 和 Web 服务专区</font></a>，其中提供了关于 Web 服务和 Web 服务标准的文章与教程。<br /><br /></li>
				<li>阅读教程 “<a href="http://www.ibm.com/developerworks/opensource/edu/ws-dw-ws-wsdm.html?S_TACT=105AGX44&amp;S_CMP=GRNMO"><font color="#5c81a7">Understand Web Services Distributed Management (WSDM)</font></a>” （developerWorks，2005 年 7 月），了解 WSDM 的理论及安装。<br /><br /></li>
				<li>访问 <a href="http://www.ibm.com/developerworks/opensource"><font color="#5c81a7">developerWorks 开放源码专区</font></a>，获得广泛的 how-to 信息、工具和项目更新，帮助您使用开放源码技术进行开发并将其与 IBM 产品共同使用。<br /><br /></li>
				<li>查看 developerWorks 的 <a href="http://www.ibm.com/developerworks/opensource/top-projects/geronimo.html"><font color="#5c81a7">Apache Geronimo 项目专区</font></a>，获得文章、教程和其他资源，帮助您立即开始使用 Geronimo 进行开发。<br /><br /></li>
				<li>查看 <a href="http://www.ibm.com/software/webservers/appserv/geronimo/?S_TACT=105AGX44&amp;S_CMP=GRNMO"><font color="#5c81a7">IBM 对 Apache Geronimo 的支持</font></a> 产品，这使您能在 IBM 的世界级支持下开发 Geronimo 应用程序。<br /><br /></li>
				<li>访问 developerWorks 中的 <a href="http://www.ibm.com/developerworks/opensource/top-projects/geronimo-starthere.html"><font color="#5c81a7">立即开始使用 Apache Geronimo</font></a> 部分，获得面向新手和经验丰富的用户的有用资源。<br /><br /></li>
				<li>访问 developerWorks 的开放源码专区，浏览所有 <a href="http://www.ibm.com/developerworks/views/opensource/libraryview.jsp?topic_by=All+topics+and+related+products&amp;sort_order=asc&amp;lcl_sort_order=desc&amp;search_by=apache&amp;search_flag=true&amp;type_by=Articles&amp;show_abstract=true&amp;start_no=1&amp;sort_by=Title&amp;end_no=100&amp;show_all=false"><font color="#5c81a7">Apache 文章</font></a> 与 <a href="http://www.ibm.com/developerworks/views/opensource/libraryview.jsp?topic_by=All+topics+and+related+products&amp;sort_order=desc&amp;lcl_sort_order=asc&amp;search_by=apache&amp;search_flag=true&amp;type_by=Tutorials&amp;show_abstract=true&amp;start_no=1&amp;sort_by=Title&amp;end_no=100&amp;show_all=false&amp;S_TACT=105AGX44&amp;S_CMP=article"><font color="#5c81a7">免费 Apache 教程</font></a>。<br /><br /></li>
				<li>访问 <a href="http://safari.bvdep.com/?x=1&amp;portal=bvdep&amp;uicode=&amp;Key=&amp;GUID=D1F1DB57-50AF-4998-99-DA-6D-BB-A5-E0-E4-0B"><font color="#5c81a7">Safari 书店</font></a>，浏览关于上述主题及其他技术的图书。</li>
		</ul>
		<br />
		<b>获得产品和技术</b>
		<br />
		<ul>
				<li>下载 <a href="http://ws.apache.org/axis2/"><font color="#5c81a7">Apache Axis2</font></a>，它提供了一个用于构建基于 Web 服务的应用程序的 SOAP 平台。<br /><br /></li>
				<li>使用 <a href="http://www.ibm.com/developerworks/downloads/?S_TACT=105AGX44"><font color="#5c81a7">IBM 试用软件</font></a> 革新您的下一个开放源码开发项目，这些软件可通过下载获得，也可在 DVD 上获得。<br /><br /></li>
				<li>下载 <a href="http://geronimo.apache.org/"><font color="#5c81a7">Apache Geronimo 1.0</font></a>。<br /><br /></li>
				<li>下载免费的 <a href="http://www.ibm.com/developerworks/downloads/ws/wasce/?S_TACT=105AGX44&amp;S_CMP=WASCE"><font color="#5c81a7">IBM WebSphere® Application Server Community Edition V1.0</font></a> —— 轻量级 J2EE 应用服务器，构建于专为帮助您加速开发和部署工作而设计的 Apache Geronimo 开放源码技术之上。<br /><br /></li>
		</ul>
		<br />
		<b>讨论</b>
		<br />
		<ul>
				<li>
						<a href="http://www.ibm.com/developerworks/forums/dw_forum.jsp?forum=541&amp;cat=51">
								<font color="#5c81a7">参与论坛讨论</font>
						</a>。<br /><br /></li>
				<li>访问 <a href="http://www.ibm.com/developerworks/blogs/dw_blog.jspa?blog=764"><font color="#5c81a7">Apache Geronimo blog</font></a>，了解 Geronimo 开发的最新信息。<br /><br /></li>
		</ul>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/resources.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<a name="author">
						<span class="atitle">
								<font face="Arial" size="4">关于作者</font>
						</span>
				</a>
		</p>
		<table cellspacing="0" cellpadding="0" width="70%" border="0">
				<tbody>
						<tr>
								<td colspan="3">
										<font face="Arial" size="4">
												<img height="5" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										</font>
								</td>
						</tr>
						<tr valign="top" align="left">
								<td>
										<p>
												<font face="Arial" size="4">
												</font>
										</p>
								</td>
								<td>
										<font face="Arial" size="4">
												<img height="5" alt="" src="https://www.ibm.com/i/c.gif" width="4" />
										</font>
								</td>
								<td width="100%">
										<p>Nicholas Chase 参与过多家公司的网站开发，包括 Lucent Technologies、Sun Microsystems、Oracle 和 Tampa Bay Buccaneers。Nick 曾是一名高中物理教师、放射性废弃品设施低级管理员、在线科幻杂志编辑、多媒体工程师、Oracle 讲师、一家交互式通信公司的首席技术官。他撰写了许多图书，其中包括 <i><a href="http://search.safaribooksonline.com/JVXSL.asp?x=1&amp;amp;mode=section&amp;amp;sortKey=rank&amp;amp;sortOrder=desc&amp;amp;view=section&amp;amp;xmlid=0-672-32422-9&amp;amp;k=20&amp;amp;g=&amp;amp;srchText=XML+Primer+Plus&amp;amp;code=&amp;amp;h=0&amp;amp;m=&amp;amp;l=1&amp;amp;j=list&amp;amp;catid=&amp;amp;s=1&amp;amp;b=1&amp;amp;f=1&amp;amp;t=1&amp;amp;c=1&amp;amp;u=1&amp;amp;r=&amp;amp;o=1&amp;amp;n=1&amp;amp;d=1&amp;amp;p=1&amp;amp;a=0&amp;amp;page=0"><font color="#5c81a7">XML Primer Plus</font></a></i>。</p>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
<img src ="http://www.blogjava.net/wangxinsh55/aggbug/90798.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangxinsh55/" target="_blank">SIMONE</a> 2006-12-29 19:45 <a href="http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90798.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用 Apache Geronimo 和 Axis2 实现在线银行，第 1 部分: 服务：布设框架（2）</title><link>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90797.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Fri, 29 Dec 2006 11:40:00 GMT</pubDate><guid>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90797.html</guid><wfw:comment>http://www.blogjava.net/wangxinsh55/comments/90797.html</wfw:comment><comments>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90797.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangxinsh55/comments/commentRss/90797.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangxinsh55/services/trackbacks/90797.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 公开 Web 服务：WSDL								在线银行服务由几种操作构成，在实现这些操作之前，我们将首先介绍一下各操作。您将了解到各操作的细节、消息、端口类型和 WSDL 绑定。																														操作																						之前已经看到了 在线银行 Web 服务的概述。现在将了解构建此 ...&nbsp;&nbsp;<a href='http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90797.html'>阅读全文</a><img src ="http://www.blogjava.net/wangxinsh55/aggbug/90797.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangxinsh55/" target="_blank">SIMONE</a> 2006-12-29 19:40 <a href="http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90797.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用 Apache Geronimo 和 Axis2 实现在线银行，第 1 部分: 服务：布设框架（1）</title><link>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90796.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Fri, 29 Dec 2006 11:38:00 GMT</pubDate><guid>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90796.html</guid><wfw:comment>http://www.blogjava.net/wangxinsh55/comments/90796.html</wfw:comment><comments>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90796.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangxinsh55/comments/commentRss/90796.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangxinsh55/services/trackbacks/90796.html</trackback:ping><description><![CDATA[
		<p>级别: 中级</p>
		<p>
				<a href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/authors.html">
						<font color="#5c81a7">Nicholas Chase</font>
				</a> (<a href="mailto:ibmquestions@nicholaschase.com?subject=服务：布设框架&amp;cc=ruterbo@us.ibm.com"><font color="#5c81a7">ibmquestions@nicholaschase.com</font></a>), 自由作者, Backstop Media, LLC<br /></p>
		<p>2006 年 5 月 25 日</p>
		<blockquote>使用 Apache Geronimo 和 Axis2 构建复杂 Web 服务应用程序是一项错综复杂的任务，本系列将深入研究相关内容。本系列教程由 3 个部分构成，引领您构建一个示例在线银行 Web 服务，文中介绍了整个流程的每个步骤，因此新用户可快速掌握概念并构建一个完整的 Web 服务和可与 Web 服务连接并通信的 Web 界面客户机。在第一期中，将为您介绍示例 Web 服务和使用 WSDL 的 Web 服务，构建并编译 WSDL 文件，然后在 Geronimo 上测试及部署它。</blockquote>
		<!--START RESERVED FOR FUTURE USE INCLUDE FILES-->
		<!--#include virtual="/developerworks/cn/inc/s-search-query-capture.inc"-->
		<!--END RESERVED FOR FUTURE USE INCLUDE FILES-->
		<p>
				<span class="atitle">
						<font face="Arial" size="4">开始之前</font>
				</span>
		</p>
		<p>本系列教程分 3 部分，面向对使用 Apache Geronimo 和 Apache Axis2 开发大型 Web 服务有兴趣的读者。了解如何构建 WSDL 文件及与在线银行系统相关的一些操作。然后使用 Axis2 将 WSDL 文件编译为 Web 服务，并在 Geronimo 上进行部署和测试。</p>
		<p>
				<a name="N1012D">
						<span class="smalltitle">
								<strong>
										<font face="Arial">关于本系列</font>
								</strong>
						</span>
				</a>
		</p>
		<p>本系列中将创建一个在线银行 Web 服务示例。使用 WSDL 和 Axis2 创建的 Web 服务将包含一个 Apache Derby 数据库，用于保存交易数据、账户数据和账单支付数据。您会将 Axis2 作为 Apache Geronimo 上的 Web 应用程序部署，新 Web 服务将是在 Axis2 中部署的 Axis 归档。您在示例中可能会用到在线银行中的多个命令，包括查看账户、搜索交易、划拨资金和支付账单。您还会创建一个客户机 Web 应用程序来连接到 Web 服务，以查询信息及执行交易 —— 主要是为了调用在 Web 服务中实现的操作。</p>
		<p>在本系列的第 1 部分中，将在 WSDL 中构建在线银行 Web 服务的基础设施。在第 2 部分中，将通过在 Apache Derby 数据库中存储账户和交易信息来构建 Web 服务的功能。在最后的第 3 部分中，将为 Web 服务创建功能完整、基于 Web 的客户机用户界面（UI），用户可在其中登录、进行在线银行活动及注销。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/index.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<a name="N10139">
						<span class="smalltitle">
								<strong>
										<font face="Arial">关于本教程</font>
								</strong>
						</span>
				</a>
		</p>
		<p>本教程首先介绍示例 Web 服务，并展示使用 WSDL 的多种 Web 服务。您将使用 Axis2 将 WSDL 文件转换为 Java™ 代码，其中将实现一些简单的功能，以测试客户机与 Web 服务之间的通信。测试环境包括作为 Geronimo 上的模块部署的 Axis2、作为 Axis2 内的归档部署的 Web 服务，以及与 Web 服务通信的一个简单 Java 客户机。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/index.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<a name="N10144">
						<span class="smalltitle">
								<strong>
										<font face="Arial">前提条件</font>
								</strong>
						</span>
				</a>
		</p>
		<p>要学习本教程，需要具备以下工具：</p>
		<ul>
				<li>Apache Geronimo —— 下载 <a href="http://geronimo.apache.org/"><font color="#5c81a7">Apache Geronimo V1.0</font></a>，您将在 Geronimo 上部署 Axis2 Web 服务。 
</li>
				<li>Apache Axis2 —— 下载 <a href="http://ws.apache.org/axis2/"><font color="#5c81a7">V0.94 Axis2 WAR 及二进制发行版</font></a>，用于从 WSDL 构建 Web 服务。 
</li>
				<li>Apache Ant —— 下载 <a href="http://ant.apache.org/bindownload.cgi"><font color="#5c81a7">Apache Ant</font></a>，由于 Axis2 的 WSDL2Java 工具为构建 Web 服务创建了一个便捷的 Ant build.xml 文件，因此您需要用到此工具，这将使 Web 服务源代码的构建更容易。 
</li>
				<li>Java 代码 —— 下载最新版的 Java 1.4，<a href="http://java.sun.com/"><font color="#5c81a7">Java 1.4.10</font></a>，Geronimo、Axis2 和 Ant 都需要用到它。 </li>
		</ul>
		<p>本教程假设您具备 Java 语法和编写代码的基本知识，但不必了解 Axis2 或特定 Geronimo 的相关知识。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/index.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<span class="atitle">
						<font face="Arial" size="4">在线银行 Web 服务概述</font>
				</span>
		</p>
		<p>下面简要介绍本系列教程的最终成果 —— 在线银行 Web 服务示例。该 Web 服务涵盖了在线银行体验的几种特性，包括查看账户和交易、划拨资金、申请贷款和在线支付账单。</p>
		<p>
				<a name="N1017B">
						<span class="smalltitle">
								<strong>
										<font face="Arial">账户</font>
								</strong>
						</span>
				</a>
		</p>
		<p>登录到 Web 服务之后，您会看到您所拥有的账户及其余额。出于安全性方面的考虑，登录过程包括发送用户名和密码，以及接收保证安全性的二进制令牌。因此，在您登录之后，仅需发送该令牌即可使 Web 服务识别您的身份。之后您就可以单击查看账户中的交易，见下节。</p>
		<p>
				<a name="N10185">
						<span class="smalltitle">
								<strong>
										<font face="Arial">交易</font>
								</strong>
						</span>
				</a>
		</p>
		<p>您在银行中做的每一件事都涉及交易，各交易的历史 —— 可在各账户中查看其历史 —— 记录在您的账户中。Web 服务还使您根据支票编号、金额或日期搜索交易。这使您可在纳税时更轻松地回溯和查找账户中的交易。您可将资金从一个账户划拨到另外一个账户中，这也作为账户的一项交易记入日志。</p>
		<p>
				<a name="N1018F">
						<span class="smalltitle">
								<strong>
										<font face="Arial">申请贷款</font>
								</strong>
						</span>
				</a>
		</p>
		<p>本特性允许您通过在线银行 Web 服务申请贷款。您可输入贷款类型、欲贷金额、偿还时间。成功提交贷款申请表后，您可查看每笔贷款的状态。</p>
		<p>
				<a name="N10199">
						<span class="smalltitle">
								<strong>
										<font face="Arial">支付账单</font>
								</strong>
						</span>
				</a>
		</p>
		<p>在线账单支付服务现已非常普及。这种服务使您能够通过银行账户支付账单。但在支付账单之前，必须首先添加作为支付对象的人或公司，我们称之为<i>收款方（payee）</i>。Web 服务允许您查看、添加和编辑账户中的收款方。在账户中设置好收款方后，您就可以向其偿还债务或划拨资金了。所支持的支付类型有两种：<i>一次性支付</i> 和 <i>定期支付</i>。您可通过 Web 服务执行各类支付。每次支付都有一个与其相关的日期，在支付发生之前（<i>待定支付</i>），允许您编辑其内容。</p>
		<p>在下一节中，我们将开始构建在线银行 Web 服务的 WSDL。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/section2.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>
				<span class="atitle">
						<font face="Arial" size="4">数据结构</font>
				</span>
		</p>
		<p>您在 Web 服务中支持的消息及操作需要一些数据结构用于来回传递数据，在 WSDL 中也称为<i>复型</i>。这些数据结构是通过简单对象访问协议（SOAP）传送的，并且是使用 WSDL 定义的。Web 服务的操作需要 6 个数据结构，我们将从最常用的一种开始，即交易。</p>
		<p>
				<a name="N101C0">
						<span class="smalltitle">
								<strong>
										<font face="Arial">交易</font>
								</strong>
						</span>
				</a>
		</p>
		<p>在您的在线银行 Web 服务上下文中，两个账户（或一个账户和银行）是所涉两方。就我们的在线银行应用程序而言，一个交易可能有 5 项属性。下面看看这些属性，参见 <a href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/section3.html#list1"><font color="#5c81a7">清单 1</font></a>。现在创建一个 WSDL 文件 —— OnlineBanking.wsdl，将 <code>Transaction complexType</code> 放置在其中。</p>
		<p>
				<code>Transaction complexType</code> 中的 5 个元素在 <a href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/section3.html#list1"><font color="#5c81a7">清单 1</font></a> 中显示为黑体。所有必需元素均以 <code>minOccurs="1" maxOccurs="1"</code> 表示。这表示该元素号应至少出现一次，且最多出现一次，也就是恰好一次。注意 <code>checknumber</code> 非必需，因为 <code>minOccurs="0"</code>，这表示在一个 <code>Transaction</code> 中，该元素可被忽略，也可以恰好出现一次。另外，查看数据类型。注意，号码定义为 <code>int</code>、<code>checknumber</code> 和 <code>int</code>、<code>date</code> 和 <code>date</code>、<code>header</code> 和 <code>string</code>，以及 <code>amount</code> 和 <code>float</code>。</p>
		<br />
		<br />
		<br />
		<br />
		<br />
		<br />
		<br />
		<br />
		<br />
		<br />
		<br />
		<a name="list1">
				<b>清单 1. 交易</b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#eeeeee" border="1">
				<tbody>
						<tr>
								<td>
										<code>
												<pre class="section">      &lt;xsd:complexType name="Transaction"&gt;
        &lt;xsd:sequence&gt;
          &lt;xsd:element minOccurs="<span class="boldcode"><strong>1</strong></span>" maxOccurs="<span class="boldcode"><strong>1</strong></span>"
                       name="<span class="boldcode"><strong>number</strong></span>" type="xsd: <span class="boldcode"><strong>int</strong></span>" /&gt;
          &lt;xsd:element minOccurs="<span class="boldcode"><strong>0</strong></span>" maxOccurs="<span class="boldcode"><strong>1</strong></span>"
                       name="<span class="boldcode"><strong>checknumber</strong></span>" type="xsd: <span class="boldcode"><strong>int</strong></span>" /&gt;
          &lt;xsd:element minOccurs="<span class="boldcode"><strong>1</strong></span>" maxOccurs="<span class="boldcode"><strong>1</strong></span>"
                       name="<span class="boldcode"><strong>date</strong></span>" type="xsd: <span class="boldcode"><strong>date</strong></span>" /&gt;
          &lt;xsd:element minOccurs="<span class="boldcode"><strong>1</strong></span>" maxOccurs="<span class="boldcode"><strong>1</strong></span>"
                       name="<span class="boldcode"><strong>header</strong></span>" type="xsd: <span class="boldcode"><strong>string</strong></span>" /&gt;
          &lt;xsd:element minOccurs="<span class="boldcode"><strong>1</strong></span>" maxOccurs="<span class="boldcode"><strong>1</strong></span>"
                       name="<span class="boldcode"><strong>amount</strong></span>" type="xsd: <span class="boldcode"><strong>float</strong></span>" /&gt;
        &lt;/xsd:sequence&gt;
      &lt;/xsd:complexType&gt;
</pre>
										</code>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>接下来将介绍收款方复型。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/section3.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<a name="N1026A">
						<span class="smalltitle">
								<strong>
										<font face="Arial">收款方</font>
								</strong>
						</span>
				</a>
		</p>
		<p>收款方接受您通过在线银行支付的账单。因此，需要几个字段来获得地址和账单金额信息。为您的 WSDL 文件添加收款方复型，参见 <a href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/section3.html#list2"><font color="#5c81a7">清单 2</font></a>。</p>
		<br />
		<br />
		<a name="list2">
				<b>清单 2. 收款方</b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#eeeeee" border="1">
				<tbody>
						<tr>
								<td>
										<code>
												<pre class="section">      &lt;xsd:complexType name="Payee"&gt;
        &lt;xsd:sequence&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>name</strong></span>" type="xsd:string" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>address1</strong></span>" type="xsd:string" /&gt;
          &lt;xsd:element minOccurs="0" maxOccurs="1"
                       name="<span class="boldcode"><strong>address2</strong></span>" type="xsd:string" /&gt;
          &lt;xsd:element minOccurs="0" maxOccurs="1"
                       name="<span class="boldcode"><strong>address3</strong></span>" type="xsd:string" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>city</strong></span>" type="xsd:string" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>state</strong></span>" type="xsd:string" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>zip</strong></span>" type="xsd:string" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>phoneAreaCode</strong></span>" type="xsd:int" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>phonePrefix</strong></span>" type="xsd:int" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>phoneSuffix</strong></span>" type="xsd:int" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>accountToPay</strong></span>" type="xsd:string" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>nameOnBill</strong></span>" type="xsd:string" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>alias</strong></span>" type="xsd:string" /&gt;
        &lt;/xsd:sequence&gt;
      &lt;/xsd:complexType&gt;
</pre>
										</code>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>对于邮汇，您可以想到，需要的所有必需数据，在 <a href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/section3.html#list2"><font color="#5c81a7">清单 2</font></a> 中以黑体显示。注意 <code>address2</code> 和 <code>address3</code>，补充的额外地址行非必需。接下来定义贷款申请表复型。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/section3.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<a name="N102B6">
						<span class="smalltitle">
								<strong>
										<font face="Arial">贷款申请表</font>
								</strong>
						</span>
				</a>
		</p>
		<p>如果银行不发放贷款，我们要如何生存？这里定义的数据结构包括贷款申请表信息和贷款状态信息。我们首先定义贷款申请表复型，参见 <a href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/section3.html#list3"><font color="#5c81a7">清单 3</font></a>。</p>
		<br />
		<br />
		<a name="list3">
				<b>清单 3. 贷款申请表</b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#eeeeee" border="1">
				<tbody>
						<tr>
								<td>
										<code>
												<pre class="section">      &lt;xsd:complexType name="LoanApplication"&gt;
        &lt;xsd:sequence&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>loanType</strong></span>" type="xsd:string" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>amount</strong></span>" type="xsd:float" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>termMonths</strong></span>" type="xsd:int" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>joint</strong></span>" type="xsd:boolean" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>percentFinanced</strong></span>" type="xsd:int" /&gt;
        &lt;/xsd:sequence&gt;
      &lt;/xsd:complexType&gt;
</pre>
										</code>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>各字段都包括贷款申请表中的典型数据。接下来将贷款状态添加到您的 WSDL 中，如 <a href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/section3.html#list4"><font color="#5c81a7">清单 4</font></a> 所示。</p>
		<br />
		<br />
		<a name="list4">
				<b>清单 4. 贷款申请表状态</b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#eeeeee" border="1">
				<tbody>
						<tr>
								<td>
										<code>
												<pre class="section">      &lt;xsd:complexType name="LoanApplicationStatus"&gt;
        &lt;xsd:sequence&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>loanNumber</strong></span>" type="xsd:string" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>approved</strong></span>" type="xsd:boolean" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>denied</strong></span>" type="xsd:boolean" /&gt;
        &lt;/xsd:sequence&gt;
      &lt;/xsd:complexType&gt;
</pre>
										</code>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>每笔贷款都获得一个号码以及一个与其相关的批准或拒绝状态。如果它既未得到批准，也未被拒绝，则该贷款尚未处理。接下来介绍与账单支付相关的结构。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/section3.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<a name="N102F7">
						<span class="smalltitle">
								<strong>
										<font face="Arial">账单支付</font>
								</strong>
						</span>
				</a>
		</p>
		<p>支付账单要求您输入信息，如支付金额、支付对象，以及是否为定期支付等。接下来的两个清单展示了两种结构，供您参考。向您的 WSDL 文件中添加账单支付复型，参见 <a href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/section3.html#list5"><font color="#5c81a7">清单 5</font></a>。</p>
		<br />
		<br />
		<a name="list5">
				<b>清单 5. 账单支付</b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#eeeeee" border="1">
				<tbody>
						<tr>
								<td>
										<code>
												<pre class="section">      &lt;xsd:complexType name="BillPayment"&gt;
        &lt;xsd:sequence&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>payeeName</strong></span>" type="xsd:string" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>account</strong></span>" type="xsd:int" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>amount</strong></span>" type="xsd:float" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>date</strong></span>" type="xsd:date" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>notes</strong></span>" type="xsd:string" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>recurring</strong></span>" type="xsd:<span class="boldcode"><strong>boolean</strong></span>" /&gt;
          &lt;xsd:element <span class="boldcode"><strong>minOccurs="0"</strong></span> maxOccurs="1"
                       name="<span class="boldcode"><strong>recurringData"</strong></span>
                       type="<span class="boldcode"><strong>xsd1:RecurringBillPayment"</strong></span> /&gt;
        &lt;/xsd:sequence&gt;
      &lt;/xsd:complexType&gt;
</pre>
										</code>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>这里显示的金额即为您所支付的金额。如果是定期支付，则此金额为您每次支付的金额，所以日期将为起始日期。另外，注意这里 <code>recurring</code> 指定支付是否为定期支付，如果是，则定义 <code>recurringData</code>（注意其 <code>minOccurs</code> 定义为 <code>0</code>）。<code>recurringData</code> 元素引用 <code>RecurringBillPayment</code> 复型，如 <a href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/section3.html#list6"><font color="#5c81a7">清单 6</font></a> 所示。将其添加到您的 WSDL 中。</p>
		<br />
		<br />
		<a name="list6">
				<b>清单 6. 追加定期账单支付数据</b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#eeeeee" border="1">
				<tbody>
						<tr>
								<td>
										<code>
												<pre class="section">      &lt;xsd:complexType name="RecurringBillPayment"&gt;
        &lt;xsd:sequence&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>finalPayment</strong></span>" type="xsd:float" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>frequency</strong></span>" type="xsd:string" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>totalNumberOfPayments</strong></span>" type="xsd:int" /&gt;
          &lt;xsd:element minOccurs="1" maxOccurs="1"
                       name="<span class="boldcode"><strong>recurringType</strong></span>" type="xsd:string" /&gt;
        &lt;/xsd:sequence&gt;
      &lt;/xsd:complexType&gt;
</pre>
										</code>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>
				<a href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/section3.html#list6">
						<font color="#5c81a7">清单 6</font>
				</a> 中的数据直接填充 <a href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/section3.html#list5"><font color="#5c81a7">清单 5</font></a> 所示复型。在这里，您的最后支付为 <code>finalPayment</code> 字段的值，<code>frequency</code> 则为支付账单的周期。<code>recurringType</code> 字段表示账单金额是否为固定数量，也就是说表示您是否可在下一次提交之前更改金额。接下来为您介绍需要通过 WSDL 公开的几种不同操作。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-ag-onbank1/section3.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
<img src ="http://www.blogjava.net/wangxinsh55/aggbug/90796.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangxinsh55/" target="_blank">SIMONE</a> 2006-12-29 19:38 <a href="http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90796.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>了解 Web 服务规范: 第 3 部分：统一描述、发现和集成 (UDDI)（4）</title><link>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90794.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Fri, 29 Dec 2006 11:36:00 GMT</pubDate><guid>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90794.html</guid><wfw:comment>http://www.blogjava.net/wangxinsh55/comments/90794.html</wfw:comment><comments>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90794.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangxinsh55/comments/commentRss/90794.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangxinsh55/services/trackbacks/90794.html</trackback:ping><description><![CDATA[
		<p>
				<span class="atitle">结束语</span>
		</p>
		<p>分布式环境要求使用集成存储库，以便用户和开发人员了解哪些功能可用以及能在何处找到这些功能，Web 服务也不例外。本教程说明了统一描述、发现和集成 (UDDI) 的使用，UDDI 提供了保存有关可用企业和服务的信息的注册中心。</p>
		<p>在本教程中，您了解了以下内容：</p>
		<ul>
				<li>什么是 UDDI 以及它为何重要 
</li>
				<li>如何设计 UDDI 数据的结构 
</li>
				<li>如何区分 SOAP 接口和实现 
</li>
				<li>如何在 UDDI 注册中心中查找数据 
</li>
				<li>如何使用 Java 与 UDDI 注册中心交互 </li>
		</ul>
		<p>本系列的后续部分将介绍如何应对不断增加的安全需求，并对 WS-Security 和 WS-Policy 进行探讨。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section8.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr valign="top">
								<td width="100%">
										<p>
												<span class="atitle">
														<a name="download">下载</a>
												</span>
										</p>
										<table class="data-table-1" cellspacing="0" cellpadding="0" width="70%" border="0">
												<tbody>
														<tr>
																<th>描述</th>
																<th>名字</th>
																<th align="right">大小</th>
																<th>下载方法</th>
														</tr>
														<tr>
																<td class="tb-row">Source code</td>
																<td nowrap="">uddicode.zip</td>
																<td nowrap="" align="right">6KB</td>
																<td nowrap="">
																		<a class="fbox" href="http://download.boulder.ibm.com/ibmdl/pub/software/dw/webservices/ws-understand-web-services3/uddicode.zip">
																				<b>
																						<font color="#5c81a7">HTTP</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr valign="top">
																<td colspan="5">
																		<font color="#5c81a7">
																				<img height="12" alt="" src="https://www.ibm.com/i/c.gif" width="12" border="0" />
																		</font>
																</td>
														</tr>
														<tr>
																<td>
																		<font color="#5c81a7">
																				<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/fw.gif" width="16" />
																		</font>
																</td>
																<td>
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/whichmethod.html">
																				<font color="#5c81a7">关于下载方法的信息</font>
																		</a>
																</td>
																<td>
																		<font color="#5c81a7">
																				<img height="1" alt="" src="https://www.ibm.com/i/c.gif" width="50" />
																		</font>
																</td>
																<td>
																		<font color="#5c81a7">
																				<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/sout.gif" width="16" />
																		</font>
																</td>
																<td>
																		<a class="fbox" href="http://www.adobe.com/products/acrobat/readstep2.html">
																				<font color="#5c81a7">Get Adobe® Reader®</font>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
								<td width="10">
										<img height="1" alt="" src="https://www.ibm.com/i/c.gif" width="10" />
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<a name="resources">
						<span class="atitle">参考资料 </span>
				</a>
		</p>
		<b>学习</b>
		<br />
		<ul>
				<li>您可以参阅本文在 developerWorks 全球站点上的 <a href="http://www.ibm.com/developerworks/edu/ws-dw-ws-understand-web-services3.html?S_TACT=105AGX52&amp;S_CMP=cn-t-ws" target="_blank"><font color="#5c81a7">英文原文</font></a> 。<br /><br /></li>
				<li>阅读<a href="http://www.ibm.com/developerworks/cn/views/webservices/tutorials.jsp?view_by=search&amp;search_by=%E4%BA%86%E8%A7%A3+Web+%E6%9C%8D%E5%8A%A1%E8%A7%84%E8%8C%83"><font color="#5c81a7">本系列的其他教程</font></a>。<br /><br /></li>
				<li>请访问 <a href="http://www.uddi.org/"><font color="#5c81a7">UDDI 网站</font></a>。<br /><br /></li>
				<li>您可以找到<a href="http://www.oasis-open.org/committees/uddi-spec/doc/tcspecs.htm"><font color="#5c81a7">所有三个版本的规范</font></a>，包括 XML 模式文档。<br /><br /></li>
				<li>请参见 Tom Bellwood 所撰写的 <a href="http://www.ibm.com/developerworks/cn/webservices/ws-uddiv3/"><font color="#5c81a7">使用 UDDI V3 加速前进</font></a>，以了解 UDDI 3.0 版中的更改。<br /><br /></li>
				<li>有关将 WSDL 与 UDDI 注册中心一起使用的各种不同方法的系列教程（由三部分组成），请参见 developerWorks 系列教程“Understanding WSDL in a UDDI registry”。 
<ul><li><a href="http://www.ibm.com/developerworks/cn/webservices/ws-wsdl/"><font color="#5c81a7">WSDL : 描述你的Web服务</font></a>（2001 年 8 月） 
</li><li><a href="http://www.ibm.com/developerworks/webservices/library/ws-wsdl2.html?S_TACT=105AGX52&amp;S_CMP=cn-t-ws"><font color="#5c81a7">Part 2: Usage scenarios in publishing and finding WSDL service descriptions</font></a>（2001 年 9 月） 
</li><li><a href="http://www.ibm.com/developerworks/webservices/library/ws-wsdl3?S_TACT=105AGX52&amp;S_CMP=cn-t-ws"><font color="#5c81a7">Part 3: How to publish and find WSDL service descriptions</font></a>（2001 年 11 月） </li></ul><br /></li>
				<li>阅读 developerWorks 系列文章“The role of private UDDI nodes in Web services”。 
<ul><li><a href="http://www.ibm.com/developerworks/webservices/library/ws-rpu1.html?S_TACT=105AGX52&amp;S_CMP=cn-t-ws"><font color="#5c81a7">Part 1: Six species of UDDI </font></a>（2001 年 5 月） 
</li><li><a href="http://www.ibm.com/developerworks/webservices/library/ws-rpu2.html?S_TACT=105AGX52&amp;S_CMP=cn-t-ws"><font color="#5c81a7">Part 2: Private nodes and operator nodes</font></a>（2001 年 5 月） </li></ul><br /></li>
				<li>阅读由五个部分组成的系列文章“使用 UDDI 和 WSDL 的一种新方法”。 
<ul><li><a href="http://www.ibm.com/developerworks/cn/webservices/ws-udmod1/"><font color="#5c81a7">第 1 部分：介绍新的OASIS UDDI WSDL TechnicalNote</font></a>（2003 年 8 月） 
</li><li><a href="http://www.ibm.com/developerworks/cn/webservices/ws-udmod2/"><font color="#5c81a7">第 2 部分：新的OASIS UDDI WSDL TechnicalNote支持的查询</font></a>（2003 年 9 月） 
</li><li><a href="http://www.ibm.com/developerworks/cn/webservices/ws-udmod3/"><font color="#5c81a7">第 3 部分：正在发挥作用的新 OASIS UDDI WSDL Technical Note 的一个示例</font></a>（2003 年 10 月） 
</li><li><a href="http://www.ibm.com/developerworks/cn/webservices/ws-udmod4/"><font color="#5c81a7">第 4 部分：使用新的 OASIS UDDI WSDL Technical Note 来从 Java 应用程序发布 WSDL</font></a>（2004 年 3 月） 
</li><li><a href="http://www.ibm.com/developerworks/webservices/library/ws-udmod5/?S_TACT=105AGX52&amp;S_CMP=cn-t-ws"><font color="#5c81a7">Part 5: Query from a Java application using the new OASIS UDDI WSDL Technical Note</font></a>（2004 年 11 月） </li></ul><br /></li>
				<li>阅读有关 UDDI4J 的更多信息：<a href="http://www.ibm.com/developerworks/cn/webservices/ws-uddi4j/"><font color="#5c81a7">UDDI4J: 安排 Web 服务 -- 与 UDDI 服务器交互</font></a>。<br /><br /></li>
				<li>请参见：<a href="http://www.ibm.com/developerworks/cn/webservices/ws-uddi4j2/"><font color="#5c81a7">UDDI4J v2 编程</font></a>（developerWorks，2002 年 7 月），这篇文章讨论了下一代 UDDI 客户机 API——UDDI4J v2。<br /><br /></li>
		</ul>
		<br />
		<b>获得产品和技术</b>
		<br />
		<ul>
				<li>下载 <a href="http://geronimo.apache.org/downloads.html"><font color="#5c81a7">Apache Geronimo</font></a>。<br /><br /></li>
				<li>要创建自己的 UDDI 注册中心，请下载 <a href="http://ws.apache.org/juddi/releases.html"><font color="#5c81a7">Apache jUDDI</font></a>。<br /><br /></li>
				<li>下载 <a href="http://sourceforge.net/projects/uddi4j/"><font color="#5c81a7">UDDI4J</font></a>。<br /><br /></li>
				<li>下载 <a href="http://www.apache.org/dyn/closer.cgi/ws/axis/1_3"><font color="#5c81a7">Apache Axis 1.3</font></a>。<br /><br /></li>
				<li>下载 <a href="http://java.sun.com/j2se/1.4.2/download.html"><font color="#5c81a7">Java 1.4.2</font></a>。Geronimo 将无法与 Java 1.5 一起正常使用。<br /><br /></li>
				<li>
						<a href="http://www.alphaworks.ibm.com/tech/uddi4py">
								<font color="#5c81a7">UDDI4Py</font>
						</a> 是一个 Python 包，允许将请求发送到 UDDI V2 API 并允许处理来自后者的响应。</li>
		</ul>
		<br />
		<b>讨论</b>
		<br />
		<ul>
				<li>
						<a href="http://www.ibm.com/developerworks/community/?S_TACT=105AGX52&amp;S_CMP=cn-t-ws">
								<font color="#5c81a7">参与论坛讨论</font>
						</a>。</li>
		</ul>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/resources.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<a name="author">
						<span class="atitle">关于作者</span>
				</a>
		</p>
		<table cellspacing="0" cellpadding="0" width="70%" border="0">
				<tbody>
						<tr>
								<td colspan="3">
										<img height="5" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
								</td>
						</tr>
						<tr valign="top" align="left">
								<td>
										<p>
										</p>
								</td>
								<td>
										<img height="5" alt="" src="https://www.ibm.com/i/c.gif" width="4" />
								</td>
								<td width="100%">
										<p>Nicholas Chase 曾经参与过许多公司网站的开发，包括 Lucent Technologies、Sun Microsystems、Oracle 及 Tampa Bay Buccaneers。他当过中学物理教师、低级放射性废弃设备管理员、在线科幻杂志编辑、多媒体工程师、Oracle 讲师以及一家交互式通信公司的首席技术官。他写过几本书，其中包括<i>XML Primer Plus</i> (Sams)。</p>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
<img src ="http://www.blogjava.net/wangxinsh55/aggbug/90794.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangxinsh55/" target="_blank">SIMONE</a> 2006-12-29 19:36 <a href="http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90794.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>了解 Web 服务规范: 第 3 部分：统一描述、发现和集成 (UDDI) （3）</title><link>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90792.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Fri, 29 Dec 2006 11:33:00 GMT</pubDate><guid>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90792.html</guid><wfw:comment>http://www.blogjava.net/wangxinsh55/comments/90792.html</wfw:comment><comments>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90792.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangxinsh55/comments/commentRss/90792.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangxinsh55/services/trackbacks/90792.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 查找和使用信息				现在已经有了所有信息（至少从理论上是这样），Gene 需要再次对查找的过程进行处理。																														UDDI 搜索的工作方式：查找公司																						在 UDDI 中进行搜索将涉及到两个步骤。首先，查找所需对象的键，然后获取有关该对象的信息。因此，为了查找公...&nbsp;&nbsp;<a href='http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90792.html'>阅读全文</a><img src ="http://www.blogjava.net/wangxinsh55/aggbug/90792.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangxinsh55/" target="_blank">SIMONE</a> 2006-12-29 19:33 <a href="http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90792.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>了解 Web 服务规范: 第 3 部分：统一描述、发现和集成 (UDDI) （2）</title><link>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90791.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Fri, 29 Dec 2006 11:32:00 GMT</pubDate><guid>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90791.html</guid><wfw:comment>http://www.blogjava.net/wangxinsh55/comments/90791.html</wfw:comment><comments>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90791.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangxinsh55/comments/commentRss/90791.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangxinsh55/services/trackbacks/90791.html</trackback:ping><description><![CDATA[
		<p>
				<span class="atitle">UDDI 数据结构</span>
		</p>
		<p>为了开始将公司添加到 UDDI 注册中心，Francis 定义了要输入注册中心的信息。</p>
		<p>
				<a name="N1030F">
						<span class="smalltitle">
								<strong>
										<font face="Arial">businessEntity </font>
								</strong>
						</span>
				</a>
		</p>
		<p>第一步是将报社本身的信息输入注册中心。为此，Francis 创建了一个 <code>businessEntity</code> 对象。此对象包含有关企业的信息，既用于对企业进行标识，也用于提供与其有关的信息。例如，businessEntity 对象可以包含多个名称（从而能够为公司所使用的每种语言创建一个 name 元素），联系信息（Francis 被告知将 Pat Mooney 添加为主要联系人）、与实体相关的服务（Gene 将稍后添加）和用于对公司进行标识与分类的信息。</p>
		<p>尽管大部分人都不会采用这种方式与 UDDI 注册中心交互，但要注意的一个事实是，UDDI 实际上就是 SOAP 应用程序；执行的所有操作都作为往返传递 SOAP 消息的结果发生。这意味着，Francis 所创建的 businessEntity 最终将表示为 XML 元素。请参见<a href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section4.html#listing2"><font color="#5c81a7">清单 2</font></a>。</p>
		<br />
		<a name="listing2">
				<b>清单 2. businessEntity 元素</b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="0" width="100" border="0">
				<tbody>
						<tr>
								<td class="code-outline">
										<pre class="displaycode">
												<span class="boldcode">
														<strong>&lt;businessEntity businessKey="{uuid}"</strong>
												</span> operator="(optional)" 
authorizedName="(optional)"&gt;
&lt;discoveryURLs&gt;
&lt;discoveryURL&gt;&lt;/discoveryURL&gt;
&lt;discoveryURL&gt;&lt;/discoveryURL&gt;
&lt;/discoveryURLs&gt;
<span class="boldcode"><strong>&lt;name&gt;The Daily Moon&lt;/name&gt;</strong></span>
&lt;name lang="fr-ca"&gt;La Lune Quotidienne&lt;/name&gt;
&lt;description&gt;&lt;/description&gt;
&lt;contacts&gt;
&lt;contact&gt;
&lt;description&gt;&lt;/description&gt;
&lt;personName&gt;Pat Mooney&lt;/personName&gt;
&lt;phone&gt;&lt;/phone&gt;
&lt;email&gt;patm@daily-moon.com&lt;/email&gt;
&lt;address useType="optional, billing, etc." 
sortCode="optional" 
tModelKey="optional"&gt;
&lt;addressLine&gt;&lt;/addressLine&gt;
&lt;addressLine&gt;&lt;/addressLine&gt;
&lt;addressLine&gt;&lt;/addressLine&gt;
&lt;/address&gt;
&lt;/contact&gt;
&lt;contact&gt;
         ...
&lt;/contact&gt;
&lt;/contacts&gt;
&lt;businessServices&gt;
&lt;businessService serviceKey="required" 
businessKey="optional"&gt;
         ...
&lt;/businessService&gt;
&lt;/businessServices&gt;
&lt;identifierBag&gt;
      ...
&lt;/identifierBag&gt;
&lt;categoryBag&gt;
      ...
&lt;/categoryBag&gt;
<span class="boldcode"><strong>&lt;/businessEntity&gt;</strong></span></pre>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>
				<code>businessEntity</code> 记录并不一定要很复杂。事实上，按照 <code>businessKey</code> 的要求，单个名称和一个唯一标识符就足够了。不过，出于完整性考虑，我包含了完整的结构，但去掉了一些稍后将另行讨论的部分。在生产环境中，应将空白元素删除。</p>
		<p>让我们看一看此处的一些信息。</p>
		<p>从代码的起始处开始，<code>businessKey</code> 当然是唯一标识符。operator 和 <code>authorizedName</code> 属性由注册中心内部进行处理；您不必考虑这部分内容，它们仅仅分别表示运行注册中心的实体和添加此记录的人员或帐户。</p>
		<p>
				<code>discoveryURLs</code> 会在每次将 businessEntity 保存到注册中心时添加到注册中心。这些 URL 旨在用作供用户访问有关 <code>businessEntity</code> 的更多信息的地址。</p>
		<p>请注意，Francis 添加了一个额外的名称，用于以法语表示其名称（报社打算在法国宣传其业务）。这些实体中的每一个都具有 <code>lang</code> 属性，用于指定相关语言的代码。您可以提供常见缩写的可替换名称，如 IBM 对应于 International Business Machines。</p>
		<p>接下来的可选描述是一个简单的文本字符串。事实上，UDDI 中的大部分元素都具有一个可选描述。</p>
		<p>接下来，Francis 添加了其他一些联系人。对于每个联系人，他可以根据需要指定任意多的信息。通常会提供 <code>personName</code>，但电话号码、电子邮件等其他信息是由个人自行提供的，因为 UDDI 注册中心的所有信息对所有用户均可用。联系人还可能具有地址信息，使用 <code>useType</code> 来指定地址类型。例如，对于联系人，它可以为家庭地址和公司地址等。对于公司，<code>useType</code> 可以为总部、发行中心等等。 </p>
		<p>
				<code>businessServices</code> 元素将列出已与 <code>businessEntity</code> 关联的任何服务。由于 Gene 尚未添加任何服务，故而此元素通常为空。最后两项 <code>identifierBag</code> 和 <code>categoryBag</code> 提供了有关公司本身的其他信息，以便进行搜索。我们稍后将对二者分别进行分析。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section4.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<a name="N1038E">
						<span class="smalltitle">
								<strong>
										<font face="Arial">publisherAssertion </font>
								</strong>
						</span>
				</a>
		</p>
		<p>
				<code>publisherAssertion</code> 是 <code>businessEntity</code> 之间的关系声明。例如，Francis 知道此项目的目标之一是使用 Daily Star 中提供的服务，其中，Daily Star 将为 <i>Daily Moon</i> 提供体育赛事比分。这使得 <i>Daily Star</i> 成为 <i>Daily Moon</i> 的内容提供者。Francis 可以按照<a href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section4.html#listing3"><font color="#5c81a7">清单 3</font></a> 中所示的方式表示此关系。</p>
		<br />
		<a name="listing3">
				<b>清单 3. publisherAssertion </b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="0" width="100" border="0">
				<tbody>
						<tr>
								<td class="code-outline">
										<pre class="displaycode">                    
&lt;publisherAssertion&gt;
&lt;fromKey&gt;(businessKey for Daily Star)&lt;/fromKey&gt;
&lt;toKey&gt;(businessKey for Daily Moon)&lt;/toKey&gt;
&lt;keyedReference tModelKey="904BD800-D53A-11DA-B055-850A1DA99D79" 
         keyName="optional" keyValue="CONTENTPROVIDER" /&gt;
&lt;/publisherAssertion&gt;
</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>
				<code>fromKey</code> 和 <code>toKey</code> 元素表示所涉及的两个实体的唯一 ID。在本例中，这两个实体指 <i>Daily Moon</i> 和 <i>Daily Star</i>。<i>Daily Star</i> 是 <i>Daily Moon</i> 的内容提供者，故而据此放置二者的键。<code>keyedReference</code> 将会多次出现。在本例中，我们可以说引用本身就是内容提供者。<code>keyValue</code> 是 <code>keyedReference</code> 的唯一必需属性，但常常也会包含 <code>keyName</code>（为了提高可读性）和 <code>tModelKey</code>（标识特定的引用类型）。在本例中，<code>tModelKey</code> 表示两个报社之间关联的命名空间（与内部关系相对）。我们稍后将对 <code>tModels</code> 进行进一步的讨论。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section4.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<a name="N103F1">
						<span class="smalltitle">
								<strong>
										<font face="Arial">businessService </font>
								</strong>
						</span>
				</a>
		</p>
		<p>接下来，Francis 需要输入有关 Daily Moon 将要提供的任何实际服务的信息。除了所需的唯一 <code>serviceKey</code> 和名称外，<code>businessService</code> 对象中还包含两条重要信息。即 <code>bindingTemplates</code> 和服务所属的任何类别。请参见<a href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section4.html#listing4"><font color="#5c81a7">清单 4</font></a>。</p>
		<br />
		<a name="listing4">
				<b>清单 4. businessService </b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="0" width="100" border="0">
				<tbody>
						<tr>
								<td class="code-outline">
										<pre class="displaycode">
												<span class="boldcode">
														<strong>&lt;businessService serviceKey="required"</strong>
												</span> businessKey="optional"&gt;
&lt;name&gt;&lt;/name&gt;
&lt;description&gt;&lt;/description&gt;
&lt;bindingTemplates&gt;
&lt;bindingTemplate serviceKey="optional" bindingKey="required"&gt;
         ...
&lt;/bindingTemplate&gt;
&lt;/bindingTemplates&gt;
&lt;categoryBag&gt;
      ...
&lt;/categoryBag&gt;
<span class="boldcode"><strong>&lt;/businessService&gt;</strong></span></pre>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section4.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<a name="N10422">
						<span class="smalltitle">
								<strong>
										<font face="Arial">BindingTemplate </font>
								</strong>
						</span>
				</a>
		</p>
		<p>
				<code>Tmodelinstancedetails</code> 指示其兼容的应用程序或规范。请参见<a href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section4.html#listing5"><font color="#5c81a7">清单 5</font></a>。</p>
		<br />
		<a name="listing5">
				<b>清单 5. bindingTemplate </b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="0" width="100" border="0">
				<tbody>
						<tr>
								<td class="code-outline">
										<pre class="displaycode">
												<span class="boldcode">
														<strong>&lt;bindingTemplate</strong>
												</span> serviceKey="optional"
 <span class="boldcode"><strong>bindingKey="required"&gt;</strong></span>
                    &lt;accessPoint&gt; OR &lt;hostingRedirector bindingKey="another
 binding to be used instead"&gt;
&lt;tModelInstanceDetails&gt;
&lt;tModelInstanceDetail&gt;
&lt;tModelInstanceInfo tModelKey=""uuid key for specification tModel"&gt;&gt;
&lt;description&gt;&lt;/description&gt;
&lt;instanceDetails&gt;
&lt;description&gt;&lt;/description&gt;
&lt;overviewDoc&gt;
&lt;description&gt;&lt;/description&gt;
&lt;overviewURL&gt;&lt;/overviewURL&gt;
&lt;/overviewDoc&gt;
&lt;instanceParams&gt;string&lt;/intstanceParms&gt;
&lt;/instanceDetails&gt;
<span class="boldcode"><strong>&lt;/tModelInstanceInfo&gt;</strong></span>
&lt;tModelInstanceInfo&gt;
            ...
&lt;/tModelInstanceInfo&gt;
  <span class="boldcode"><strong>&lt;/tModelInstanceDetail&gt;
   &lt;tModelInstanceDetails&gt;
&lt;/bindingTemplate&gt;</strong></span>
TModels (including tModel of tModels)
Serve two purposes.  As specification indicators, and as namespace indicators.
<span class="boldcode"><strong>&lt;tModel tModelKey="required"</strong></span> operator="optional" 
authorizedName="optional"&gt;
&lt;name&gt;&lt;/name&gt;
&lt;description&gt;&lt;/description&gt;
&lt;overviewDoc&gt;
&lt;description&gt;&lt;/description&gt;
&lt;overviewURL&gt;&lt;/overviewURL&gt;
&lt;overviewDoc&gt;

   &lt;identifierBag&gt;
...
&lt;/identifierBag&gt;
&lt;categoryBag&gt;
      ...
&lt;/categoryBag&gt;
<span class="boldcode"><strong>&lt;/tModel&gt;</strong></span></pre>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>
				<code>bindingTemplate</code> 定义在何处能找到服务以及其执行什么工作，这听起来并不复杂。不过，这两项功能在 UDDI 上下文中担任了新的重要角色。例如，为了确定可以在何处访问服务，可以提供 <code>accessPoint</code>（表示简单的 URL）或任何其他相应的数据，如求助热线的号码或 <code>hostingRedirector</code>。</p>
		<table cellspacing="0" cellpadding="0" width="40%" align="right" border="0">
				<tbody>
						<tr>
								<td width="10">
										<img height="1" alt="" src="https://www.ibm.com/i/c.gif" width="10" />
								</td>
								<td>
										<table cellspacing="0" cellpadding="5" width="100%" border="1">
												<tbody>
														<tr>
																<td bgcolor="#eeeeee">
																		<a name="N1046C">
																				<b>分类法</b>
																		</a>
																		<br />
																		<p>对信息进行分类时，如果能就如何进行分类达成一致则很有帮助。这些一致同意的分类标准称为分类法。</p>
																		<p>例如，北美工业分类系统 (NAICS) 通过为每种类别指定一个唯一代码来区分“体育用品出租”、“体育用品商店”和“二手体育用品商店”。这样，当遇到代码 532292 时，就知道所说的是出租体育用品的商家，而不是出售这些东西的商家。</p>
																		<p>UDDI 操作员向系统添加一系列分类法作为例行规定，可供您在无需为其注册 tModels 的情况下使用。例如，jUDDI 可以使用 <code>tModel</code> 键 <code>A035A07C-F362-44DD-8F95-E2B134BF43B4</code> 为 <code>uddi-org:general_keywords</code> 创建 <code>tModel</code>，因此您可以使用它，而不必自己定义。</p>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<p>当服务的绑定发生更改时，将使用 <code>hostingRedirector</code>。例如，如果 <i>Daily Moon</i> 要建立自己的分类广告服务，并允许这两家报社使用 <code>createNewAdd()</code> 调用提交广告，则需要确保服务永远不会更改，或者提供一个方法来告知客户机服务已发生更改。而这就是要使用 <code>hostingRedirector</code> 的地方。在这种情况下，Francis（或实际由 Gene 进行）将创建一个新 <code>bindingTemplate</code>，用于表示新信息，并将该 <code>bindingTemplate</code> 的 <code>bindingKey</code> 输入 <code>hostingRedirector</code> 元素的 <code>bindingKey</code> 属性中。</p>
		<p>定义服务能进行的工作可能会更困难。这个原因是两方面的。首先，由于我们讨论的并不一定是 SOAP 服务，因此无法直接为其提供 WSDL 文件。其次，由于这应该是一个自动化过程，因此需要以无歧义的方式提供此信息。</p>
		<p>这样所得的结果是一个包括 <code>tModelInstanceDetails</code> 元素的 <code>bindingTemplate</code>，而此元素中又包含一个或多个 <code>tModelInstanceDetail</code> 元素。每个 <code>tModelInstanceDetail</code> 元素又包含一个或多个 <code>tModelInstanceInfo</code> 元素，而后者各自指向一个特定的 <code>tModel</code>。我们稍后将对 <code>tModels</code> 进行讨论。不过，重要的是要理解，<code>tModelInstanceInfo</code> 元素可以包含一个 <code>instanceDetails</code> 元素，后者本身包含一个 <code>overviewDoc</code>，其中包括 <code>overviewURL</code>，即实际定义服务的文档的 URL。（是的，就是在此处指定 WSDL 文件。）</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section4.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<a name="N104E3">
						<span class="smalltitle">
								<strong>
										<font face="Arial">TModels（包括 tModels 的 tModel）</font>
								</strong>
						</span>
				</a>
		</p>
		<p>现在让我们讨论一下 <code>tModels</code>。</p>
		<p>
				<code>tModels</code> 实际有两个用途。第一，就是我们在关于 <code>publisherAssertions</code> 的讨论中了解到的，作为“命名空间指示符”。也就是说，<code>tModel</code> 可以提供用于区分很容易混淆的信息类型的方法。经常给出的一个例子是税码（或其他很容易混淆的数字）。例如，包含以下内容的 <code>keyedReference</code> 并不会提供所有信息，因为这两个税务 ID 属于不同的国家。它们在两个国家里都称为税务 ID，但就编程而言，我们必须提供一个区分二者的方法，如<a href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section4.html#list6"><font color="#5c81a7">清单 6</font></a> 中所示。</p>
		<br />
		<a name="list6">
				<b>清单 6. 来自不同国家的税务 ID</b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="0" width="100" border="0">
				<tbody>
						<tr>
								<td class="code-outline">
										<pre class="displaycode">                    
&lt;keyedReference tModelKey="" keyName="taxid" 
keyValue="11111111" /&gt;
&lt;keyedReference tModelKey="" keyName="taxid" 
keyValue="22222222" /&gt;
</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>这就是要使用 <code>tModel </code>的地方。我们可以为“美国税码”创建一个键模型，再为“墨西哥税码”创建一个键模型，依此类推。创建了这些模型后，可以使用其 <code>tModel</code> 键来进一步限定这些 <code>keyedReference</code>。请参见<a href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section4.html#list7"><font color="#5c81a7">清单 7</font></a>。</p>
		<br />
		<a name="list7">
				<b>清单 7. tModels 和 keyedReferences </b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="0" width="100" border="0">
				<tbody>
						<tr>
								<td class="code-outline">
										<pre class="displaycode">                    
&lt;tModel tModelKey="902CDE50-D53A-11DA-B055-A74C17FA61A7"&gt;
   &lt;name&gt;United States codes&lt;/name&gt;
&lt;/tModel&gt;
&lt;tModel tModelKey="062377D0-D5F5-11DA-8170-8ACF057FECAD"&gt;
   &lt;name&gt;Mexico codes&lt;/name&gt;
&lt;/tModel&gt;
&lt;keyedReference tModelKey="902CDE50-D53A-11DA-B055-A74C17FA61A7" 
                keyName="taxid" keyValue="11111111" /&gt;
&lt;keyedReference tModelKey="062377D0-D5F5-11DA-8170-8ACF057FECAD" 
                keyName="taxid" keyValue="22222222" /&gt;
</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>
				<code>tModel</code> 的另一个用途是作为规范标识符。例如，Francis 知道 Gene 将为上个月所处理的 <code>ClassifiedService</code> 创建相应的条目。此服务表示特定的接口，因此可以使用 <code>tModel</code> 对其进行标识。<code>tModel</code> 可能与<a href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section4.html#list8"><font color="#5c81a7">清单 8</font></a> 中所示类似。</p>
		<br />
		<a name="list8">
				<b>清单 8. tModel </b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="0" width="100" border="0">
				<tbody>
						<tr>
								<td class="code-outline">
										<pre class="displaycode">
												<span class="boldcode">
														<strong>&lt;tModel tModelKey="66999A50-D5F4-11DA-9A50-FA44D6AD622A"</strong>
												</span> 
        operator="optional" authorizedName="optional"&gt;

   &lt;name&gt;Classified Service Interface&lt;/name&gt;
   &lt;description&gt;&lt;/description&gt;

   &lt;overviewDoc&gt;
      &lt;description&gt;&lt;/description&gt;
      &lt;overviewURL&gt;
        http://www.daily-moon.com/ClassifiedService-interface.wsdl
      &lt;/overviewURL&gt;
   &lt;overviewDoc&gt;

   &lt;identifierBag&gt;
...
   &lt;/identifierBag&gt;

   &lt;categoryBag&gt;
      ...
   &lt;/categoryBag&gt;
<span class="boldcode"><strong>&lt;/tModel&gt;</strong></span></pre>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>和我们所讨论的各个其他对象一样，<code>tModel</code> 具有一个唯一键，这是它唯一必需的信息。不过，在本例中，我们还要指定 <code>overviewURL</code>，即接口的 WSDL 文件的 URL。（我们将在后面部分创建它。）</p>
		<p>同样，可以使用 <code>identifierBag</code> 对 <code>tModels </code>进行标识，还可以使用 <code>categoryBag</code> 对其进行归类。接下来让我们看一看如何进行此工作。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section4.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<a name="N10587">
						<span class="smalltitle">
								<strong>
										<font face="Arial">identifierBag </font>
								</strong>
						</span>
				</a>
		</p>
		<p>由于 UDDI 设计十分灵活，因此没有特定的方式来标识 businessEntity。UDDI 并不强制要求使用其 D-U-N-S 编号、其税务 ID 编号或任何特定的标识方法对公司进行标识。相反，它提供了一个容器，可以根据需要在其中放置任意数量的标识符，如<a href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section4.html#list9"><font color="#5c81a7">清单9</font></a> 中所示。</p>
		<br />
		<a name="list9">
				<b>清单 9. indentifierBag </b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="0" width="100" border="0">
				<tbody>
						<tr>
								<td class="code-outline">
										<pre class="displaycode">
												<span class="boldcode">
														<strong>&lt;identifierBag&gt;</strong>
												</span>
												<span class="boldcode">
														<strong>&lt;keyedReference</strong>
												</span>
 tModelKey="4064C064-6D14-4F35-8953-9652106476A9" 
         keyName="DUNS Number" <span class="boldcode"><strong>keyValue="55555555" /&gt;</strong></span><span class="boldcode"><strong>&lt;keyedReference</strong></span> tModelKey="" 
         keyName="US Tax ID" <span class="boldcode"><strong>keyValue="111111111" /&gt;
&lt;/identifierBag&gt;</strong></span></pre>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>在 <code>identifierBag</code> 中添加的每个 <code>keyedReference</code> 都代表用户在搜索中找到相关对象的另一个机会。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section4.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<a name="N105C0">
						<span class="smalltitle">
								<strong>
										<font face="Arial">categoryBag </font>
								</strong>
						</span>
				</a>
		</p>
		<p>
				<code>categoryBag</code> 的工作方式与 <code>identifierBag</code> 类似，因为其中包含一个或多个 <code>keyedReferences</code>。请参见<a href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section4.html#list10"><font color="#5c81a7">清单 10</font></a>。</p>
		<br />
		<a name="list10">
				<b>清单 10. categoryBag </b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="0" width="100" border="0">
				<tbody>
						<tr>
								<td class="code-outline">
										<pre class="displaycode">
												<span class="boldcode">
														<strong>&lt;categoryBag&gt;
   &lt;keyedReference</strong>
												</span> tModelKey="C0B9FE13-179F-413D-8A5B-5004DB8E5BB2" 
           keyName="optional" <span class="boldcode"><strong>keyValue="511110" /&gt;
&lt;/categoryBag&gt;</strong></span></pre>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>在本例中，Francis 创建了一个 <code>categoryBag</code>，指示 Daily Moon 是一个报社分支机构。现在让我们了解如何使用所有这些对象。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section4.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<span class="atitle">将 WSDL 映射到 UDDI </span>
		</p>
		<p>在 Gene 编写任何代码将所有这些信息发送到 UDDI 注册中心前，他必须在其当前服务和 UDDI 之间建立一个重要的联系。他必须对其进行调整，以适应 UDDI 的服务、接口和绑定模板概念。</p>
		<p>
				<a name="N10604">
						<span class="smalltitle">
								<strong>
										<font face="Arial">服务与接口</font>
								</strong>
						</span>
				</a>
		</p>
		<p>您可能还记得，服务在 UDDI 中包含三个部分：接口（使用 <code>tModels</code> 定义）、<code>businessService</code> 和 <code>bindingTemplate</code>（用于将两者捆绑在一起）。因此，Gene 将首先确定用于定义 SOAP 服务的 WSDL 文件如何适应此结构。</p>
		<p>他首先对 WSDL 进行分析。幸运的是，这非常简单。除了实现本身外，其余所有 WSDL 内容都属于接口。请参见<a href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section5.html#list11"><font color="#5c81a7">清单 11</font></a>。</p>
		<br />
		<a name="list11">
				<b>清单 11. WSDL 接口</b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="0" width="100" border="0">
				<tbody>
						<tr>
								<td class="code-outline">
										<pre class="displaycode">                    
&lt;wsdl:definitions xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
      xmlns:tns="http://ws.apache.org/axis2"
      xmlns:axis2="http://ws.apache.org/axis2"
      xmlns:ns1="http://org.apache.axis2/xsd" 
      targetNamespace="http://ws.apache.org/axis2"&gt;

   &lt;wsdl:types&gt;
      &lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
            targetNamespace="http://org.apache.axis2/xsd" 
            elementFormDefault="unqualified" 
            attributeFormDefault="unqualified"&gt;

         &lt;xs:element type="ns1:ClassifiedAd" name="ClassifiedAd"
 /&gt;
         &lt;xs:complexType name="ClassifiedAd"&gt;
            &lt;xs:sequence&gt;
               &lt;xs:element type="xs:int" name="id" /&gt;
               &lt;xs:element type="xs:string" name="content" /&gt;
               &lt;xs:element type="xs:string" name="endDate" /&gt;
               &lt;xs:element type="xs:string" name="startDate" /&gt;
            &lt;/xs:sequence&gt;
         &lt;/xs:complexType&gt;
         ...
      &lt;/xs:schema&gt;
   &lt;/wsdl:types&gt;

   &lt;wsdl:message name="createNewAdRequestMessage"&gt;
      &lt;wsdl:part name="part1" element="ns1:createNewAdRequest" /&gt;
   &lt;/wsdl:message&gt;
   &lt;wsdl:message name="createNewAdResponseMessage"&gt;
      &lt;wsdl:part name="part1" element="ns1:createNewAdResponse" /&gt;
   &lt;/wsdl:message&gt;
   ...

   &lt;wsdl:portType name="ClassifiedServicePortType"&gt;
      &lt;wsdl:operation name="finalizeIssue"&gt;
         &lt;wsdl:input message="tns:finalizeIssueRequestMessage" /&gt;
      &lt;/wsdl:operation&gt;
      &lt;wsdl:operation name="createNewAd"&gt;
         &lt;wsdl:input message="tns:createNewAdRequestMessage" /&gt;
         &lt;wsdl:output message="tns:createNewAdResponseMessage" /&gt;
      &lt;/wsdl:operation&gt;
      ...
   &lt;/wsdl:portType&gt;

   &lt;wsdl:binding name="ClassifiedServiceBinding" 
                  type="tns:ClassifiedServicePortType"&gt;
      &lt;soap:binding transport="http://schemas.xmlsoap.org/soap/http" 
                  style="document" /&gt;
      &lt;wsdl:operation name="createNewAd"&gt;
         &lt;soap:operation soapAction="createNewAd" style="document"
 /&gt;
         &lt;wsdl:input&gt;
            &lt;soap:body use="literal" 
                        namespace="http://ws.apache.org/axis2" /&gt;
         &lt;/wsdl:input&gt;
         &lt;wsdl:output&gt;
            &lt;soap:body use="literal" 
                        namespace="http://ws.apache.org/axis2" /&gt;
         &lt;/wsdl:output&gt;
      &lt;/wsdl:operation&gt;
      ...
   &lt;/wsdl:binding&gt;
&lt;/wsdl:definitions&gt;
</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>这包括类型定义（XML 模式）、任何消息、<code>portType</code> 甚至 <code>binding</code>，因为绑定并不是特定于实现的。</p>
		<p>实现由实际的服务元素组成。请参见<a href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section5.html#list12"><font color="#5c81a7">清单 12</font></a>。</p>
		<br />
		<a name="list12">
				<b>清单 12. 服务实现 WSDL</b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="0" width="100" border="0">
				<tbody>
						<tr>
								<td class="code-outline">
										<pre class="displaycode">                    
&lt;wsdl:definitions xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
      xmlns:tns=
        "http://www.daily-moon.com/ClassifiedService-interface"
      xmlns:axis2="http://ws.apache.org/axis2"
      xmlns:ns1="http://org.apache.axis2/xsd" 
      targetNamespace=
        "http://www.daily-moon.com/ClassifiedService-interface"&gt;

&lt;wsdl:import namespace="http://ws.apache.org/axis2" 
   location=
"http://www.nicholaschase.com/ClassifiedService-interface.wsdl" 
/&gt;

&lt;wsdl:service name="ClassifiedService"&gt;
   &lt;wsdl:port name="ClassifiedServicePort" 
               binding="axis2:ClassifiedServiceBinding"&gt;
      &lt;soap:address 
         location=
 "http://www.daily-moon.com:8080/axis2/services/ClassifiedService" 
      /&gt;
   &lt;/wsdl:port&gt;
&lt;/wsdl:service&gt;

&lt;/wsdl:definitions&gt;
</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>请注意，实现文件导入了接口文件。也就是说，此文件是服务的完整定义。</p>
		<p>现在让我们来看一看这如何与我们的 UDDI 对象对应。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section5.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<a name="N1064C">
						<span class="smalltitle">
								<strong>
										<font face="Arial">将接口映射到 tModel </font>
								</strong>
						</span>
				</a>
		</p>
		<p>Gene 首先必须将接口映射到相应的 <code>tModel</code>。请参见<a href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section5.html#list13"><font color="#5c81a7">清单 13</font></a>。</p>
		<br />
		<a name="list13">
				<b>清单 13. tModel </b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="0" width="100" border="0">
				<tbody>
						<tr>
								<td class="code-outline">
										<pre class="displaycode">                    
&lt;tModel tModelKey="66999A50-D5F4-11DA-9A50-FA44D6AD622A"&gt;

  
 &lt;name&gt;http://www.daily-moon.com/ClassifiedService-
interface&lt;/name&gt;
   &lt;description&gt;Interface for the Daily Moon Classified 
Department web application&lt;/description&gt;

   &lt;overviewDoc&gt;
      &lt;description&gt;WSDL interface document&lt;/description&gt;
      &lt;overviewURL&gt;
          http://www.daily-moon.com/ClassifiedService-interface.wsdl
      &lt;/overviewURL&gt;
   &lt;overviewDoc&gt;

   &lt;categoryBag&gt;
      &lt;keyedReference
 tModelKey="C1ACF26D-9672-4404-9D70-39B756E62AB4"
               keyName="uddi-org:types" keyValue="wsdlSpec" /&gt;
      &lt;keyedReference
 tModelKey="C0B9FE13-179F-413D-8A5B-5004DB8E5BB2" 
               keyName="ntis-gov:naics:1997" keyValue="511110" /&gt;
   &lt;/categoryBag&gt;
&lt;/tModel&gt;
</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>首先看最下面，请注意 <code>categoryBag</code>。Gene 添加了两个 <code>keyReferences</code>。第一个指定我们事实上在处理 WSDL 文件。已预定义了特定的 <code>tModelKey</code> 来表示 <code>uddi-org:types</code> 命名空间。所有 WSDL 文件都必须采用这种方式指定。第二个引用绑定到 <code>ntis-gov:naics:1997</code> 命名空间，因此 Gene 的用户可以方便地在表示与报纸有关的服务的所有 WSDL 文件中找到此定义。继续往上，我们可以看到 <code>overviewDoc</code>。除了可选描述外，它还指定了实际的 URL，可以在此处找到 WSDL 文件。</p>
		<p>最后，<code>tModel</code> 的名称应与 WSDL 文件的目标命名空间匹配。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section5.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<a name="N10691">
						<span class="smalltitle">
								<strong>
										<font face="Arial">将实现映射到绑定模板</font>
								</strong>
						</span>
				</a>
		</p>
		<p>Gene 接下来必须将实现本身映射到 <code>bindingTemplate</code>。请参见<a href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section5.html#list14"><font color="#5c81a7">清单 14</font></a>。</p>
		<br />
		<a name="list14">
				<b>清单 14. bindingTemplate </b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="0" width="100" border="0">
				<tbody>
						<tr>
								<td class="code-outline">
										<pre class="displaycode">                    
&lt;bindingTemplate serviceKey="" bindingKey=""&gt;

   &lt;accessPoint&gt;
      http://www.daily-moon.com:8080/axis2/services/ClassifiedService
   &lt;/accessPoint&gt;

   &lt;tModelInstanceDetails&gt;
      &lt;tModelInstanceDetail&gt;
         &lt;tModelInstanceInfo 
                 tModelKey="66999A50-D5F4-11DA-9A50-FA44D6AD622A"&gt;
            &lt;instanceDetails&gt;
               &lt;description&gt;The canonical implementation of 
                  the Daily Moon's classified
 service.&lt;/description&gt;
               &lt;overviewDoc&gt;
                  &lt;overviewURL&gt;
           http://www.daily-moon.com/ClassifiedService-impl.wsdl
                  &lt;/overviewURL&gt;
               &lt;/overviewDoc&gt;
            &lt;/instanceDetails&gt;
         &lt;/tModelInstanceInfo&gt;
      &lt;/tModelInstanceDetail&gt;
   &lt;/tModelInstanceDetails&gt;


&lt;/bindingTemplate&gt; 
</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>这里我们看到，Gene 创建了一个新 <code>bindingTemplate</code>，并将 <code>accessPoint</code> 设置为实际服务的 URL。键 <code>modelInstanceDetails</code> 将接口 <code>tModel</code>（通过 <code>tModelKey</code>）链接到实现文档（在 <code>overviewDoc</code> 中指定）。现在他只需要从服务引用它即可。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section5.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<a name="N106CB">
						<span class="smalltitle">
								<strong>
										<font face="Arial">从 businessService 和 businessEntity 引用 bindingTemplate </font>
								</strong>
						</span>
				</a>
		</p>
		<p>最后一步是将所有这些组装起来，并从 <code>businessService</code> 引用 <code>bindingTemplate</code>、从 <code>businessEntity</code> 引用 <code>businessService</code>。请参见<a href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section5.html#list15"><font color="#5c81a7">清单 15</font></a>。</p>
		<br />
		<a name="list15">
				<b>清单 15. 完整的 businessEntity </b>
		</a>
		<br />
		<table cellspacing="0" cellpadding="0" width="100" border="0">
				<tbody>
						<tr>
								<td class="code-outline">
										<pre class="displaycode">                    
&lt;businessEntity businessKey="1A3DB880-D5F4-11DA-B880-F94D3591C691"&gt;
   &lt;name&gt;The Daily Moon&lt;/name&gt;
   &lt;name lang="fr-ca"&gt;La Lune Quotidienne&lt;/name&gt;
   &lt;contacts&gt;
      &lt;contact&gt;
         &lt;personName&gt;Pat Mooney&lt;/personName&gt;
         &lt;email&gt;patm@daily-moon.com&lt;/email&gt;
      &lt;/contact&gt;
   &lt;/contacts&gt;

   &lt;businessServices&gt;
      &lt;businessService 
            serviceKey="064B4170-D5F5-11DA-8170-A74C17FA61A7"&gt;
         &lt;name&gt;ClassifiedService&lt;/name&gt;
         &lt;bindingTemplates&gt;
            &lt;bindingTemplate 
                 bindingKey="904BD800-D53A-11DA-B055-850A1DA99D79"&gt;
               &lt;accessPoint&gt;
      http://www.daily-moon.com:8080/axis2/services/ClassifiedService
               &lt;/accessPoint&gt;

               &lt;tModelInstanceDetails&gt;
                  &lt;tModelInstanceDetail&gt;
                     &lt;tModelInstanceInfo 
                 tModelKey="66999A50-D5F4-11DA-9A50-FA44D6AD622A"&gt;
                        &lt;instanceDetails&gt;
                           &lt;description&gt;The canonical
 implementation of the Daily Moon's classified 
service.&lt;/description&gt;
                           &lt;overviewDoc&gt;
                              &lt;overviewURL&gt;
           http://www.daily-moon.com/ClassifiedService-impl.wsdl
                              &lt;/overviewURL&gt;
                           &lt;/overviewDoc&gt;
                        &lt;/instanceDetails&gt;
                     &lt;/tModelInstanceInfo&gt;
                  &lt;/tModelInstanceDetail&gt;
               &lt;/tModelInstanceDetails&gt;

            &lt;/bindingTemplate&gt;
         &lt;/bindingTemplates&gt;

         &lt;categoryBag&gt;
            &lt;keyedReference 
                 tModelKey="C1ACF26D-9672-4404-9D70-39B756E62AB4"
                 keyName="uddi-org:types" keyValue="wsdlSpec" /&gt;
            &lt;keyedReference 
                 tModelKey="C0B9FE13-179F-413D-8A5B-5004DB8E5BB2" 
                 keyName="ntis-gov:naics:1997" keyValue="511110" /&gt;
         &lt;/categoryBag&gt;
      &lt;/businessService&gt;
   &lt;/businessServices&gt;

   &lt;identifierBag&gt;
      &lt;keyedReference
 tModelKey="4064C064-6D14-4F35-8953-9652106476A9" 
         keyName="DUNS Number" keyValue="55555555" /&gt;
      &lt;keyedReference tModelKey="" 
         keyName="US Tax ID" keyValue="111111111" /&gt;
   &lt;/identifierBag&gt;

   &lt;categoryBag&gt;
      &lt;keyedReference
 tModelKey="C0B9FE13-179F-413D-8A5B-5004DB8E5BB2" 
           keyName="optional" keyValue="511110" /&gt;
   &lt;/categoryBag&gt;
&lt;/businessEntity&gt;
</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p>也就是说，服务现在已经完成：Gene 现在有了一个包含服务的 <code>businessEntity</code>。 </p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/section5.html#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
<img src ="http://www.blogjava.net/wangxinsh55/aggbug/90791.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangxinsh55/" target="_blank">SIMONE</a> 2006-12-29 19:32 <a href="http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90791.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>了解 Web 服务规范: 第 3 部分：统一描述、发现和集成 (UDDI) （1）</title><link>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90789.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Fri, 29 Dec 2006 11:29:00 GMT</pubDate><guid>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90789.html</guid><wfw:comment>http://www.blogjava.net/wangxinsh55/comments/90789.html</wfw:comment><comments>http://www.blogjava.net/wangxinsh55/archive/2006/12/29/90789.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangxinsh55/comments/commentRss/90789.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangxinsh55/services/trackbacks/90789.html</trackback:ping><description><![CDATA[
		<p>级别: 中级</p>
		<p>
				<a href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/authors.html">
						<font color="#5c81a7">Nicholas Chase</font>
				</a> (<a href="mailto:ibmquestions@nicholaschase.com?subject=第 3 部分：统一描述、发现和集成 (UDDI)"><font color="#5c81a7">ibmquestions@nicholaschase.com</font></a>), 顾问, Backstop Media<br /></p>
		<p>2006 年 11 月 05 日</p>
		<blockquote>面向服务的体系结构（Service-Oriented Architectures，SOA）当前强调的重点在 Web 服务上，但很容易被所传播的各种信息搞得昏头转向。本系列教程将对主要 Web 服务规范进行全面说明，从简单对象访问协议（Simple Object Access Protocol，SOAP）一直介绍到 WS Business Process Execution Language (WS-BPEL)。本教程是系列教程的第 3 部分，将说明统一描述、发现和集成 (UDDI) 的基本概念，并介绍如何使用 Java 应用程序访问它。</blockquote>
		<!--START RESERVED FOR FUTURE USE INCLUDE FILES-->
		<!--#include virtual="/developerworks/cn/inc/s-search-query-capture.inc"-->
		<!--END RESERVED FOR FUTURE USE INCLUDE FILES-->
		<p>
				<span class="atitle">开始之前</span>
		</p>
		<p>本教程介绍统一描述、发现和集成 (UDDI)。UDDI 指定 Web 服务和其他公司信息的注册中心，旨在提供一种发现可使用的新 Web 服务并在理想的情况下实现操作自动化的方法。</p>
		<p>本教程假定您熟悉 Web 服务和 SOAP 的一般概念。熟悉 WSDL 的相关知识也将有所帮助，但本教程中会对一般概念进行回顾。</p>
		<p>为了理解本教程最后一部分给出的代码，您需要熟悉 Java，不过其中的概念与本教程的其他内容一样，适用于任何编程语言。</p>
		<p>
				<a name="N10137">
						<span class="smalltitle">
								<strong>
										<font face="Arial">关于本系列</font>
								</strong>
						</span>
				</a>
		</p>
		<p>本系列教程以假想的报社 <i>Daily Moon</i> 为例，为了提高在竞争激烈的环境中的工作效率，其员工将使用各种 Web 服务来创建工作流系统，我们将在此过程中讲解各个 Web 服务基本概念。 </p>
		<p>第 1 部分说明了 Web 服务背后的基本概念，并演示了如何使用 SOAP（后续教程讨论的大部分内容的基础规范）来将 Classifieds Department 连接到内容管理系统。</p>
		<p>第 2 部分进一步深入说明如何使用 Web 服务描述语言 (WSDL) 定义 Web 服务预期产生的消息，从而使团队更方便地创建服务以及连接到服务的客户机。</p>
		<p>在第 3 部分中，团队希望准备一系列服务，并希望能方便地查找这些服务。与此对应，统一描述、发现和集成（Universal Description, Discovery and Integration，UDDI）提供了可用服务的可搜索注册中心，以便使自己的服务为其他人所注意。</p>
		<p>第 4 部分和第 5 部分讨论 WS-Security 和 WS-Policy，将详细说明如何保证该报社的服务的安全，以及团队为了访问这些刚提供了安全保护的服务需要进行哪些更改。</p>
		<p>第 6 部分重点讨论互操作性，因为必须从单个系统访问来自几个不同实现的服务。这一部分还将讨论 WS-I 证书中涉及的要求和测试。</p>
		<p>最后，第 7 部分演示如何使用业务流程执行语言（Business Process Execution Language，WS-BPEL）来从各个服务创建复杂应用程序。</p>
		<p>接下来让我们更为详细地了解一下本教程中将讨论的内容。</p>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
										<img height="6" alt="" src="https://www.ibm.com/i/c.gif" width="8" border="0" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="no-print" cellspacing="0" cellpadding="0" align="right">
				<tbody>
						<tr align="right">
								<td>
										<img height="4" alt="" src="https://www.ibm.com/i/c.gif" width="100%" />
										<br />
										<table cellspacing="0" cellpadding="0" border="0">
												<tbody>
														<tr>
																<td valign="center">
																		<img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" />
																		<br />
																</td>
																<td valign="top" align="right">
																		<a class="fbox" href="https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-understand-web-services3/#main">
																				<b>
																						<font color="#5c81a7">回页首</font>
																				</b>
																		</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />
		<p>
				<a name="N10158">
						<span class="smalltitle">
								<strong>
										<font face="Arial">关于本教程</font>
								</strong>
						</span>
				</a>
		</p>
		<p>
				<a href="http://www.ibm.com/developerworks/cn/views/webservices/tutorials.jsp?cv_doc_id=158614">
						<font color="#996699">本系列的第 1 部分</font>
				</a>介绍了 Web 服务，并强调了 SOAP 的重要性。这些内容是通过虚构的 Daily Moon 报社的 Classifieds Department 进行相关工作的过程说明的。在<a href="http://www.ibm.com/developerworks/cn/views/webservices/tutorials.jsp?cv_doc_id=169509"><font color="#996699">本系列的第 2 部分</font></a>中，Classifieds Department 决定创建自己的服务，并使用 Web 服务描述语言 (WSDL) 记录其使用方式。在第 3 部分中，报社的发行人决定全面推行 Web 服务，并强制要求使用 UDDI 注册中心来记录所有可用服务。</p>
		<p>在本教程中，您将了解以下内容：</p>
		<ul>
				<li>什么是 UDDI 
</li>
				<li>UDDI 的用途 
</li>
				<li>UDDI 数据的结构 
</li>
				<li>如何有效地使用 UDDI 表示 WSDL 
</li>
				<li>可以对 UDDI 数据执行的操作 
</li>
				<li>使用 Java 与 UDDI 注册表交互 </li>
		</ul>
		<br />
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" />
										<br />
				