草庐IT

jaxb-episode

全部标签

java - 使用 jaxb-xjc 生成额外的自定义方法

有一些方法可以在使用JAXB生成的类中生成自定义方法。我搜索了教程,包括oracle的教程,但没有找到关于如何为XML模式中描述的生成类自定义方法的明确说明。 最佳答案 我发现以下是添加自定义行为的最佳方式:https://javaee.github.io/jaxb-v2/doc/user-guide/ch03.html#compiling-xml-schema-adding-behaviors您可以在扩展JAXB生成类BaseType的自定义类BaseTypeExt中为JAXB生成类BaseType实现自定义行为。您还告诉JAXB

java - JAXB @XmlElements 有 minOccurs = 1

所以我想要一个像下面这样用@XmlElements注释的列表@XmlElements({@XmlElement(name="Apple",type=Apple.class),@XmlElement(name="Orange",type=Orange.class),@XmlElement(name="Mango",type=Mango.class)})publicListgetEntries(){returnfruitList;}我想知道是否有办法强制列表至少包含1个元素,因为现在xsd看起来像 最佳答案 我建议检查:@XmlElem

java - 如何使用 JAXB 解码重复的嵌套类?

我如何指示JAXB处理这个?XML根.java@XmlRootElementpublicclassRoot{@XmlElement(name="parent/child")ListallChildren;}这行不通......allChildren是空的。 最佳答案 您可以更改模型并执行以下操作:根@XmlRootElement@XmlAccessorType(XmlAccessType.FIELD)publicclassRoot{@XmlElement(name="parent")ListallParents;}父级@XmlAcc

java - 在 Maven 项目中管理 JAXB 生成的类

我有一个基于Maven的项目,我试图在其中添加一些由“jaxb2-maven-plugin”Maven插件自动生成的JAXB类。然而,我的第一次剪辑让我陷入了循环依赖循环:因为这些JAXB类还没有生成,所以我引用它们的其他来源有编译错误。因为其他来源存在编译错误,所以不会生成这些JAXB类。解决这个问题似乎有两种明显的可能性:注释掉损坏的引用,以便自动生成项目构建和JAXB类。然后将那些生成的源从/target复制到/src/main/java,这样对它们的引用就不会导致编译错误。创建一个完全独立的项目,只包含JAXB内容。将其作为依赖项包含在我的主项目中。我是不是漏掉了什么?选项#1

java - 在 JAXB 编码中使用 BigDecimal

我有一个带有JAXB字段注释的REST网络服务。例如,@XmlAccessorType(XmlAccessType.PROPERTY)publicclassMyClass{privateBigDecimalsum;//+getterandsetter}如果字段“sum”包含大值,例如1234567890.12345,它编码为1.23456789012345E9如何编写仅编码此类的规则? 最佳答案 创建适配器puclicclassBigDecimalAdaptorimplementsXmlAdapter并用于(XmlAccessTyp

java - 来自 java 包的 jaxb.properties 文件未包含在 Maven 构建的 .war 中

我在我的类所在的包中放置了一个jaxb.properties文件,我在其中使用了不同的JAXB提供程序(如此链接SpecifyingEclipseLinkMOXyasYourJAXBProvider中所示),我将其用于解码。发生以下情况:当我从Eclipse/STS运行项目时,解码工作正常,因为它读取jaxb.properties文件。当我使用Maven3(mvncleaninstall)构建项目时,jaxb.properties文件未包含在包中-因此这些类无法成功解码XML文件.然后,我必须通过导航到部署的应用、输入包并粘贴文件来手动放置jaxb.properties文件。解决方案?

java - JAXB 忽略响应 XML 中的 'extra' 元素

我收到了一个XML响应,它不断变化(节点不断增加或减少)。每次更新响应xml后,我的代码都会中断,因为我映射的Java类没有所有文件。如果响应XML发生任何更改,是否有任何方法可以避免我的代码中断。我们将不胜感激。谢谢。 最佳答案 使用JAXB.unmarshal()简单地从XML创建Java对象。默认情况下它是非常自由的。引自javadoc:Inaddition,theunmarshalmethodshavethefollowingcharacteristic:Schemavalidationisnotperformedonthe

java - JAXB、自定义绑定(bind)、Adapter1.class 和 Joda-time

我对JAXB为XML模式生成绑定(bind)类的方式有疑问(为了精确起见,我无法修改)。我想将xsd:date类型映射到Joda-timeLocalDate对象,并读取here,here和here,我创建了以下DateAdapter类:publicclassDateAdapterextendsXmlAdapter{privatestaticDateTimeFormatterfmt=DateTimeFormat.forPattern("yyyyMMdd");publicLocalDateunmarshal(Stringv)throwsException{returnfmt.parseLo

java - jaxb2-maven-plugin 只执行第一次执行

我正在尝试使用JAXB使用jaxb-maven插件将多个XSD转换为不同包中的POJO。我已将其设置为使用多个执行block,第一个执行block执行,然后我收到一条消息:在模式或绑定(bind)文件中未检测到任何更改这是我的pom.xml的摘录:...org.codehaus.mojojaxb2-maven-plugin1.5org.codehaus.mojojaxb2-maven-plugin1.5Application0generate-sourcesxjcsrc/main/webapp/WEB-INF/xsd/version1za.co.mycee.application.mo

java - 嵌套元素列表的 JAXB 注释

我有以下XML:asdasd123asdsad023123sqwerty我将其映射到以下java类:@XmlRootElement(name="mappings")publicclassMappings{@XmlElement(name="mapping")privateListmMappings;publicListgetMappings(){returnmMappings;}publicvoidsetMappings(ListaMappings){this.mMappings=aMappings;}}publicclassMapping{@XmlElement(name="para