问题标签 [unmarshalling]
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 - 推土机:从基类中删除字段
我有很多扩展单个基类的类。在进行推土机映射时,我想做的是为基类创建一个映射,并在映射任何子类时引用该映射。
例如:
所以当我做类似的事情时
生成的 customMap 排除了 valueA。
java - 是否可以使用 XStreamMarshaller 在生成的 XML 源中显示“<”或“>”
我一直在尝试使用 XStreamMarshaller 在我的 Java Spring 项目中生成 XML 输出。我生成的 XML 在元素文本中有 CDATA 值。我在命令对象中手动创建这个 CDATA 文本,如下所示:
XStreamMarshaller 生成的元素(下面的文本数据是别名)为:
上面的 XML 显示符合预期(请忽略上面元素名称中的反斜杠:论坛格式)。但是,当我对生成的 XML 输出执行查看源代码时,我看到了元素:<text-data><![CDATA[cdata-text]]></text-data>
.
问题:
如您所见,小于和大于字符已被替换为<
和>
查看源代码。我需要我的客户读取源代码并从 XML 输出中识别 CDATA 部分,这在上述场景中不会。
有没有办法让 XStreamMarshaller 转义我提供的文本中的特殊字符?
我已将 Marshaller 的编码设置为 ISO-8859-1,但这也不起作用。如果 XStreamMarshaller 无法完成上述操作,您能否建议可以为我执行此操作的备用编组器/解组器?
// 按照下面 Paŭlo Ebermann 的建议显示我的 XML 和查看源代码:
XML 视图(在 IE 中显示):
查看源代码:
非常感谢你。
java - 解析 web 服务响应的问题 (Metro/JAXB)
我之前从 WSDL 生成了 Metro/JAXB 客户端,并且 Java 类与 SOAP/XML 之间的编组/解组工作没有任何问题。我已经生成了一个新客户端,似乎存在解组问题,我不知道为什么。WSDL 非常大(> 27,000 行),我不得不使用 -B-XautoNameResolution,因为除了大小写之外,某些元素名称是相同的。
我正在尝试执行此方法/操作:
此方法将返回订阅者数据以及订阅者总数。我的电话看起来像这样:
我在结果对象上得到一个 NullPointerException。我已经跟踪了 SOAP 调用,并且返回的 XML 与预期的一样,包括一个 Result 元素。
我以前从未遇到过 WebParam.Mode.OUT。在我拨打电话之前应该初始化 Holder<> 实例吗?到什么?
这些元素被包装在 SOAP 中的 GetSubscriberListResult 元素中,但由于接口方法在@ResponseWrapper 中定义了该元素,因此我希望将它们解组到传入的对象中。也许我需要做些别的事情?
非常感谢任何建议/帮助!
xsd - 我可以在我的 xsd 架构中创建接口吗?
在我的模式中,我有一个名为“TypeGroup”的基类和一些从它扩展的类。每个类都有一个不同类型的成员“值”。
在我的程序中,我得到了“TypeGroup”类实例,我想从扩展类中获取“值”。
我想在基类“TypeGroup”中创建成员类型“对象”,但我不知道该怎么做。
我想要一些想法来解决我的问题
谢谢; 投资回报率
spring - 创建一个 JAXB Unmarshaller 池
我正在四处寻找一种方法来提高处理大量文件集的 JAXB 解组性能,并找到了以下建议:
“如果您真的关心性能,和/或您的应用程序将读取大量小文档,那么创建 Unmarshaller 可能是一项相对昂贵的操作。在这种情况下,请考虑合并 Unmarshaller 对象”
在网上搜索以查找此示例并没有返回任何内容,因此我认为使用 Spring 3.0 和 Apache Commons Pool 将我的实现放在这里可能会很有趣。
UnmarshallerFactory.java
UnmarshallerPool.java
在您需要 JAXB Unmarshaller 的课程中:
这个例子很天真,因为它只使用一个 Class 来创建 JAXBContext,并使用与 Keyed Pool 的 Key 相同的 Class 实例。这可以通过传递一个类数组作为参数来改进,而不是只传递一个类。
希望这能有所帮助。
java - 与 XSLT 相比,JAXB 有什么好处?
几天来,我一直在思考这个问题并尝试了不同的方法,并且搜索了 SO(请参阅将 XML 转换为 Java 对象的最佳实践是什么?)以及 Google 使用 JAXB over XSLT 但不能找到合适的答案。多年来,我在各种项目中使用过 Castor、JIBX 和 XSLT,因此我对 XML 绑定有所了解。
我的问题是我有一个非常扁平的 XML 结构,我想将它解组为 Java 类并将它们直接保存到关系数据库(必须是 Oracle)。一个小例子...
对于上面的 XML,我真正想要的只是 OneToOne 关系中的两个简单带注释的类,我可以使用 JPA 持久化它们。基本上我想要像这样反映数据库表的类:
XML 只会被解组,我真的在寻找这个问题的最简单的解决方案,我意识到这可能是一个主观问题。
我是 XSLT 的粉丝,所以我真的想问如果使用 XSLT 将原始 XML 弯曲成更好的结构,与代码更紧密匹配,然后只使用一些非常简单的 JAXB 注释来绑定到我的类,这是否是一个好的设计。或者我应该选择使用 JAXB 进行“转换”,我认为这将涉及更多实际的 Java 代码,例如XMLAdapter
s 和更多注释。基本上,与 XSLT 相比,JAXB 有什么好处,或者还有什么其他好处?
java - @XmlElements 和 @XmlJavaTypeAdapter 不能一起工作
我在 JAXB 解组时遇到了一个小问题,因为我的输入 XML 可以由两个元素之一包装,例如:
或者
我的根类使用 @XmlJavaTypeAdapter将Channels解组为 HashMap,下面的代码按预期工作。
其中Channels类是:
频道是:
最后ChannelAdapter是:
但是我认为我可以替换@XmlElement(name="Update")
为
但这会导致空地图。
硬编码@XmlElement(name="Update")
或@XmlElement(name="Erase")
与一个或其他输入 XML 文档一起工作,但我需要一些可以与任何一个包装器元素一起工作的东西。我尝试使用 a@XmlElementWrapper
但它只能用于集合或数组属性,因为allChannels是一个 HashMap,所以它不起作用。
我能否解释一下我对@XmlElements
注释的误解以及使其正常工作的方法?谢谢!
java - 如何在解组之前了解 Schema
设想:
我正在尝试重构一个代码,该代码要求用户选择一个 xml 文件,该文件假设遵循 2 个给定模式中的任何一个。现在,代码正在尝试使用Schema A Unmarshaller
. 如果失败,它会尝试使用Schema B Unmarshaller
. 如果两者都失败,则通过向用户显示适当的消息来拒绝文件。
问题:
这里的程序流程取决于Exception
throw by unmarshal()
。
问题:
有没有办法知道unmarshaller
我们应该尝试解析文件,所以我们马上去寻找正确的解组器?此外,这还有助于我们拒绝所有不符合任一模式的无关 XML 文件。
java - JAXB 解组集合
我有一个 XML 文档:
和两个 POJO:
我想使用 JAXB 检索 XML 节点的值。我写了这个快速代码:
当我运行它时,我总是得到零值。
java - JPA 持久性属性干扰 JAXB
我有一个用于解组 xml 流的 JAXB/Entity 对象库。我可以毫无问题地作为 Java SE 应用程序运行。我已将所有内容转移到使用 Netbeans 6.9 和 Glassfish 3.01 的 Java EE 应用程序中。我现在遇到了一些异常,如下所示。
我的问题是我的enties/jaxb 文件中的任何地方都没有xml 元素或变量_persistence_productBase_vh。我假设这是由 Glassfish 和 EclipseLink 添加的。有谁知道有什么方法可以忽略这些属性?这是 xml 中的实体和示例。