1

是否有可用的标准 XML 模式来描述 Java 对象的一般结构和内容?我已经搜索过这个无济于事。

总的来说,我对 XML 和各种基于 Java 的 XML 技术(尤其是 JaxB)都比较陌生,所以如果我忽略了一些东西,请原谅我。

4

4 回答 4

3

简单的答案是没有这样的标准模式。

当您使用 JAXB 之类的东西进行序列化时,您绑定的每个类/类网络实际上都有一个不同的 XML 模式。


还有一些观察:

  • 可以编写能够表示任何类型的 Java 对象的 XML 模式。您将需要一个“对象”元素,该元素具有称为类名的属性,称为“字段”的子元素等等。但生成的 XML 表示将占用更多空间,并且难以阅读和使用。

  • 在 JAXB 等中,类网络和 XML 结构之间(显然)存在系统关系,但它不能表示为 XML 模式。相反,从概念上讲,它是从类“生成”模式的映射。(事实上​​,这类似于 XMI 中发生的事情,其中​​元模型映射到 XML 模式。)

  • 参照完整性超出了 XML 模式中可表达的范围,但这并不是没有通用模式的原因。即使您忽略参照完整性并将问题简化为“树形”,您仍然无法为 JAXB、XMI 和类似映射产生的那种 XML 生成有用的公共模式。

于 2012-09-06T13:25:50.887 回答
1

它不是官方的 Oracle/Sun 标准,而是第三方工具 JSX,将 java 对象序列化为 xml,并具有其格式的 XML Schema 规范

示例 XML显示了它如何记录对象的内部细节,包括字段类型和继承的类。

Even if you don't use this schema yourself, it would give you a starting point for the issues to be addressed by a format in order to fully represent object state.

于 2012-09-10T08:31:50.997 回答
0

XMLSchema 文件描述了符合存储在此 XMLSchema 文件中的元素定义的 XML 文档中什么是可能的和不可能的。

XMLSchema 本身与 Java 无关:这里的 XMLSchema 文件仅用于检查符合 XMLSchema 文件的 XML 文件的有效性。

Java 人员使用 XMLSchema 文件生成能够从符合 XMLSchema 的 XML 文件(xjc 工具)接收数据的 Java 源代码。

您还可以从一组 Java 源文件生成 XMLSchema 文件(为此使用 schemagen 工具)。

当您拥有以下元素时,您可以使用 JAXB 将 Java 对象编组/解组到 XML 文件/从 XML 文件编组/解组:

  • XMLSchema 文件
  • Java 源文件
  • XML 文件

还有其他方法可以将xml 数据从 Java编组/解组到 Java。

于 2012-09-06T13:46:03.293 回答
0

假设可以构造一种元模式,允许 JAX-B 或其他序列化库生成的所有可能的 XML 文件。然而,大多数人不会发现这样的模式有用,因为它会允许范围如此广泛的 XML 文档,以至于本质上是无用的。相反,人们要么从模式开始并生成 Java 类,要么从特定的 Java 类图开始并生成反映(哈哈)其中特定数据的模式。

于 2012-09-06T13:55:27.723 回答