jjzjj

java - 如何避免编码元素/标签中不必要的 namespace 声明?

我有一个XSD,它不是自己创建的,而是从另一方收到的。所以我无法更改此XSD,因为我必须确保与对方的兼容性。使用简单绑定(bind)模式的XJC2.2和JAXB2.2我想创建一个根元素,里面有一个空的hello元素。但是当编码时,我得到了很多额外的命名空间废话。对我来说这看起来是不必要的。(虽然它可以工作,但它需要发送更多数据等...)XSD根元素:Java代码:Eppepp=newEpp();epp.setHello("");编码结果:首选结果:或者:有什么方法可以做到这一点,最好是不更改XSD或手动更改XJC编译类? 最佳答案

java - JAXB:生成 "group"和 "attributeGroup"作为接口(interface)声明

我正在尝试使用JAXB/XJC从XSD生成一些高级Java源代码。我想要做的是:在Java上下文中,“group”和“attributeGroup”声明可以看作是“接口(interface)”声明:它们规定了一组特定的功能,这些功能由引用“group”或“attributeGroup”的类型支持。我现在正在寻找一种方法来为每个“group”/“attributeGroup”自动生成接口(interface)声明,同时在各自生成的类上生成接口(interface)实现声明。XJC中是否有插件或设置来实现这一点?您是否知道针对这种情况的任何其他解决方案? 最佳答

java - 包含的 JAXB 剧集编译不起作用

我有2个模式A、B。我在B中重用了一些A元素。我不使用命名空间。我正在使用org.jvnet.jaxb2.maven2maven-jaxb2-plugin0.9.0我已经将模式A包含在模式B中定义为:目录为REWRITE_SYSTEM"classpath:my.schema.A.xsd""maven:my.schema:schema-a!/A.xsd"jaxb配置如下:my.schema.bB.xsdmy.schemaschema-asrc/main/catalog/catalog.cat问题是,无论何时我指定剧集依赖性,架构都不会生成任何类,即使它包含一些我想为其生成类的B元素也是如

java - 使用 fractionDigits 为 BigDecimal 进行 JAXB 编码

所以这是我的问题。我得到了一个XSD,我生成的XML文件应符合该XSD。使用org.apache.cxf.cxf-xjc-pluginmaven插件和外部绑定(bind)文件生成源代码。但是当我尝试编码我的对象时,生成的XML不符合我的要求。我的XSD包含以下内容:...生成的XML片段如下所示:109.5...10.25虽然我期待它是:109.50...10.25000有没有办法以干净的方式解决这个问题?我不想为每个totalDigits、fractionDigits组合编写多个适配器。由于XSD可能会发生变化,因此我希望保持生成的源代码不变。 最佳答案

java - xs :integer produces @XmlElement with "type=String.class" 上的 JAXB javaType 自定义

当使用XJC从XSD生成Javabean时,我需要映射xs:integer至Integer而不是BigInteger.我添加了一个javaType标记到我的JAXB自定义文件(如本网站的许多答案中所述),并且工作正常。但是在生成的代码中我注意到@XmlElement标签现在有一个type=String.class参数.所以现在我想知道,为什么String?是因为parse和print方法正在从/向字符串对象转换吗?我试过xjc:javaType而不是jaxb:javaType,允许我替换生成的Adapter1自定义MyAdapter,但发生了完全相同的事情。如果这是正常的XJC行为,是

java - 使用 maven-jaxb2-plugin 生成 java 源代码时,如何为集合启用 setter?

我正在使用maven-jab2-plugin从XSD模式生成POJO。我生成的类没有任何集合字段的setter。如何为集合生成setter?谁能解释默认不启用setter的原因? 最佳答案 使用Settersplugin包含在JAXB2-Basics中,如文档所述here.我已经复制粘贴了他们的用法示例(并对其进行了修改以专门显示setter):org.jvnet.jaxb2.maven2maven-jaxb2-plugin0.7.0generate-Xsettersorg.jvnet.jaxb2_commonsjaxb2-basi

java - 如何使用 JAXB/XJC 将 XML 文件转换为对象?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预期结果。另请参阅:StackOverflowquestionchecklist关闭9年前。Improvethisquestion我一直在研究JAXB和XJC,但来自outthere的文档,包括Oracle页面和这里的一些StackOverflow问题,我认为没有明确定义JAXB和XJC之间的区别以及如何使用它来将XML文件转换为对象。所以根据我的理解,JAXB是用于XML->Java解析的方法,反之

Java编译速度

我有一个包含约2400个类的Java项目。它们主要是使用XJC从带有一些扩展的XML模式生成的。编译需要很长时间,大约20分钟,我想知道我是否可以做些什么来改进它?一个类似的项目有大约一半数量的生成类,而是几个手写类,总共约3000个类。这会在2-5分钟内完成编译。我正在使用Java8(Windows上为1.8.0_92)进行编译,但使用的是源版本和目标版本6(因此问题不在于Java8上的慢速类型系统)。使用Maven-compiler-plugin3.5.1使用Maven3.3.3完成编译。我正在从Maven中fork编译器并使用maxmem2048m。生成的类通常很小,但我有一个庞

java - 使用 xjc 和绑定(bind)为通用 XSD 定义包名称

我正在尝试使用xjc从几个特定的​​XSD生成Java类。这些模式有一些共同的定义,因此它们导入了许多共同的XSD。特别是,它们可以包括从零到所有常见的XSD。我想生成从特定XSD到特定包的所有类,但将为公共(public)模式生成的类保留在公共(public)包中,这样它们就不会为源树中的每个特定模式重复。我了解到自定义绑定(bind)可用于在每个模式的基础上指定包,例如:我有以下结构:schemas|-common||-common1.xsd-->XSDwithcommontypes#1||-...||-commonN.xsd-->XSDwithcommontypes#N||-co

java - 使用选项 "-Xinject-code -extension "使用 XJC+xsd+jxb 插入代码

我正在尝试使用xjc的扩展名"-Xinject-code"将一些代码添加到我生成的类中。对于以下简单的xsd模式.....我关联了以下绑定(bind):@OverridepublicStringtoString(){returnthis.getName();}运行xjc产生以下输出:$xjc-target2.1-verbose-Xinject-code-extension-d.-pgenerated-btest.jxbtest.xsdparsingaschema...compilingaschema...[INFO]generatingcodeunknownlocationgenera