从XML到Java代码的数据绑定之二 从XML数据创建类

数据绑定系列的第二篇是如何从 XML 数据限制中生成一个 Java 语言。 本文通过完整的代码展现了如何生成类和代码,并提供了如何定制您自己版本的建议。 还没有看过第一篇吗?第一篇, "对象,无处不在的对象", 解释了数据绑定是如何将 XML 和 Java 语言对象互为转换。它比较了数据绑定和其它在 Java 程序中处理 XML 的方法, 并介绍了一个 XML 配置文档示例。第一部分也介绍了使用 XML Schema 来约束数据。

在深入 Java 程序和 XML 代码之前,先快速回顾一下本系列第一部分所打下的基础。

在第一部分中,我们知道只要可以标识文档的一组约束,就可以将文档转换成 Java 对象。那些约束为数据提供了接口。如 Web 服务配置文档示例中所示,XML 文档应当成为现有 Java 类的一个实例,并且从数据约束生成那个类。最后,会看到表示样本 XML 文档约束的 XML schema。

如果对细节还有疑问,请回顾 第一篇文章.

打造基础

现在,可以着手从 XML schema 创建 Java 类。该类必须准确表示数据约束,并提供 Java 应用程序将使用的简单读方法和写方法。开始之前,让我们先回顾清单 1,查看为 WebServiceConfiguration 文档定义的 XML schema。

清单 1. 表示 Web 容器配置文档数据接口的 XML schema

<?xml version="1.0"?>
<schema targetNamespace="http://www.enhydra.org"
xmlns="http://www.w3.org/1999/xmlSchema"
xmlns:enhydra="http://www.enhydra.org"
>
<complexType name="ServiceConfiguration">
<attribute name="name" type="string" />
<attribute name="version" type="float" />
</complexType>
<element name="serviceConfiguration" type="ServiceConfiguration" />
<complexType name="WebServiceConfiguration"
baseType="ServiceConfiguration"
derivedBy="extension">
<element name="port">
<complexType>
<attribute name="protocol" type="string" />
<attribute name="number" type="integer" />
<attribute name="protected" type="string" />
</complexType>
</element>
<element name="document">
<complexType>
<attribute name="root" type="string" />
<attribute name="index" type="string" />
<attribute name="error" type="string" />
</complexType>
</element>
</complexType>
<element name="webServiceConfiguration" type="WebServiceConfiguration" />
</schema>

生成代码

开始生成 Java 代码之前,首先必须确定核心类的名称。将使用 org.enhydra.xml.binding 包中的 SchemaMapper,它是 Enhydra 应用服务器实用程序类集合的一部分。还可以将任何必需的支持类放到这个包中。

除了类名称以外,还必须确定用来读取和创建 XML 的 Java API。如上一篇文章中所讨论过的,三种主要选择是 SAX、DOM 和 JDOM。由于 SAX 仅仅适用于读取 XML 文档,因此它不适合创建 XML。由于在打包阶段中要将 Java 对象转换为 XML 表示,因此在此阶段中需要创建 XML。这就将选择的范围缩小到 DOM 和 JDOM。在这两种选择都可用的情况下,本例中我选择使用 JDOM API,仅为了显示其功能性(并不仅仅因为我是它的合著者之一!)。

最后,必须指出如何将 XML schema 提供给 SchemaMapper 类。通常,可以假设类的生成是脱机完成的(通过静态 main 方法)。仅通过使 main 方法调用非静态方法,还可以从运行时环境中使用类。做了这些决定后,就可以开始勾画类的框架了。

时间: 2024-09-19 18:25:26

从XML到Java代码的数据绑定之二 从XML数据创建类的相关文章

XML到Java代码的数据绑定之对象

