XML 和 WebSphere Studio Application Developer — 第 6 部分: 使用 XML Schema 和 XML Editor 揭开 XML 名称空间神秘的面纱
2005-10-27 10:01
761 查看
引言
IBM® WebSphere® Studio Application Developer是一种应用程序开发产品,它支持用 JSP、servlet、HTML、XML、Web 服务、数据库和 EJB 等不同技术来构建多种应用程序。Application Developer 还特别提供了 XML 和关系数据之间的紧密集成。凡是 WebSphere Application Server 支持的数据库,Application Developer 都支持,包括 DB2®、Oracle、Sybase 和 Microsoft® SQL Server™ 在内。
本文是一系列重点讲述 WebSphere Studio Application Developer 附带提供的多种 XML 工具的文章的第 6 部分。 第 1 部分展示了如何使用 Application Developer 开发 XML Schema; 第 2 部分演示了如何使用 Application Developer 的 SQL Builder 创建 SQL 查询; 第 3 部分讨论了 Application Developer 中可以用来在应用程序中集成数据访问和 XML 的功能; 第 4 部分讲述的是 XML Editor,一个用来创建和编辑 XML 文档的可视化工具; 第 5 部分讨论的则是如何使用 RDB to XML Mapping Editor 来创建 DB2 XML Extender 所用的 DAD 文件。
第 6 部分演示如何同时使用 XML Schema Editor 和 XML Editor 来开发使用 XML 名称空间的 XML 应用程序。
为什么我们需要 XML 名称空间
既然每个人都能够创建自己在问题域中使用的 XML 元素和属性,那我们就需要有一种办法,能够把具有相同名称但来自于不同问题域的元素区别开来。举例来说,PurchaseOrder(采购订单)可能来自两家不同的公司;在这种情况下,我们就可以使用 XML 名称空间机制将两者区别开来。
XML 名称空间(XML Namespace)规范发布于 1999 年年初,远远早于 XML Schema 规范。那时,因为没有一种用 DTD 构造名称空间的标准方法,所以我们无法使用 DTD 来验证对名称空间敏感的 XML 文档。在 2001 年 5 月引入了 XML Schema 之后这种情形得到了改变,因为 XML Schema 支持名称空间。诸如 Xerces2之类的验证分析器(validating parser)可以按照 XML Schema 文档的规定来验证使用名称空间的实例文档。
通过示例解释 XML 名称空间
要解释所有的名称空间概念,最好的办法是通过示例来说明。我们将通过一系列示例来仔细讨论以下名称空间主题。
无限定的本地元素对 限定的本地元素
没有目标名称空间的 Schema
目标名称空间为缺省名称空间的 Schema
多个模式和多个名称空间
您可以使用 XML Schema Editor 来创建或导入如下所示的
清单 1. Course.xsd 文件
无限定的本地元素
要创建一个与
图 1. 从 Course.xsd 生成 XML 文档
清单 2. Course.xml 文件 — 无限定的本地元素
让我们再来看看
限定的本地元素
要使 XML 实例文档中的所有本地元素都得到限定,XML Schema 编写者就必须在
图 2. 指定所有本地元素都要得到限定
这样,
现在,请保存
清单 3. Course.xml 文件 — 限定的本地元素
没有目标名称空间的 Schema
您可以使用 XML Schema Editor 来创建或导入如下所示的
清单 4. Course1.xsd 文件 — 这个模式并不属于某个名称空间
请注意这个模式的类型定义是如何不用前缀而进行调用的。举例来说,
要生成实例文档,请在
清单 5. Course1.xml 文件 — 用 xsi:noNamespaceSchemaLocation 来提供模式位置
让我们再来看看
总之,如果您想让实例文档不需使用前缀,但却能够按照 XML Schema 而非 DTD 进行验证,那么这种模式是很有用的。然而,如果您想发布您的模式以供其它模式重用,那么,由于这种模式可能会因另一词汇而导致名称冲突,它就会令人很头痛。
目标名称空间为缺省名称空间的 Schema
您可以使用 XML Schema Editor 来创建或导入如下所示的
清单 6. Course2.xsd 文件 — 目标名称空间与缺省名称空间相同
正如
图 3. 目标名称空间没有前缀
单击 Apply[/b] 按钮后,您将能注意到
通过让这个模式的目标名称空间成为缺省名称空间,我们在对这个模式的类型进行引用时就不必对它们加以限定了(例如,不需要对
要生成这个实例文档,请在
图 4. 指定实例文档的前缀
多个模式和多个名称空间
随着模式变得越来越庞大,人们常常希望把一个模式分成若干个较小的模式,从而更易于维护和重用。借用诸如 W3C 之类的标准组织所开发的模式也是很普遍的事情。在这个部分中,我们将来看看在 XML Schema Editor 中创建模式时,如何使用来自多个模式的构造。我们还将分析本实例文档中多个名称空间的含义。
在开始之前,您要确保已经下载了 下面所提供的
第 1 步. 创建 Calendar.xsd 文件
使用 Create XML Schema 向导在您当前的工程中创建
第 2 步. 导入 Course.xsd 和 Job.xsd 模式文件
在 Outline 视图中,单击 Calendar[/b]文件对象并从弹出菜单中选择 Add Import[/b]。这将在 outline 视图中创建一个新的
单击 import[/b] 对象。在
图 5. 导入 Course.xsd 模式
切换到 Source 视图查看源代码。您将会注意到,除了
现在,请重复上述步骤,为
第 3 步. 添加一个约会(appointment)
我们将在
在 Outline 视图中,添加一个全局元素
单击匿名类型(anonymous type),然后选择 Add Content Model。在 Design View 中将内容模型(content model)从 sequence改为 choice。此外,把最小值(Minimum)字段设为 0,把最大值(Maximum)字段设为 unbounded。
选择 choice元素,并选择 Add Element Ref添加一个元素引用。在 Reference name 字段中,请注意 course:Schedule 作为一个选择可用的情况。这是因为我们在第 2 步中导入了来自
请再次选择 choice元素,然后选择 Add Element Ref添加一个元素引用。在 Reference name 字段中,请注意 Job:JobInfo 作为一个选择可用的情况。这是因为我们在第 2 步中导入了来自
请给这个复杂类型添加两个属性, startTime和 endTime。
完成后的
图 6. 导入了 Course.xsd 和 Job.xsd 的 Calendar.xsd
第 4 步. 生成 Calendar.xml 文件
为了生成与
图 7. 生成带有多个名称空间的 Calendar.xml
第 5 步. 使用 XML Editor 编辑 Calendar.xml 文件
在 XML Editor 中打开
图 8. 在 XML Editor 中编辑 Calendar.xml
在本系列的 第 4 部分中,我们讨论了在 XML Editor 中如何使用 XML Schema 或 DTD 提供受指导编辑。这样的受指导编辑对名称空间也是起作用的。例如,当您打开
图 9. 添加 <course:Schedule> 或 <Job:JobInfo> 元素
结束语
本文概略讲述了常用的 XML 名称空间模式,并向您演示了如何用 WebSphere Studio Application Developer 的一些 XML 工具来设计 XML Schema 和 XML 实例文档。正如文中所述,XML Schema 编写者为模式文档选择的名称空间和限定对实例文档的结构有诸多影响。这些 XML 工具所具有的生成能力使得您可以快速修改 XML Schema 并生成实例文档,从而确保您设计的模式是正确的。
下载
IBM® WebSphere® Studio Application Developer是一种应用程序开发产品,它支持用 JSP、servlet、HTML、XML、Web 服务、数据库和 EJB 等不同技术来构建多种应用程序。Application Developer 还特别提供了 XML 和关系数据之间的紧密集成。凡是 WebSphere Application Server 支持的数据库,Application Developer 都支持,包括 DB2®、Oracle、Sybase 和 Microsoft® SQL Server™ 在内。
本文是一系列重点讲述 WebSphere Studio Application Developer 附带提供的多种 XML 工具的文章的第 6 部分。 第 1 部分展示了如何使用 Application Developer 开发 XML Schema; 第 2 部分演示了如何使用 Application Developer 的 SQL Builder 创建 SQL 查询; 第 3 部分讨论了 Application Developer 中可以用来在应用程序中集成数据访问和 XML 的功能; 第 4 部分讲述的是 XML Editor,一个用来创建和编辑 XML 文档的可视化工具; 第 5 部分讨论的则是如何使用 RDB to XML Mapping Editor 来创建 DB2 XML Extender 所用的 DAD 文件。
第 6 部分演示如何同时使用 XML Schema Editor 和 XML Editor 来开发使用 XML 名称空间的 XML 应用程序。
为什么我们需要 XML 名称空间
既然每个人都能够创建自己在问题域中使用的 XML 元素和属性,那我们就需要有一种办法,能够把具有相同名称但来自于不同问题域的元素区别开来。举例来说,PurchaseOrder(采购订单)可能来自两家不同的公司;在这种情况下,我们就可以使用 XML 名称空间机制将两者区别开来。
XML 名称空间(XML Namespace)规范发布于 1999 年年初,远远早于 XML Schema 规范。那时,因为没有一种用 DTD 构造名称空间的标准方法,所以我们无法使用 DTD 来验证对名称空间敏感的 XML 文档。在 2001 年 5 月引入了 XML Schema 之后这种情形得到了改变,因为 XML Schema 支持名称空间。诸如 Xerces2之类的验证分析器(validating parser)可以按照 XML Schema 文档的规定来验证使用名称空间的实例文档。
通过示例解释 XML 名称空间
要解释所有的名称空间概念,最好的办法是通过示例来说明。我们将通过一系列示例来仔细讨论以下名称空间主题。
无限定的本地元素对 限定的本地元素
没有目标名称空间的 Schema
目标名称空间为缺省名称空间的 Schema
多个模式和多个名称空间
您可以使用 XML Schema Editor 来创建或导入如下所示的
Course.xsd模式文件。这个模式的目标名称空间是
http://www.utoronto.ca。这意味着在这个模式中定义的所有类型都属于目标名称空间
http://www.utoronto.ca,而且您可以通过使用这个模式中的前缀
course来引用这些类型。
清单 1. Course.xsd 文件
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.utoronto.ca" xmlns:course="http://www.utoronto.ca"> <element name="Schedule"> <complexType> <sequence> <element name="course" type="course:CourseInfo"/> <element name="location" type="string"/> </sequence> </complexType> </element> <complexType name="CourseInfo"> <sequence> <element name="courseId" type="string"/> <element name="description" type="string"/> </sequence> </complexType> </schema> |
要创建一个与
Course.xsd模式文件一致的实例文档,请选择
Course.xsd文件,然后选择 Generate =>XML File[/b]来启动 Create XML File 向导。单击 Next[/b]。在 Select Root Element 页中,请选中 Create required and optional content[/b]选项,以创建一个带有所需元素的 XML 文档,如下面的图 1 所示。请注意,在创建实例文档时自动使用了目标名称空间和 XML 模式文件的前缀。单击 Finish[/b] 后就会自动创建
Course.xml文件(请参看下面的清单 2)。
图 1. 从 Course.xsd 生成 XML 文档
清单 2. Course.xml 文件 — 无限定的本地元素
<course:Schedule xmlns:course="http://www.utoronto.ca" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.utoronto.ca Course.xsd "> <course> <courseId>courseId</courseId> <description>description</description> </course> <location>location</location> </course:Schedule> |
Course.xml文件。首先,根元素
Schedule被限定(即
course:Schedule)为属于名称空间
http://www.utoronto.ca。这就使得我们可以把多伦多大学(University of Toronto)提供的课程(course)和其它大学提供的课程区别开来。其次,所有本地元素都是 无限定的[/i]。也就是说,诸如
course、
courseId、
description和
location之类的本地元素都没有前缀。这是因为
Course.xsd模式文件指定了本地元素不应被限定。您或许在想,对于编写实例的人来说,要确定什么需要限定以及什么不需要限定可能会让人很头痛。下一部分就将告诉您,在一个实例文档中如何使每个元素都是限定的。
限定的本地元素
要使 XML 实例文档中的所有本地元素都得到限定,XML Schema 编写者就必须在
schema元素中把
elementFormDefault属性设置为
qualified。要完成这项工作,您只要将
Course.xsd模式对象的 Design 视图的 Element form default 字段选为 qualified[/b]就可以了,如下面的图 2 所示。
图 2. 指定所有本地元素都要得到限定
这样,
elementFormDefault属性就被添加到了
schema标记中,并被设置为
qualified。
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.utoronto.ca" xmlns:course="http://www.utoronto.ca" elementFormDefault="qualified"> |
Course.xsd文件并再次调用 Create XML File 向导。这样就将生成如下面的清单 3 所示的
Course.xml文件。请注意,所有元素(全局的和本地的)都用前缀
course加以限定。
清单 3. Course.xml 文件 — 限定的本地元素
<course:Schedule xmlns:course="http://www.utoronto.ca" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.utoronto.ca Course.xsd "> <course:course> <course:courseId>courseId</course:courseId> <course:description>description</course:description> </course:course> <course:location>location</course:location> </course:Schedule> |
您可以使用 XML Schema Editor 来创建或导入如下所示的
Course1.xsd模式文件。正如模式标记中未出现
targetNamespace属性所表明的那样,这个
Course1.xsd并不属于某个名称空间。
清单 4. Course1.xsd 文件 — 这个模式并不属于某个名称空间
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="Schedule"> <xsd:complexType> <xsd:sequence> <xsd:element name="course" type="CourseInfo"/> <xsd:element name="location" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:complexType name="CourseInfo"> <xsd:sequence> <xsd:element name="courseId" type="xsd:string"/> <xsd:element name="description" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:schema> |
CourseInfo复杂类型(complex type)就是在元素
course中不用前缀以
CourseInfo的形式进行调用。要把 XML Schema 元素(如 complexType、string 等)和用户在不属于某个名称空间的模式中定义的元素区别开来,我们可以按照 W3C 推荐(W3C recommendation)使用一个前缀(例如本示例中的
xsd)来显式地限定 XML Schema 元素。
要生成实例文档,请在
Course1.xsd上调用 Generate XML File 向导。请注意名称空间和一些前缀字段的空缺情况。单击 Finish[/b] 就会生成如清单 5 所示的
Course1.xml文件。
清单 5. Course1.xml 文件 — 用 xsi:noNamespaceSchemaLocation 来提供模式位置
<Schedule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Course1.xsd"> <course> <courseId>courseId</courseId> <description>description</description> </course> <location>location</location> </Schedule> |
Course1.xml文件。首先,请注意添加到根元素中的
xsi:noNamespaceSchemaLocation属性(而不是
xsi:schemaLocation属性)。这个属性用来提供关于没有名称空间的模式文档的位置的线索。这样,您仍然可以对照相应的模式来验证该实例文档。再者,请注意到所有元素(全局的和本地的)都没有加以限定。实际上,这个文档看起来更像一个不使用名称空间的传统的 XML 文档。
总之,如果您想让实例文档不需使用前缀,但却能够按照 XML Schema 而非 DTD 进行验证,那么这种模式是很有用的。然而,如果您想发布您的模式以供其它模式重用,那么,由于这种模式可能会因另一词汇而导致名称冲突,它就会令人很头痛。
目标名称空间为缺省名称空间的 Schema
您可以使用 XML Schema Editor 来创建或导入如下所示的
Course2.xsd模式文件。
清单 6. Course2.xsd 文件 — 目标名称空间与缺省名称空间相同
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.utoronto.ca" xmlns="http://www.utoronto.ca"> <xsd:element name="Schedule"> <xsd:complexType> <xsd:sequence> <xsd:element name="course" type="CourseInfo"></xsd:element> <xsd:element name="location" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:complexType name="CourseInfo"> <xsd:sequence> <xsd:element name="courseId" type="xsd:string"></xsd:element> <xsd:element name="description" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> </xsd:schema> |
targetNamespace属性所表明,这个模式的目标名称空间是
http://www.utoronto.ca。通过在该模式对象的 Prefix 字段中不指定前缀,我们使得这个模式的缺省名称空间与目标名称空间相同。
图 3. 目标名称空间没有前缀
单击 Apply[/b] 按钮后,您将能注意到
xmlns属性被添加到了模式标记中,用来指定这个模式的缺省名称空间是
http://www.utoronto.ca。您还将能注意到 XML Schema 构造被自动用前缀
xsd(这一前缀可以从 XML Schema Preference 页进行修改)加以限定,以将这些 XML Schema 构造与缺省名称空间中的类型(如
Schedule)区别开来。
通过让这个模式的目标名称空间成为缺省名称空间,我们在对这个模式的类型进行引用时就不必对它们加以限定了(例如,不需要对
CourseInfo加以限定)。请比较
Course2.xsd和
Course.xsd,确保您看到了其间的差别。
要生成这个实例文档,请在
Course2.xsd文件上调用 Generate XML File 向导。请注意前缀字段的空缺情况以及出现一条表明丢失了一个前缀的出错消息的情况。请单击 Edit[/b] 按钮以启动 New Namespace Information 对话框(请参看下面的图 4)。请输入一个前缀,例如
course。单击 Finish[/b] 将生成
Course2.xml文件,并且这个文件应该与清单 2 中的
Course.xml文件相似。
图 4. 指定实例文档的前缀
多个模式和多个名称空间
随着模式变得越来越庞大,人们常常希望把一个模式分成若干个较小的模式,从而更易于维护和重用。借用诸如 W3C 之类的标准组织所开发的模式也是很普遍的事情。在这个部分中,我们将来看看在 XML Schema Editor 中创建模式时,如何使用来自多个模式的构造。我们还将分析本实例文档中多个名称空间的含义。
在开始之前,您要确保已经下载了 下面所提供的
namespace.zip文件,并将
Calendar/Course.xsd和
Calendar/Job.xsd解压缩到您当前的工程中。
第 1 步. 创建 Calendar.xsd 文件
使用 Create XML Schema 向导在您当前的工程中创建
Calendar.xsd模式文件。现在,您对这一步应该是驾轻就熟了。
第 2 步. 导入 Course.xsd 和 Job.xsd 模式文件
在 Outline 视图中,单击 Calendar[/b]文件对象并从弹出菜单中选择 Add Import[/b]。这将在 outline 视图中创建一个新的
import元素对象。
单击 import[/b] 对象。在
Schedule.xsd模式对象的 Design 视图中,使用 Select[/b]按钮来调用 Select XML Schema file 向导。选择 Select schema from Workbench projects[/b]选项。单击 Next[/b] 并选择
Course.xsd模式文件。这将从
Course.xsd文件导入一些定义,以便我们今后使用它们。此外,它还将检索
Course.xsd的名称空间和名称空间前缀。结果如下面的图 5 所示。
图 5. 导入 Course.xsd 模式
切换到 Source 视图查看源代码。您将会注意到,除了
Course.xsd的
import元素之外,
schema元素中还自动生成了
xmlns:course属性。
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ibm.com" xmlns:Calendar="http://www.ibm.com" xmlns:course="http://www.utoronto.ca"> |
Job.xsd文件添加 import 元素。
第 3 步. 添加一个约会(appointment)
我们将在
Calendar模式中创建一个约会。这个约会将包含课程(course)和工作(job)的列表,这些课程和工作将构成我们的日常事务。
在 Outline 视图中,添加一个全局元素
appointment,并将它的类型指定为匿名复杂类型(anonymous complex type)。
单击匿名类型(anonymous type),然后选择 Add Content Model。在 Design View 中将内容模型(content model)从 sequence改为 choice。此外,把最小值(Minimum)字段设为 0,把最大值(Maximum)字段设为 unbounded。
选择 choice元素,并选择 Add Element Ref添加一个元素引用。在 Reference name 字段中,请注意 course:Schedule 作为一个选择可用的情况。这是因为我们在第 2 步中导入了来自
Course.xsd文件的一些定义。请选择 course:Schedule作为我们想引用的元素。
请再次选择 choice元素,然后选择 Add Element Ref添加一个元素引用。在 Reference name 字段中,请注意 Job:JobInfo 作为一个选择可用的情况。这是因为我们在第 2 步中导入了来自
Job.xsd文件的一些定义。请选择 Job:JobInfo作为我们想引用的元素。
请给这个复杂类型添加两个属性, startTime和 endTime。
完成后的
Calendar.xsd模式如下面的图 6 所示。
图 6. 导入了 Course.xsd 和 Job.xsd 的 Calendar.xsd
第 4 步. 生成 Calendar.xml 文件
为了生成与
Calendar.xsd一致的实例文档,请再一次在
Calendar.xsd上调用 Generate XML File 向导。这个实例文档将使用来自三个不同名称空间的三个模式。请注意在 Select Root Element 页中自动为您进行检测的情况。单击 Finish[/b] 就将为您生成一个有效的
Calendar.xml文件。
图 7. 生成带有多个名称空间的 Calendar.xml
第 5 步. 使用 XML Editor 编辑 Calendar.xml 文件
在 XML Editor 中打开
Calendar.xml文件。在 Design 视图中,您很快就可以看到根元素
Calendar:appointment下的名称空间属性值(例如,
xmlns:Calendar、
xmlns:Job和
xmlns:course)。为了能够进行验证,
xsi:schemaLocation属性必须包含指向相应模式的线索,如下面的图 8 所示。
图 8. 在 XML Editor 中编辑 Calendar.xml
在本系列的 第 4 部分中,我们讨论了在 XML Editor 中如何使用 XML Schema 或 DTD 提供受指导编辑。这样的受指导编辑对名称空间也是起作用的。例如,当您打开
Calendar:appointment元素上的弹出菜单时,将注意到 Add Child[/b]会让您选择将 course:Schedule[/b]或 Job:JobInfo[/b] 添加到
appointment元素中。这种情况如下面图 9 所示。
图 9. 添加 <course:Schedule> 或 <Job:JobInfo> 元素
结束语
本文概略讲述了常用的 XML 名称空间模式,并向您演示了如何用 WebSphere Studio Application Developer 的一些 XML 工具来设计 XML Schema 和 XML 实例文档。正如文中所述,XML Schema 编写者为模式文档选择的名称空间和限定对实例文档的结构有诸多影响。这些 XML 工具所具有的生成能力使得您可以快速修改 XML Schema 并生成实例文档,从而确保您设计的模式是正确的。
下载
Name | Size | Download method | |||||||||
0206_namespace.zip | 8 KB | HTTP | |||||||||
关于下载方法的信息 |
相关文章推荐
- XML 和 WebSphere Studio Application Developer - 第 7 部分: 使用 XSL Editor 和 XSL Debugger 开发 XSL 样式表
- XML 和 WebSphere Studio Application Developer,第 1 部分:开发 XML Schema
- XML 和 WebSphere Studio Application Developer — 第 4 部分: 研究 XML Editor
- XML 和 WebSphere Studio Application Developer: 第 8 部分:探究 XML to XML Mapping Editor
- 使用 WebSphere Studio Application Developer 调试器调试 WebSphere 应用程序: 第 1 部分
- 使用 WebSphere Studio Application Developer 调试器调试 WebSphere 应用: 第 2 部分
- XML 和 WebSphere Studio Application Developer — 第 2 部分: 创建 SQL 查询
- XML 和 WebSphere Studio Application Developer — 第 3 部分: SQL 和 XML
- 使用 WebSphere Studio Application Developer 的 WebSphere Portal Server 开发: 第 1 部分:Portal Server 2.1 的动态主题定制
- XML 和 WebSphere Studio Application Developer,第 5 部分:探究 RDB to XML Mapping Editor
- 使用 WebSphere Studio Application Developer 开发 Java 程序: 与 VisualAge for Java 进行比较
- XML 和 WebSphere Studio Application Developer - 第九部分:利用 XML更新数据库表
- 使用 WebSphere Studio Application Developer 构建 J2EE 应用程序客户机
- 使用 WebSphere Studio Application Developer 集成版,版本 4.1 开发 Java 消息服务应用程序
- 使用 WebSphere Studio Application Developer 创建数据库应用程序
- WebSphere Studio Application Developer 移植指南
- 揭开RecyclerView的神秘面纱(一):RecyclerView的基本使用
- 第1部分 揭开Java神秘面纱
- WebSphere Studio Application Developer 与 VisualAge for Java 共存
- WebSphere Studio Application Developer 中的 Web 应用程序入门