如何使用 Java 从 XSD 加载 XML 标签顺序?

2024-02-19

我有个问题:

I. QUESTION

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

二.背景

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

重点是我无法使用标准方法进行序列化 - JAXB,因为我应该通过 Apache Abdera 逐渐生成/流式传输 XML。因此,我应该将我的 Java 域对象“序列化”到 XML(提要)中,根据其中的信息创建不同标签的值,并按照 XSD 定义的顺序将这些标签一一写入到输出流中。

三.所需的功能

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

四.潜在的解决方案

所以,我想做XML 模式无关的序列化器并将为不同 xml 元素创建值的工作委托给一些专用的构建器或工厂。不过,它们的调用顺序应该由架构中 xml 元素的顺序来定义。

这是我开始时提出的问题:

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

五、如果有这样的图书馆...

概括地说,序列化器需要做的是:

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

提前致谢!


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Java 从 XSD 加载 XML 标签顺序? 的相关文章

随机推荐

  • 将文本字段的输入存储在 PHP 变量中[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 将用户从文本字段输入的内容存储在变量
  • “?”有什么作用?意思是下面的语句

    请原谅我的 新手 问题 但是问号 到底是什么 下面这行代码的意思是 self navigationItem leftBarButtonItem title editing NSLocalizedString Done Done NSLoca
  • 设置 (M x N x N) 矩阵对角线的快速方法? Einsum / n 维 fill_diagonal?

    我正在尝试编写基于矩阵的快速 优化的代码 并且最近发现 einsum 作为实现显着加速的工具 是否可以使用它来有效地设置多维数组的对角线 或者它只能返回数据 在我的问题中 我尝试通过对每个方阵 N x N 矩阵中的列求和来设置方阵数组 形状
  • 使用 mapply cbind 两个列表中的元素

    如果我有两个清单 L1 lt list a1 a2 a3 L2 lt list b1 b2 b3 获取新列表的最佳方式是什么 L3 lt list c1 c2 c3 使得 c1 lt cbind a1 b1 c2 lt cbind a2 b
  • 如何在 XSL 中使用 count() 函数 - 尝试计算报告中“A”的数量

    我正在尝试计算数量A 学校报告里有吗 这是报告
  • 使用根 CA 签名者生成自签名证书

    场景 我正在使用 PowerShellWindows Server 2012r2生成根证书并希望使用它在动态生成 和销毁 的开发 测试环境中签署新创建的中间证书和 Web 证书 这些脚本是远程部署的 目的是尽可能保持纯 PowerShell
  • Android IAP的Java服务器端验证

    我想通过我的中央游戏服务器上的 Google API 验证 Android IAP 有很多关于此的部分信息 这让我大吃一惊 我还没有支付 25 欧元成为 Google 开发者 因为我不确定我是否能够让它发挥作用 进行 IAP 时 会返回一个
  • 将 PHP 对象传递给 javascript [重复]

    这个问题在这里已经有答案了 我在 php 中有对象 每个对象代表一个 项目 以及与其关联的所有信息 当用户浏览页面时 这些对象应该传递给javascript 理想情况下 镜像相同的结构 这样我就可以使用 Raphael 在我的网站上将每个项
  • NHibernate 防止延迟加载不匹配的引用

    我对 NHibernate 有很大的疑问 我有从 Table1 到 Table2 的引用 并且我希望 NHibernate 在 Table2 中找不到相应记录时 不要针对 Table2 发出 SELECT 语句 我不知道 要确保它实际上不在
  • Android:在服务类中读取NFC标签

    我正在开发一个应用程序 我需要读取存储在 NFC 标签中的数据 我所说的数据是指简单的整数值 例如 0 1 2 3 等 从 NFC 读取数据的功能在 Activity 类中工作正常 但我需要在后台运行应用程序 因此即使应用程序未在前台运行
  • 如何在 Microsoft Surface 上自动化非交互式测试

    我们有一套测试 本机库的测试用例 我们希望在 Microsoft Surface ARM 版本 上运行 从 Visual Studio 中手动完成此操作很容易 然而 我们希望以一种可以编译 安装 运行和收集命令行输出 例如来自 Jenkin
  • 未处理的异常:PlatformException(通道错误,无法在通道上建立连接。,null,null)

    突然这个错误出现在调试控制台中 我不知道我做错了什么 您已经升级了 Flutter 但没有升级软件包 在终端中输入 flutter pub outdated 然后将过时的软件包一一升级 如下所示 flutter pub upgrade ou
  • 为什么 Devise 的“current_user”在模型层不可用?

    有很多关于 Devise 的帖子以及缺乏在模型中使用的 current user 的可用性 这里和其他地方发布了许多解决方法 然而 我在任何帖子中都没有找到 为什么 的答案 这是安全问题吗 如果没有 为什么 由于您无权访问模型内 的会话变量
  • Java 构造函数重载

    我是 Java 新手 我无法理解构造函数问题 我已经看过很多教程 但我仍然很难理解为什么我们使用构造函数 无论如何 我的具体问题是 如果我错了 请纠正我 如果我想在我的类中添加多个构造函数 我将编写第一个 第二个将是int类型 在括号内 是
  • Android 离线请求与 Volley

    我想为我的用户提供更好的离线用户体验 因此 我想构建一个Service它存储所有POST DELETE PUT GET没有意义 因为GET没有网络的调用是缓存调用 用户离线执行的请求 并在用户获得互联网连接后立即将其发送到服务器 我希望它是
  • 生成 Google Hangouts 会议 URL

    我希望我的网站能够以编程方式生成环聊网址 这些网址可以转发给特定用户 以便他们加入同一会议 据我了解 这可以通过安排活动来实现Google Calendar 有没有办法在不依赖的情况下做同样的事情Google Calendar 意思是通过A
  • Java8 Stream 编译器消息——局部变量必须是final或有效final

    我有一个小问题 当我写这个 for 循环时 变量i在 f getAnswerScore get i 中带有下划线并带有错误消息 在封闭范围中定义的局部变量 i 必须是最终的或 实际上是最终的 这和流有关系吗 也许流不能在循环中使用 for
  • 我的 Enumerable 类不适用于 Linq 语句,例如 c# 中的 .where

    我希望能够将 Linq 的 where 语句与实现接口 IEnumerable 的 Books 类 Book 列表 一起使用 THE PROBLEM IS HERE IEnumerable list3 bookList Where n gt
  • Visual Studio 2010 Express 限制

    与付费版本相比 VS2010 C Express Edition 有哪些限制 我主要是在研究我可以构建什么样的应用程序 在 VS Express 中我只有 Console Winform 和 DLL 等选项 我读到可以为 Office 程序
  • 如何使用 Java 从 XSD 加载 XML 标签顺序?

    我有个问题 I QUESTION 有没有一种基于 Java 的库 我可以通过它 提前 读取 加载其 XSD 来检索 XML 元素的顺序 二 背景 我正在开发的应用程序应该生成各种类型的 XML 提要 每个 XML 都基于给定的架构 XSD