提问人:M P Lewandowski 提问时间:1/25/2023 最后编辑:M P Lewandowski 更新时间:1/25/2023 访问量:262
JAXB XJC - 从 .xsd 向生成的模型动态添加字段
JAXB XJC - Dynamically adding fields to generated models from .xsd
问:
我正在使用版本从 .xsd 架构文件生成模型。我创建了一个名为的对象,该对象具有以下声明:jaxb2-maven-plugin
3.1.0
BookContext
package com.xmltesting;
import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlTransient;
import jakarta.xml.bind.annotation.XmlType;
@XmlAccessorType(XmlAccessType.FIELD)
public class BookContext {
@XmlElement(name = "LibraryName")
protected String libraryName;
@XmlElement(name = "LibraryAddress")
protected String libraryAddress;
public String getLibraryName() {
return libraryName;
}
public void setLibraryName(String value) {
this.libraryName = value;
}
public void setLibraryAddress(String value) {
this.libraryAddress = value;
}
public String getLibraryAddress() {
return libraryAddress;
}
}
现在,在不修改 .xsd 文件的情况下,我想将 BookContext 对象作为 XmlTransient 字段插入到插件生成的所有模型中。使用绑定/注释是否有任何可能?
BookContext 对象值将由 Listener 在解组过程中设置,我遇到的唯一问题是将字段动态添加到所有生成的模型中。
我尝试创建绑定:
<jaxb:bindings version="3.0"
xmlns:jaxb="https://jakarta.ee/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<jaxb:bindings schemaLocation="book_schema.xsd">
<jaxb:bindings node="//xs:element[@name='Book']">
<jaxb:class name="BookContext"/>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
我也尝试了注释标志,但这个雅加达版本的 maven 插件似乎不支持它。
答: 暂无答案
评论