xml|对象|数据 在这个由四部分组成的系列文章的第一部分,我们将弄清什么是数据绑定,与在 Java 应用程序中处理 XML 数据的其它方法相比它有什么优势,以及如何开始使用它.这一部分将考查为什么使用数据绑定,以及如何为各种约束建立模型,使 XML 文档能转换成 Java 对象.同时还涵盖用于生成数据绑定类的输入和输出. 您希望在您的 Java 应用程序中使用 XML 吗?那么好,同成千上万的其他人一起上这条船吧.当您深入了解 XML 以后,也许您会发现 DOM 和 SAX API(请参阅参考

从XML到Java代码的数据绑定之一

xml|数据     对象,无处不在的对象 在这个由四部分组成的系列文章的第一部分,我们将弄清什么是数据绑定,与在 Java 应用程序中处理 XML 数据的其它方法相比它有什么优势,以及如何开始使用它.这一部分将考查为什么使用数据绑定,以及如何为各种约束建立模型,使 XML 文档能转换成 Java 对象.同时还涵盖用于生成数据绑定类的输入和输出. 您希望在您的 Java 应用程序中使用 XML 吗?那么好,同成千上万的其他人一起上这条船吧.当您深入了解 XML 以后,也许您会发现 DOM 和 S

从XML到Java代码的数据绑定之对象【来自JAVA家】

xml|对象|数据 在这个由四部分组成的系列文章的第一部分,我们将弄清什么是数据绑定,与在 Java 应用程序中处理 XML 数据的其它方法相比它有什么优势,以及如何开始使用它.这一部分将考查为什么使用数据绑定,以及如何为各种约束建立模型,使 XML 文档能转换成 Java 对象.同时还涵盖用于生成数据绑定类的输入和输出. 您希望在您的 Java 应用程序中使用 XML 吗?那么好,同成千上万的其他人一起上这条船吧.当您深入了解 XML 以后,也许您会发现 DOM 和 SAX API(请参阅参考

从XML到Java代码的数据绑定之对象

xml|对象|数据 在这个由四部分组成的系列文章的第一部分,我们将弄清什么是数据绑定,与在 Java 应用程序中处理 XML 数据的其它方法相比它有什么优势,以及如何开始使用它.这一部分将考查为什么使用数据绑定,以及如何为各种约束建立模型,使 XML 文档能转换成 Java 对象.同时还涵盖用于生成数据绑定类的输入和输出. 您希望在您的 Java 应用程序中使用 XML 吗?那么好,同成千上万的其他人一起上这条船吧.当您深入了解 XML 以后,也许您会发现 DOM 和 SAX API(请参阅参考

从XML到Java代码的数据绑定之四 从无用的字符到有用的代码段

在本系列的上一部分中,我演示了如何取出 XML 文档并将它转换成 Java 表示.这种变换的关键是 XML 文档符合的 XML 模式.模式不仅确保了强制约束.它还允许使用 SchemaMapper 来生成 Java 类:那么 XML 文档就可以解包成那些类其中一个的实例.换句话说,这个系统不仅需要 XML 文档:文档将变成其实例的 Java 类不仅必须已经存在,而且它还必须在系统的类路径中. 打包类 打包 Java 实例时,情况稍有不同.首先,Unmarshaller 类不存储关于在所创建的 J

从XML到Java代码的数据绑定之三 从文本到字节码

本数据绑定系列的第三部分演示了如何使用"JSR-031:数据绑定,Sun 数据绑定规范申请"中指定的方法,将 XML 元素和属性转换成 Java 对象.这部分主要讲述从数据的 XML 表示移到应用程序代码易于使用的 Java 实例.第三部分论及通过将 XML 文档中的嵌套元素取消编组成 Java 对象.测试和用某些实际示例来使用新的工具. 本系列的目标是演示如何将 XML 元素转换成 Java 对象,然后可以使用 Java 语言 accessor 和 mutator 方法直接处理 XM

从XML到Java代码的数据绑定之一 对象,无处不在的对象

在这个由四部分组成的系列文章的第一部分,我们将弄清什么是数据绑定,与在 Java 应用程序中处理 XML 数据的其它方法相比它有什么优势,以及如何开始使用它.这一部分将考查为什么使用数据绑定,以及如何为各种约束建立模型,使 XML 文档能转换成 Java 对象.同时还涵盖用于生成数据绑定类的输入和输出. 您希望在您的 Java 应用程序中使用 XML 吗?那么好,同成千上万的其他人一起上这条船吧.当您深入了解 XML 以后,也许您会发现 DOM 和 SAX API(请参阅 参考资料)不过是唬人的

XML到Java代码的数据绑定之对象_JSP编程

在这个由四部分组成的系列文章的第一部分,我们将弄清什么是数据绑定,与在 Java 应用程序中处理 XML 数据的其它方法相比它有什么优势,以及如何开始使用它.这一部分将考查为什么使用数据绑定,以及如何为各种约束建立模型,使 XML 文档能转换成 Java 对象.同时还涵盖用于生成数据绑定类的输入和输出. 您希望在您的 Java 应用程序中使用 XML 吗?那么好,同成千上万的其他人一起上这条船吧.当您深入了解 XML 以后,也许您会发现 DOM 和 SAX API(请参阅参考资料)不过是唬人的东

有一份java代码,是发送POST和接受数据的,帮我看看能不能转成PHP的

问题描述 有一份java代码,是发送POST和接受数据的,帮我看看能不能转成PHP的如果能,能加我QQ吗?1569129285付费/***api调用demo代码*/importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.io.OutputStreamWriter;importjava.net.HttpURLConnection;importjava.net.URL;importjava.net.URLConn