XML&Java&XMLBeans结合应用的价值

简介: 通过阅读本文,您将了解面向服务的架构(Service-Oriented Architecture,SOA)、XML 和 XMLBeans 如何在解决实际商业问题中发挥重要作用及其原因,文中将以娱乐业为例进行案例分析。
通过阅读本文,您将了解面向服务的架构(Service-Oriented Architecture,SOA)、XML 和 XMLBeans 如何在解决实际商业问题中发挥重要作用及其原因,文中将以娱乐业为例进行案例分析。本文的目的并不在于介绍代码,而是让您了解在需要使用 XML 时如何使用 XMLBeans 及其原因。

  面对日益升级的软件复杂度,企业架构师的注意力逐渐集中到了一种能够解决系统集成问题的方法 —— 面向对象的架构(SOA)。从本质上来说,SOA 就是要通过增强业务与信息技术(IT)的运作关系来提高企业效益。

  SOA 将请求/应答设计范例应用于同步和异步应用程序中。在这种方法中,业务应用程序的逻辑和功能以服务的形式体现。应用程序开发人员或系统集成人员可以通过组合一项或多项服务来构建应用程序,而不必知道服务的底层实现方法。通过这种方式可以实际地整合所有 IT 资源,包括孤立的数据和以前不兼容的遗留系统。

  在 SOA 范例中,提供者与消费者通过消息进行通信。消息传递接口必须与平台和语言无关。因此,通常使用符合 XML 模式的 XML 文档来构造消息。当然,也常常以 XML 格式存储应用程序数据。

  XML 提供了基本语法,您可以使用基本语法在各种计算机、各种应用程序和各种组织之间共享信息,而无需经过多层转换。XML 之所以重要,是因为它为构建集成基础设施提供了通用的标准化平台,从而为企业应用程序集成工作提供支持。

   为什么使用 XMLBeans?

  使用 XMLBeans 可以将 Java™ 编程语言与 XML 结合使用。Java 编程语言是一种面向对象的语言,它基于开放的、公开的标准,可移植、健壮而且可靠。由于具备这些特点,Java 编程语言已被广泛接受并在包括娱乐业在内的许多行业中得到了实现。然而,XML 与 Java 编程语言不兼容。而 XMLBeans 就是扫清这一障碍的最佳选择。

  XMLBeans 用于 XML 数据绑定。使用 XMLBeans,Java 应用程序就可以充分利用 XML 的优势。XMLBeans 使用 XML Schema 来编译用于访问和修改 XML 实例数据的 Java 接口和类。使用此项技术,您可以将 XML Schema 编译到一组 Java 类中使其具有以下功能:

  遇到任何 Schema 时都使用 XMLBeans
  根据需要在任意级别访问 XML 数据
  XMLBeans 提供了以下应用程序接口(API)用于数据绑定:

  XmlObject:如果 Java 类是通过 XML Schema 生成的,则这些 Java 类都是派生自 XmlObject API。
  XmlCursor:XmlCursor API 提供了对 XML Infoset 的低层访问权,它表示 XML 实例中的光标位置。
  SchemaType:用于底层元信息的 XML Schema 对象模型。

  XMLBeans 编译器将生成 XML 模式的对象表示。这个对象表示是一组表示模式的结构和约束的通用 Java 类和接口。在生成 Java 类和接口后,符合该模式的 XML 实例文档就会与之绑定。绑定过程包括以面向对象的方式使用 XMLBeans API 来访问实际 XML 实例文档中的数据。

  如果使用功能强大的 XMLBeans,则无需为使用 XML 而编写所有代码。您可以轻松地在应用程序中使用 XML。如果不使用 XMLBeans,您就必须编写代码来利用模式的每一部分。试想:用 XMLBeans 为模式生成类,假定有若干个一对一、一对多和多对多关系需要管理,使用 XMLBeans 可以轻而易举地完成这一任务:

  安装 XMLBeans。
  编译模式来生成 Java Archive(JAR)文件。
  编写代码将 XML 实例绑定到表示模式的 Java 类型上。清单 1 提供了一个简单的例子:
  清单 1. XMLBeans 简单易用

    File xmlEntertainFile = new File("c:/entertain.xml");
  // Bind the instance to the XMLBeans types that were generated.
    EntertainDocument entDoc =
      EntertainDocument.Factory.parse(xmlEntertainFile);
  // Get and then print pieces of the XML instance.
    Entertain ent = entDoc.getEntertain();
    Entertain[] entArray = ent.getEntertainArray();
    for (int i = 0; i < entArray.length; i++)
      {
          System.out.println(entArray );
      }


  娱乐业

  那么,所有这一切是如何在现实世界里实现的呢?首先,计算能力发生了不可思议的转变。随着 SOA 的推广,计算能力越来越多地从传统星型模型(在这种模型里,高性能的服务器共同组成集线器)转到更加对等的模型上,组合网络的优势在于比中央服务器具有更强大的计算能力。实际上,中央服务器就变成了网络中的节点。随着 Internet 和高速 Internet 连接的发展,娱乐业走向了数字化。大多数新产品的销售和发行已经或即将采用数字化方式。

  信不信由你,娱乐业因声名狼藉的 Napster 采用这种计算范例而成为最早利用这种转变的行业之一。最近由 South by Southwest(SXSW, Inc.)举办的研讨会又用事实证明了娱乐业仍是先驱者。SXSW 是一家私人公司,位于得克萨斯州奥斯丁市。这家公司专门承办娱乐界及相关媒体业人士的会议和节庆活动。该公司最近承办的会议(2006 年 3 月 11 日至 14 日)讨论了数码创意和电影制作工作者在开发和制作时可利用的工具。其中一次小组讨论专门探讨了发展 XML 在娱乐业的应用:Looking for XML in All the Wrong Places。该公司的会议材料中写到,"Everyone wants to do everything with XML."

