在 Web服务中使用 SDO 动态数据 API(二)

日期: 2007-12-13 来源:TechTarget中国

  为了说明如何使用静态数据 API,让我们以使用 XSD 中定义的复杂类型表示的数据模型为例,如清单 1 中所示。

  清单 1. 表示类型 Person 的 XSD 代码片段

<complexType name=”Person”>
    <sequence>
      <element name=”firstName” type=”string”/>
      <element name=”lastName” type=”string”/>
        <element name=”greeting” type=”string”/>
               <element name=”id” type=”int”/>
                   </sequence>
</complexType>

  如果将此类型传入数据 API 生成工具,输出将为 Person 的类型接口(一个工厂接口,可利用其创建类型 Person 的实例)和实现 Person 的 commonj.sdo.DataObject 的实现类(用于获取和设置属性,如 getFirstName() 和 setFirstName())。在这里,由于 Person 类实现 commonj.sdo.DataObject,此生成类可以在规范定义的接受 commonj.sdo.DataObject 作为参数的所有 SDO API 中使用。

  清单 2 中所示的代码可帮助说明如何使用静态数据 API。

  清单 2. 演示静态数据 API 的代码片段

  // Register and initialize the SDO types defined in the generated
  // PersonFactory class
  SDOUtil.registerStaticTypes(PersonFactory.class);
  // Create an instance of Person using the Factory class
  Person person = PersonFactory.INSTANCE.createPerson();
  // Set properties of the newly created Person object
  person.setFirstName(“John”);
  person.setLastName(“Doe”);
  // Example of how to pass a Person object to XMLHelper.save() method for
  // void XMLHelper.save(DataObject dataObject, String rootElementURI,
  // String rootElementName, OutputStream outputStream)
  XMLHelper.INSTANCE.save((DataObject)person, “http://www.example.com/person”,
  ”person”, System.out);

 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • SAP收购CallidusCloud 与Salesforce竞争

    一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • 揭秘New Relic APM技术细节

    New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响

  • 仅凭SOA和云无法解决业务数据管理风险问题

    SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。