我正在尝试将 xjc 生成的全大写类名更改为 CamelCase。为了实现这一点,我编写了一个 Python 脚本来生成绑定文件。这是脚本的一部分:
def generate_bindings_for_node(node_type, xpath):
for node in root.findall(xpath, namespaces):
name = node.get('name')
if name:
unique_xpath = f"{xpath}[@name='{name}']"
bindings = ET.SubElement(bindings_root, 'jaxb:bindings', {
'node': unique_xpath
})
ET.SubElement(bindings, node_type, {
'name': to_camel_case(name)
})
但是,当运行我的Python脚本来创建绑定文件时,我遇到了许多如下错误:
[错误]“.//xsd:element[@name='CONTEXT-COMPONENT-REF']”XPath 评估导致目标节点过多 (16)
这是 XSD 文件的链接[链接]这是 XSD 文件的链接。
谁能帮忙解决CamelCase生成类名的问题吗?
为了消除绑定文件中的以下消息:
[错误]“.//xsd:element[@name='CONTEXT-COMPONENT-REF']”XPath 评估导致目标节点过多 (16)
您可以将
multiple
属性与以下值之一一起使用 true
/ yes
/ 1
这将告诉 XJC,如果该节点针对多个 XPath,这是正常的,他可以继续。
供参考:您还可以使用具有以下值之一的
required
属性 false
/ no
/ 0
这将告诉 XJC 如果 XPath 不匹配任何节点,那么这并不重要,他可以继续进行。
当 XJC CamelCase Plugin 将以 jakarta 形式提供时(在 jaxb-tools 4.0.1 中),最好的选择是使用此插件并删除绑定文件。