电影业

  电影业更是 XML 的热情拥护者。电影业已经在包装和发行数字化产品给影院和其他实体的进程中迈出了重要步伐,这其中就包括使用 XML。2005 年 7 月,致力于电影数字化的 Digital Cinema Initiatives(DCI)组织与活动影像和电视工程师协会(Society of Motion Picture and Television Engineers,SMPTE)标准委员会的成员合作,发布了获得主流电影制片公司认可的数字影院的系统规范。标准涵盖了 XML 在包装、文件格式、帧率和调速、编辑播放列表和包装清单等方面的使用。

  现在网络上可以找到有很多面向电影业的新应用程序,例如 Apple 的获奖软件 Final Cut Pro,该软件支持开放的、基于标准的 XML Interchange Format。在 Final Cut Pro 中,XML Interchange Format 说明了项目的各个方面。从剪辑、挂片及片段,剪接、转场及效果,到调色设置和关键帧,Final Cut Pro 都为创作人员和编程人员提供了找到影片设计中的亮点的方法。在 Final Cut Pro 中使用 XML 为您提供了一种开放、透明的纯文本格式,可通过多种多样的工具来阅读和操纵此格式。使用 XML Interchange Format 意味着 Final Cut Pro 用户可以与支持 XML 的任何应用程序或系统(包括数据库系统、网络服务器、基于 HTML 的 Web 创作工具和图形化应用程序)共享关于项目的各种信息。还意味着基于 Java 的应用程序可以使用 XMLBeans 轻松地访问这些数据。现在,开发人员可以创建与 Final Cut Pro 完全集成的基于 Java 的应用程序,也构建可节省大量时间和金钱的自定义后期制作管道,这都要归功于 XMLBeans。

  XMLBeans 与业内发行

  当然,后期制作结束后,要考虑的最重要的事情就是发行,不发行就没有利润。通过 Amazon.com 等代理商,Internet 已经成为各种形式媒体产品(例如 DVD、各类音乐,当然还有图书)发行的重要组成部分。很多人都知道 Amazon.com 是图书经销商,其实它也是娱乐业发行网络的一员。由基于 XML 的协议组成的 Amazon Web 服务(Amazon Web Services,AWS)提供了对 Amazon 的技术平台和产品数据的直接访问功能,从检索一组产品的信息一直到将产品放入购物车,从而提高应用程序的性能,或添加更好的搜索功能。使用 AWS,您可以直接访问 Amazon 的强大平台来启用和增强您的应用程序。

  Amazon.com 并非娱乐业的惟一 Internet 资源。Netflix.com 等实体也是发行网络的组成部分。Netflix 使用 RSS(Really Simple Syndication)提要来提供对其内容的访问。开发人员可以使用 RSS 提要创建各种有趣的新方法,来显示 Netflix 提供的信息。当然,RSS 提要不仅限于 Netflix。您可以在许多站点(无论是新闻通讯社的站点还是内容提供商的站点)中找到这些支持 XML 的文档。

  可以想像,这种新途径不但能带来巨额利润,而且几乎不会引致与数字版权管理(Digital Rights Management,DRM)和盗版相关的任何问题。随着新发行渠道的开辟,影视制作方(摄影棚、独立制作室等)必须要能与有意购买产品的各方(包括影院、电视台、租赁商和付费点播提供商)进行互动。目前,业内有几家成员正与电子商务组织探讨,在使用 Internet 这种最新或许也是最节省成本的发行渠道发行影视作品时,怎样才能做到既有利可图又安全可靠。这种交互构成了与 DRM 相关的问题。

  广泛使用 XMLBeans 的关键在于建立整个娱乐业都接受的开放式 XML 标准。不过,如果您要进行娱乐节目创作并且拥有 XML 编码标准(哪怕是您自己的 XML 模式),就可以利用 XMLBeans。只要使用 XML(无论标准与否),您就可以使用 XMLBeans 来提高创作效率,减少必须测试和维护的代码,并且达到松散耦合和更为面向服务的目标。在 XML 标准补充到 DRM 领域中之后,您还可以利用 XMLBeans 来执行和使用标准。通过本文及其他文章中列出的 XMLBeans 的技术优势,您可以看到一种应用 DRM 标准的一致方法,从而帮助您简化部署及与合作伙伴、发行商和客户交换版权数据的过程。DRM 领域内下一代标准是开放数字版权语言(Open Digital Rights Language,ODRL)。您可以从 ODRL 站点下载 XML 模式。

  若要从 ODRL 站点下载 XML 模式,请执行以下步骤:

  下载并安装 XMLBeans 和将在其中部署代码的容器。
  在 ODRL 站点中检索 Expression Language Schema 和 Data Dictionary Schema,然后将文件保存到您创建的容器中。
  访问 XMLBeans Web 站点,然后通过 XML 模式文件生成 XMLBeans。选择保存 Java 源文件的选项。生成的 xmlTypes.jar 文件包含使用 ODRL 和 XMLBeans 所需的类。
  使用 XMLBeans 还有很多其他优点。XMLBeans 可能是目前市场上最成熟的 XML 对象绑定技术,而且免费。总之,XMLBeans 绝对是您在使用 XML 时值得考虑的工具。随着 XML 在娱乐业内的应用的快速发展,如果要使 XML 内容可为基于 Java 的应用程序所用,您会很容易地看到 XMLBeans 的优势。

  结束语

  娱乐业在多种层面上为很多应用程序使用了 XML。由于 Java 编程语言是世界标准的面向对象的编程语言,而 XML 已成为娱乐业首选的数据格式,XMLBeans 将很快成为首选的 Java 绑定工具。XMLBeans 可创建用于 Java 开发的类,从而避免重复劳动,节约时间和成本。两者结合在一起,为开发客户和供应商应用程序提供了切实有效的方法
 
