问题标签 [jibx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Eclipse 中的 JiBX 绑定 DTD 模式
我在绑定 xml 文件中有警告:
我已经按照这里的答案中所写的那样完成了:JiBX:如何在我的代码中继续使用接口?(不接受的答案)。但现在我在绑定 xml 文件时出错:
映射/绑定.dtd)。有关更多信息,请右键单击问题视图中的消息并选择“显示详细信息...”
详情如下:
我不熟悉 DTD 模式,所以我不知道问题出在哪里。有人找到解决方案了吗?
并且 - 我不想关闭 XML 文件中的验证,我想在绑定文件中使用它(主要用于代码辅助和验证)。
java - JIBX MAVEN 问题
我正在尝试在我的 Spring Web Service 项目中使用 JIBX maven 插件,我的项目有不同的层(API-DAO-SERVICE vsvs ..)这些层是单独的项目并且彼此具有 maven 依赖关系。在我的 WEB 项目的 POM 中,我添加了其他项目作为依赖项,我的映射类都在 API 项目中。即使在我的 Web 项目的 POM 中包含 API 项目的依赖项,我也无法在 JIBX 中使用该类但如果我将该类放在 WEB 项目的 src/main/java 目录中,则没有问题,我如何使用映射类是其他依赖于 Maven 的项目。非常感谢任何帮助;谢谢。
xml - 如何将 XML 模式导入“无命名空间”
我在这里有一个架构,我试图在其中包含/导入另一个没有命名空间的架构(并且无法更改,因为它来自另一个供应商并且不再验证他们的 XML)。这是第一个架构:
而“NO_NAME_SPACE_SHEMA_PROBLEM.xsd”可以在一定程度上改变,但不能有命名空间。
问题是some-elem-from-NO_NAME_SPACE_PROBLEM_SCHEMA
被放入samp
命名空间。因此,当我尝试将其编组为 XML 时,它会打印出<samp:some-elem-from-NO_NAME_SPACE_PROBLEM_SCHEMA><child-elem/></samp:some-elem-from-NO_NAME_SPACE_PROBLEM_SCHEMA>
这是一个大问题,因为该 XML 不会验证,因为它不应该拥有。所以我的目标是将元素简单地导入无命名空间命名空间。
更新 1:对不起,我曾经并且正在使用 xs:include,而不是 xs:import 用于无命名空间模式。问题语法已更新。我还使用 JiBX 代码生成来生成域对象和用于编组的 JiBX 绑定。所以它也必须与 JiBX 兼容。
更新 2:根据 skaffman 的回答,我现在将使用 xs:import。我想我将把它扩展到一个新问题。
xml - JiBX:如何在导入无命名空间模式的模式上运行 codegen
我在这里有一个架构,我试图在其中包含/导入另一个没有命名空间的架构(并且无法更改,因为它来自另一个供应商并且不再验证他们的 XML)。这是第一个架构:
而“NO_NAME_SPACE_SHEMA_PROBLEM.xsd”可以在一定程度上改变,但不能有命名空间。
运行 JiBX codegen 时遇到的问题:
java - XML Marshalling:如何将另一个命名空间中的属性添加到元素
我想生成这个 XML:
我有这个 XSD:
我怎样才能在我的 XSD 中完成此操作(仅供参考:我正在使用它将对象编组为 Java 中的 XML,使用 JiBX)。
java - 如何让 Jibx 在集合中添加两个实现相同接口的不同对象?
正如标题所说,我有两个实现相同接口的不同对象,我想将它们添加到同一个集合中。
我的 XML 看起来像:
下面的标签item
可以是type1
或type2
随时。它们具有相似的值,但如您所见,它们type2
具有另一个字段。
我的界面是:
我的三门课:
我的绑定看起来像这样:
当我运行它时,我得到了这个错误:
所以我想我向集合添加一个项目类型,所以现在我的集合部分看起来像:
现在错误说:
所以现在我将以下方法添加到MyObj
:
并将collection
标签更改为:
并得到与我第一次尝试相同的错误:
现在我没有主意了。我怎样才能让它工作?
编辑
根据 Archie 在下面的建议,我将绑定更改为:
现在绑定工作没有堆栈错误(万岁!)但是现在当我从我的列表中获得一个项目时:
我得到:
在我上面的第二行。如果我打印对象: System.out.println(items.get(0));
它说:java.lang.Object@1be2d65
所以它是一个普通的对象,根本不是 Element 或 Type1(或 Type2)!
我确实尝试了 Archie 提出的“扩展”方法,但它并没有改变任何东西——我得到了相同的结果。
java - 在可能被序列化的类上使用字节码增强技术是否安全?为什么?
我还没有尝试过,但它似乎有风险。我正在考虑的案例是使用 JiBX 检测简单的 VO 类。这些 VO 将通过 AMF 和可能的其他方案进行序列化。任何人都可以确认或否认我的怀疑,即做像字节码增强这样的幕后工作可能会搞砸一些事情,并提供一些背景信息来说明原因吗?另外,我对 JiBX 的具体案例感兴趣。
java - Jibx - 如何解组/编组带有值和属性的标签?
对不起,伙计们,我不是故意偷懒的。好的,这是问题:我有上面的 xml 块的 xml 结构,其中一些标签在标签表示法中同时具有值和属性(MyTag 的值为 12 并且具有属性名称)。使用 Jibx 如何为这种情况创建绑定模式。显然对于只有值的xml标签或没有标签值的属性是正常的,但是当你同时拥有它们时我不知道该怎么做。谢谢。
java - 使用 Spring MVC 和 JIBX 编组不同的类
我们正在尝试使用 Spring MVC 构建一些 RESTful 服务。我们将提供几种表示形式:XML、HTML 和 JSON。我们想使用 JiBX 作为 OXM 技术。
我们目前很难弄清楚如何将 Spring 与 JiBX 连接起来。例如,如果我们想连接一个类,Customer
我们只需定义一个JibxMarshaller
XML MarshallingView
,然后将它添加到我们的ContentNegotiatingViewResolver
. 这很好用。
问题是我们不确定如何连接多个类的编组,例如,Customer
和User
. 每个JibxMarshaller
只能支持一个类(与可以支持多个类的 Jaxb2Marshaller 不同)。我们尝试为每个类声明一个编组器,但MarshallingView
唯一支持一个编组器。声明多个MarshallingView
s 不起作用(它似乎只有第一个起作用)。
感谢您的建议。谢谢。
根据以下 Ritesh 的回答进行更新:
原来我是targetClass
被JibxMarshaller
. 我认为这意味着编组器仅适用于单个类,但是,它似乎只是使用目标类作为查找所有相关绑定的一种方式。因此,解决方案是仅使用一个编组器,使用您绑定的一组类中的任意目标类。例如:
jibx - 使用自定义 JiBX 编组器的抽象映射
我创建了一个自定义 JiBX 编组器并验证了它的工作原理。它通过执行以下操作来工作:
但是我需要为不同的 HashMaps 创建多个编组器。所以我尝试用这样的抽象映射来引用它:
但是,这样做时,当我尝试构建绑定时,我会收到以下信息:
我的猜测是,要么我遗漏了一些我需要实现的东西来启用我的自定义编组器进行抽象映射,要么自定义编组器不支持抽象映射。
我在 JiBX API ( http://jibx.sourceforge.net/api/org/jibx/runtime/IAbstractMarshaller.html ) 中找到了 IAbstractMarshaller 接口,但是我似乎不清楚这是否是我需要实现的文档,以及它是如何工作的。作为示例,我无法找到该接口的实现。
我的问题是,您如何使用自定义编组器进行抽象映射(如果可能的话)?如果它是通过 IAbstractMarshaller 接口完成的,它是如何工作的和/或我应该如何实现它?