问题标签 [xmlanyelement]

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.

0 投票
1 回答
2899 浏览

json - 使用 JAXB 对对象数组进行 JSON 封送处理

使用 MOXy 我正在尝试将这样的 java 类编组为 JSON:

我希望是这样的:

但 JSON 输出结果为:

从哪里来value

如果我@XmlElementWrapper在参数字段上加上一个,它会变得更糟:

我的 JUnitTestCase看起来像这样:

0 投票
0 回答
246 浏览

xml - @XmlAnyElement、DomHandler 和完全未知的 Xml

我一直在关注Blaise Doughan 的博客

在这个例子中,我们只修剪了<bio>........</bio>部分。所以输出是

没有修剪,字符串看起来像

1.我们将bio映射为一个元素,但是为什么它匹配为一个完整的xml?( <xml ..>)

2.在我的情况下,我没有任何未知Xml的预定义标签,所以我不确定我的未知Xml的结构是什么,那么我怎样才能只获得元素部分?每次我避免修剪代码时,我都会在我的主 xml 中得到一个小的新 xml。

0 投票
1 回答
272 浏览

windows-runtime - WinRT XmlAnyElement 和序列化

我们有一个 Windows Store 应用程序,它使用 XML 与我们的服务器进行通信以获取请求/响应,并使用 XmlSerializer 进行序列化。我们遇到的问题是我们的一种类型可以包含任意 XML 作为其属性之一。在非 WinRT 应用程序中,使用会一直如此。

这将允许我们在我们的数据库中拥有 XML

在 WinRT 中,不包含 XmlElement,System.Xml.XmlElement 不存在且 Windows.Data.Xml.Dom.XmlElement 不兼容。文档中提到了 XElement,但 XElement 不是受支持的 WinRT 类型,因此如果我尝试使用它,WinRT 项目将无法编译。

这是 Windows 应用商店应用程序的错误还是有足够的解决方法?

谢谢。

0 投票
0 回答
889 浏览

java - 具有默认命名空间的 JAXB @XmlAnyElement 在编组时添加前缀

我有一些 JAXB 类应该映射可能包含它应该保留的未知元素的 XML。

我为此创建了一个带有两个类的小测试用例ThingSubthing其中Thing还有一个@XmlAnyElement List<Element>属性。

源 XML,添加了换行和缩进以提高可读性:

解组和编组后的结果,再次格式化以提高可读性:

请注意,div 元素现在有一个 div 命名空间前缀和相应的属性。它是有效的并且等效于输入,但我不相信以后应该使用它的任何东西都会正确处理它(特别是因为在这种情况下它是 html(即使它是 xhtml),但它也可能是其他东西)。

我使用调试器检查了未编组的对象,并且 DOM 元素没有前缀,因此编组器似乎添加了此前缀。

有什么办法可以防止这种情况发生吗?

完整来源:

0 投票
1 回答
2686 浏览

java - @XmlAnyElement 不会解组为特定的 Java 类型,而是停在 JAXBElement

为了学习如何使用@XmlAnyElement,我创建了以下测试服务:

SimpleObjint是一个有 2 个字段的简单类。下面是ServiceResult该类的代码:

为了使用上述服务,我创建了一个具有以下Main类的 appclient:

根据文档,@XmlAnyElement解组器将急切地将此元素解组为 JAXB 对象。但是,我观察到的是 JAXB 仅JAXBElement将我的对象解析为SimpleObj.

如果您能告诉我如何SimpleObj摆脱ServiceResult.

更新

下面是SimpleObj课程:

0 投票
0 回答
506 浏览

java - JAXB MOXy 编组和解组对象的通用集合(包括字符串和原始包装器)

我在使用 MOXy 编组和解组集合时遇到问题。集合可以包含任何类型的元素。在下面的测试用例中,我试图编组然后解组字符串的集合。

测试生成以下输出:

在 XML 的情况下,我希望集合元素被序列化为包含值的嵌套列表 xml 元素,但事实并非如此。

在 JSON 生成的代码看起来不错的情况下,但我希望对象能够正确解组,这并没有发生。

当我使用 Collection of SimpleObject(取消注释行标记为简单对象)运行测试时,一切都像 sharm 一样工作,产生的输出如下:

了解它为什么会发生以及必须如何正确完成此映射的任何线索。

测试用例:

0 投票
2 回答
527 浏览

java - 解组时目标 Java 对象中字段的 MOXy 顺序很重要

MOXy 中似乎有一个错误。当类 Request 中的字段声明为 metaInfo 然后是 content 时,下面的代码可以完美地工作,但是当字段以相反的顺序声明时(首先是内容,其次是 metaInfo),解组时测试失败并出现异常。

这是重现问题的测试。

请问有什么问题吗?

0 投票
0 回答
69 浏览

java - 从 XSD 生成的类中解析 GPX XML “any”-Element

我正在尝试用 java 解析 Geocaching GPX 文件。这些 GPX 文件基于带有附加 XSD 文件的标准 GPX XSD 文件。

对于类生成,我使用 jaxb-maven-plugin。

除了 pom.xml:

XSD 文件:

我的问题:基本 XSD 定义了一个 any 属性来扩展另一个 XSD。使用以下代码片段解组我的 GPX 文件(使用所有相关类和 ObjectFactory)时:

和一个 GPX 文件(除外)

使用这种组合,我可以创建一些 java 类并解析一个地理缓存 GPX 文件,其中包含在基本 XSD 中定义的所有字段。未编组的对象有一个 getAny() 方法,它返回只包含一个元素的 List。我的 IDE 告诉我该元素属于 ElementNSImpl 类,而不是 Cache。根据一些博客文章,GPX 类和 Cache 类的任何元素都需要特定的注释。但是 maven 插件已经生成了这些注释:

GPX类:

缓存类:

ElementNSImpl 对象中的实际内容包含我的 GPX 文件的所有值。如何直接创建 Cache 类的对象?

0 投票
1 回答
104 浏览

java - JAXB ANY 元素添加编组错误 javax.xml.bind.JAXBException: class *** 或其任何超类对此上下文都是未知的

我从 xsd 获得了这个自动生成的代码(从 CAURequest.java 中提取):

现在我需要使用从其他自动生成的代码(从 EuriscIVA.java 中提取)添加的“任何”元素:

这是我合并这些东西的一段代码:

直到这里一切正常(我在调试变量窗口中看到它)。

之后我做了:

EuriscIVA 是应该添加到第一类的第二类。

我做错了什么?