如何使用Java从XSD加载XML标签订单?

时间:2012-07-12 22:00:51

标签: java xml xsd

我有一个问题:

予。的问题

是否有基于Java /方式的库,我可以通过读取/加载其XSD(提前)来检索XML元素的顺序?

II。背景

我正在处理的应用程序应该生成各种类型的XML(提要),每个XML都基于给定的架构(XSD)。

关键是我无法使用标准方法进行序列化 - JAXB ,因为我应该通过Apache Abdera逐步生成/流式传输XML。因此,我应该将我的Java域对象“序列化”为XML(feed),从其中的信息中创建不同标记的值,并按照XSD定义的顺序逐个将这些标记写入输出流。

III。需要的功能

目前,我有一个序列化程序,它以上述方式将我的域对象转换为xml,但很快它将需要支持几种类型的模式,并且它不易维护(更不用说它了) '非常容易出错)。

IV。可能的解决方案

因此,我想制作与模式无关的序列化程序,并将创建不同xml元素的值的工作委托给一些专用的构建器或工厂。应该调用它们的顺序,应该由模式的xml元素的顺序来定义。

接下来是我的问题:

是否有基于Java /方式的库,我可以通过读取/加载其XSD(提前)来检索XML元素的顺序?

诉如果有这样的图书馆......

示意图,序列化程序需要做的是:

  1. 按照在XSD中定义的顺序加载xml元素(标签)的类型(当然有它们的限制)
  2. 按加载顺序迭代加载的xml元素类型
  3. 对于识别的每个xml元素类型,将构建相应元素的内容委托给关联的构建器或工厂。
  4. 拥有构建器/工厂构建的值,序列化程序只需使用元素的标记将其包装并将其刷新到输出流中。
  5. 提前致谢!

0 个答案:

没有答案