问题标签 [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.
json - 使用 JAXB 对对象数组进行 JSON 封送处理
使用 MOXy 我正在尝试将这样的 java 类编组为 JSON:
我希望是这样的:
但 JSON 输出结果为:
从哪里来value
?
如果我@XmlElementWrapper
在参数字段上加上一个,它会变得更糟:
我的 JUnitTestCase
看起来像这样:
xml - @XmlAnyElement、DomHandler 和完全未知的 Xml
我一直在关注Blaise Doughan 的博客。
在这个例子中,我们只修剪了<bio>........</bio>
部分。所以输出是
没有修剪,字符串看起来像
1.我们将bio映射为一个元素,但是为什么它匹配为一个完整的xml?( <xml ..>
)
2.在我的情况下,我没有任何未知Xml的预定义标签,所以我不确定我的未知Xml的结构是什么,那么我怎样才能只获得元素部分?每次我避免修剪代码时,我都会在我的主 xml 中得到一个小的新 xml。
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 应用商店应用程序的错误还是有足够的解决方法?
谢谢。
java - 具有默认命名空间的 JAXB @XmlAnyElement 在编组时添加前缀
我有一些 JAXB 类应该映射可能包含它应该保留的未知元素的 XML。
我为此创建了一个带有两个类的小测试用例Thing
,Subthing
其中Thing
还有一个@XmlAnyElement List<Element>
属性。
源 XML,添加了换行和缩进以提高可读性:
解组和编组后的结果,再次格式化以提高可读性:
请注意,div 元素现在有一个 div 命名空间前缀和相应的属性。它是有效的并且等效于输入,但我不相信以后应该使用它的任何东西都会正确处理它(特别是因为在这种情况下它是 html(即使它是 xhtml),但它也可能是其他东西)。
我使用调试器检查了未编组的对象,并且 DOM 元素没有前缀,因此编组器似乎添加了此前缀。
有什么办法可以防止这种情况发生吗?
完整来源:
java - @XmlAnyElement 不会解组为特定的 Java 类型,而是停在 JAXBElement
为了学习如何使用@XmlAnyElement
,我创建了以下测试服务:
SimpleObj
int
是一个有 2 个字段的简单类。下面是ServiceResult
该类的代码:
为了使用上述服务,我创建了一个具有以下Main
类的 appclient:
根据文档,@XmlAnyElement
解组器将急切地将此元素解组为 JAXB 对象。但是,我观察到的是 JAXB 仅JAXBElement
将我的对象解析为SimpleObj
.
如果您能告诉我如何SimpleObj
摆脱ServiceResult
.
更新:
下面是SimpleObj
课程:
java - JAXB MOXy 编组和解组对象的通用集合(包括字符串和原始包装器)
我在使用 MOXy 编组和解组集合时遇到问题。集合可以包含任何类型的元素。在下面的测试用例中,我试图编组然后解组字符串的集合。
测试生成以下输出:
在 XML 的情况下,我希望集合元素被序列化为包含值的嵌套列表 xml 元素,但事实并非如此。
在 JSON 生成的代码看起来不错的情况下,但我希望对象能够正确解组,这并没有发生。
当我使用 Collection of SimpleObject(取消注释行标记为简单对象)运行测试时,一切都像 sharm 一样工作,产生的输出如下:
了解它为什么会发生以及必须如何正确完成此映射的任何线索。
测试用例:
java - 解组时目标 Java 对象中字段的 MOXy 顺序很重要
MOXy 中似乎有一个错误。当类 Request 中的字段声明为 metaInfo 然后是 content 时,下面的代码可以完美地工作,但是当字段以相反的顺序声明时(首先是内容,其次是 metaInfo),解组时测试失败并出现异常。
这是重现问题的测试。
请问有什么问题吗?
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 类的对象?
java - JAXB ANY 元素添加编组错误 javax.xml.bind.JAXBException: class *** 或其任何超类对此上下文都是未知的
我从 xsd 获得了这个自动生成的代码(从 CAURequest.java 中提取):
现在我需要使用从其他自动生成的代码(从 EuriscIVA.java 中提取)添加的“任何”元素:
这是我合并这些东西的一段代码:
直到这里一切正常(我在调试变量窗口中看到它)。
之后我做了:
EuriscIVA 是应该添加到第一类的第二类。
我做错了什么?