jjzjj

jaxb2-annotate-plugin

全部标签

java - JAXB 一步将集合编码为 XmlElement 和 XmlAttribute

我想将集合编码为嵌套属性。现在我有:@XmlElement(name="entry")publicCollectiongetSizes(){...}返回:12但我想得到:如果没有新类,这可能吗? 最佳答案 如果没有新类(class),似乎是不可能的。使用XmlAdapter:classEntryAdapterextendsXmlAdapter{publicEntryAdapter.Entrymarshal(Integerid){returnnewEntry(id);}publicIntegerunmarshal(Entrye){re

java - 无论如何只注释 JAXB 的必填字段

我正致力于使用JAXB将Hibernate对象转换为XML。在我们的类(class)中,我们有大约50个领域,我只需要其中的10个。基本上,我定义了具有2个属性的XmlType#propOrder。JAXB提示说一些公共(public)setter/getter不是proporder的一部分。我看到如果我不使用XmlTransient/XmlElement中的任何一个标记属性,JAXB就会提示它。有什么方法可以跳过在每个字段上写“XmlTransient”吗? 最佳答案 您可以使用@XmlAccessorType(XmlAccess

java - JAXB:如何将元素与命名空间绑定(bind)

他是我在远程机器上托管的XML:LearningJAXBJoeBloggLearningJAXBSEJoeBlogg我有如下装订书:书籍装订:@XmlRootElement(name="book")@XmlType(propOrder={"title","author"})publicclassBook{privateStringtitle;privateStringauthor;privateStringlocation;@XmlElement(name="title")publicStringgetTitle(){returntitle;}publicvoidsetTitle(St

java - 如何使用 xsom\dom\jaxb 获取 xsd 的最大深度?

如何使用xsom获取xsd的最大深度。例如:xsd的每个复杂类型下的元素总数?此外,如果在该复杂类型下存在复杂类型,那么该复杂类型下的元素+属性的数量……使用dom\xsom\jaxbCommentdescribingyourrootelement 最佳答案 其实我只是在找这个。我在API中找不到任何东西,所以昨天找到了一种递归方法。我只是将我的递归方式粘贴到最深处并将它们添加到一个Hashmap中。/**Parsesthexmlschemastringintoahashmap*notethathashmaphasaformofat

java - JAXB 继承冲突 - 在子类上重新注释

我的项目目前有这个环境:publicabstractclassFoo{privateListthings;publicListgetThings(){returnthis.things;}}publicabstractclassBarextendsFoo{@XmlElements({@XmlElement(name="first",type=First.class)})publicListgetThings(){returnsuper.getThings();}}publicclassBobarextendsBar{@XmlElements({@XmlElement(name="sec

xml - 哪个优先级更高 : Spring annotation or xml configuration

如果我有一个使用xml配置和annotation定义的springbean。然后在初始化时,xml或annotations具有更高的优先级。就像我的bean是...packagecom.abc;@ComponentClassDemo{...}我的xml配置是.........现在demobean是使用xml和annotations定义的。初始化时,谁在初始化bean:annotationorxml。 最佳答案 注释注入(inject)在XML注入(inject)之前执行。因此,对于通过这两种方法连接的属性,后一种配置将覆盖前一种配置

java - 使用自定义注释的 Jaxb 编码

我有一个要求,根据字段上标记的自定义注释编码/解码javapojo的一些元素。假设我的javapojp中有3个字段@CustomVersion("v1")privateStringfield1;@CustomVersion("v1","v2")privateStringfield2;@CustomVersion("v2")privateStringfield3;如果我在jaxb中转换时传递version="v1"参数,我只想用v1编码字段。如果我通过v2,所有带有v2注释的字段都应该只被编码。甚至可以使用jaxb吗?我确信通过某些库或方式可以支持选择性编码,经过相当多的搜索后我仍然无法

java - JAXB - 对动态标签名称使用继承

我正在尝试使用JAXB将XML编码到类层次结构中-我希望层次结构以通用方式使用继承。我会更好地解释:我有以下XML:等每个国家可以有多个城市,每个城市可以有多条街道。我想创建一个名为GeneralLocation的类,它看起来像这样:@XmlTransientpublicabstractclassGeneralLocation{privateStringname;protectedListsons;@XmlAttribute(name="name")publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.

java - 在 Jaxb 解码时希望未知属性出错

我正在使用Jaxb将XML解码为Java对象。我需要知道新属性/元素何时在XML中并失败。但是默认情况下,解码器会忽略新元素/属性。当XML中存在POJO中未指定的新属性/元素时,我可以设置为失败的配置吗?我的POJO:importjavax.xml.bind.annotation.XmlAttribute;importjavax.xml.bind.annotation.XmlElement;importjavax.xml.bind.annotation.XmlRootElement;@XmlRootElement(name="ROOT")publicclassModel{privat

java - 当集合为空时省略 JAXB 中的包装器标记

在JAXB中,您可以使用@XmlElementWrapper属性指定标记来包装元素集合。但是,即使集合为空,这些包装标签也会出现(如果集合为null,则不会出现)。如果集合为空,是否有任何方法可以让JAXB省略包装器标签?在集合上使用适配器似乎不起作用,因为JAXB将其解释为意味着它应该将适配器应用于集合中的每个元素。 最佳答案 您可以通过使用MarshalEventCallbacks.@XmlRootElement(name="example")@XmlAccessorType(XmlAccessType.FIELD)public