相关文章
|
1月前
|
人工智能 算法 Java
Java与AI驱动区块链:构建智能合约与去中心化AI应用
区块链技术和人工智能的融合正在开创去中心化智能应用的新纪元。本文深入探讨如何使用Java构建AI驱动的区块链应用,涵盖智能合约开发、去中心化AI模型训练与推理、数据隐私保护以及通证经济激励等核心主题。我们将完整展示从区块链基础集成、智能合约编写、AI模型上链到去中心化应用(DApp)开发的全流程,为构建下一代可信、透明的智能去中心化系统提供完整技术方案。
227 3
|
3月前
|
存储 监控 数据可视化
Java 大视界 -- 基于 Java 的大数据可视化在企业生产运营监控与决策支持中的应用(228)
本文探讨了基于 Java 的大数据可视化技术在企业生产运营监控与决策支持中的关键应用。面对数据爆炸、信息孤岛和实时性不足等挑战,Java 通过高效数据采集、清洗与可视化引擎,助力企业构建实时监控与智能决策系统,显著提升运营效率与竞争力。
|
1月前
|
消息中间件 缓存 Java
Spring框架优化:提高Java应用的性能与适应性
以上方法均旨在综合考虑Java Spring 应该程序设计原则, 数据库交互, 编码实践和系统架构布局等多角度因素, 旨在达到高效稳定运转目标同时也易于未来扩展.
121 8
|
2月前
|
人工智能 Java API
Java与大模型集成实战:构建智能Java应用的新范式
随着大型语言模型(LLM)的API化,将其强大的自然语言处理能力集成到现有Java应用中已成为提升应用智能水平的关键路径。本文旨在为Java开发者提供一份实用的集成指南。我们将深入探讨如何使用Spring Boot 3框架,通过HTTP客户端与OpenAI GPT(或兼容API)进行高效、安全的交互。内容涵盖项目依赖配置、异步非阻塞的API调用、请求与响应的结构化处理、异常管理以及一些面向生产环境的最佳实践,并附带完整的代码示例,助您快速将AI能力融入Java生态。
463 12
|
2月前
|
安全 Java API
Java SE 与 Java EE 区别解析及应用场景对比
在Java编程世界中,Java SE(Java Standard Edition)和Java EE(Java Enterprise Edition)是两个重要的平台版本,它们各自有着独特的定位和应用场景。理解它们之间的差异,对于开发者选择合适的技术栈进行项目开发至关重要。
395 1
|
3月前
|
设计模式 XML 安全
Java枚举(Enum)与设计模式应用
Java枚举不仅是类型安全的常量,还具备面向对象能力,可添加属性与方法,实现接口。通过枚举能优雅实现单例、策略、状态等设计模式,具备线程安全、序列化安全等特性,是编写高效、安全代码的利器。
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
Java 大视界 -- Java 大数据机器学习模型在自然语言生成中的可控性研究与应用(229)
本文深入探讨Java大数据与机器学习在自然语言生成(NLG)中的可控性研究,分析当前生成模型面临的“失控”挑战,如数据噪声、标注偏差及黑盒模型信任问题,提出Java技术在数据清洗、异构框架融合与生态工具链中的关键作用。通过条件注入、强化学习与模型融合等策略,实现文本生成的精准控制,并结合网易新闻与蚂蚁集团的实战案例,展示Java在提升生成效率与合规性方面的卓越能力,为金融、法律等强监管领域提供技术参考。
|
6月前
|
Android开发 开发者
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
173 2
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
270 1
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
下一篇
oss云网关配置