【发布时间】:2013-11-22 14:12:37
【问题描述】:
我目前正在尝试使用 MOXy 中的 DynamicJaxbContext 解组以下 XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://somehost.com/schema_schedule_request.xsd">
<header>
<originator>MySatelliteCompany</originator>
<recipient>Recipient</ recipient>
<schedule_valid_from>2008-12-17T00:00:00Z</schedule_valid_from>
<schedule_valid_to>2008-12-18T00:00:07Z</schedule_valid_to>
<request_reference>HGT4285T3</request_reference>
<generation_time>2008-12-16T08:24:00Z</generation_time>
</header>
<body>
<schedule_request>
<start_time>2008-12-17T09:30:47Z</start_time>
<end_time>2008-12-17T09:33:47Z</end_time>
<satellite_name>MySat</satellite_name>
</schedule_request>
</body>
</request>
它可以工作,但是动态创建的 Java 类的属性与 XML 中给定的字段不对应。例如:<satellite_name> 被解组为“satelliteName”。这使得为我的后端 API 编写自定义绑定文件变得非常困难,因为我必须首先解组我将作为输入获得的所有 XML 文件并手动写下相应的属性名称或编写另一个帮助应用程序来为我执行此操作。
有什么方法可以改变这种 MOXy 行为,以便正确地解组 XML 中的字段名称?
补充: 所以我在 MOXy 文档中找到了原因:
在元数据中找到的 XML 名称(复杂类型名称、元素名称、 属性名称)将根据 “附录 D:将 XML 名称绑定到 Java”中描述的算法 Java Architecture for XML Binding (JAXB) 2.2 的标识符” 规范 (http://jcp.org/en/jsr/detail?id=222)。 - 更多信息请访问: http://www.eclipse.org/eclipselink/documentation/2.4/moxy/dynamic_jaxb001.htm#BABCDJDF
但我的主要问题仍然存在:有没有办法关闭它或修改这种行为?
【问题讨论】: