Tag: jaxb2

如何使用其他JAXB插件在Eclipse中生成JAXB类

我正在使用Eclipse LUNA生成JAXB类。 我试图使用jaxb2-annotate-plugin为我的模式派生类添加任意注释。 我的限制是我无法更改相关的xsd,我不想修改生成的类。 如何在Eclipse中生成JAXB类时激活jaxb2? 我需要做的就是执行与使用@XmlType.namespace注释相同的操作。 我右键单击我的xsd文件,选择Generate> JAXB Classes … 我无法通过此错误[错误]不支持的绑定命名空间”annox.dev.java.net”;.

Jaxb 2将不同的元素映射到同一属性

我想知道这是否可能在jaxb2中。 我有一个可以是或的xml,它在某个时候永远不会出现。 它们都是String类型,我希望它映射到我的java类中的相同属性。 在jaxb2中有没有办法配置它? 谢谢查理

在解组操作期间将nil =“true”转换为null

我从服务器接收XML,其架构几乎指定了每个元素: 我正在尝试找到一种干净的方法,将我收到的标记为xsi:nil=”true”每个元素转换为null,当它被解组到JAXB对象中时。 所以这样的事情: 应该导致我的JAXB对象具有值为null的myIntElementName属性,而不是具有nil属性设置为true的JAXBElement对象(或沿着这些行的任何内容)。 我对发送给我使用nillable属性的XML的系统没有任何控制权,所以当我收到它时,我需要在我的结尾转换它。

JAXB解组未知XML内容的子集

我需要unmarshall组未知XML内容的子集,使用该未编组对象,我需要修改一些内容并使用原始XML重新绑定相同的XML内容(子集)。 示例输入XML: Robin SM Active ….. 需要通过将其他XML部分保持相同来单独解组标记。 需要修改标记中的元素并将修改后的XML部分与原始文件绑定,如下所示: 预期输出XML: Robin_123 Senior Member 1 ….. 我的问题: 这个要求的可能解决方案是什么? (除了DOM解析 – 因为XML contnet非常庞大) 在JAXB2.0有没有选择呢? 请提供您的建议。

java.util.Map属性的Jaxb名称空间

我有一个包含hashmap的简单类: @XmlRootElement() public class Customer { private long id; private String name; private Map attributes; public Map getAttributes() { return attributes; } public void setAttributes(Map attributes) { this.attributes = attributes; } @XmlAttribute public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } […]

使用基本身份validation从wsdl url生成java类

我正在尝试从WSLD文件生成java类,该文件使用基本身份validation。 虽然有很多插件,但我必须使用以下org.jvnet.jaxb2.maven2:maven-jaxb2-plugin : org.jvnet.jaxb2.maven2:maven-jaxb2-plugin 使用wsimport或wsdl2java我找到了配置基本身份validation参数的方法。 使用maven-jaxb2-plugin我没有运气。 我的配置如下: org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.13.2 generate com.mycompany wsdl 2.2 https://some-url?wsdl target/generated-sources/xjb false true 正如预期的那样,构建失败并显示以下消息: Caused by: java.io.IOException: Server returned HTTP response code: 401 for URL: https://some-url?wsdl at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:647) at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument(XSDHandler.java:2275) … 36 more 有关基本身份validation配置的任何想法? […]

使用JAXB生成的XML中的重复字段

这是我的情景。 我有一个通用类: public class Tuple extends ArrayList { //… public Tuple(T …members) { this(Arrays.asList(members)); } @XmlElementWrapper(name = “tuple”) @XmlElement(name = “value”) public List getList() { return this; } } 和一个儿童class: public class StringTuple extends Tuple { public StringTuple(String …members) { super(members); } //explanation of why overriding this method soon … @XmlElementWrapper(name = “tuple”) @XmlElement(name = […]

Jaxb 2.0 Schemavalidation问题

我正在使用Jaxb 2.x并尝试使用以下教程使用给定的XSDvalidationXML文档 教程链接 她是我写的代码 unmarshaller.setSchema(schema); SAXSource source = new SAXSource(new InputSource(xmlFileLocation)); Validator validator = schema.newValidator(); validator.setErrorHandler(new XMLErrorHandler()); try { validator.validate(source); } catch (SAXException e) { 我的XMLErrorHanlder类有以下签名 public class XMLErrorHandler implements ErrorHandler { public void error(SAXParseException exception) throws SAXException { xmlUnmarshaller.setValidationFlag(true); log.error( “Line:Col[” + exception.getLineNumber() + “:” + exception.getColumnNumber() + “]:” + exception.getMessage()); exception.printStackTrace(); } } […]

你如何在Java 11中调用schemagen?

根据Oracle文档,作为JEP 320( http://openjdk.java.net/jeps/320 )的一部分,schemagen工具将从JDK中删除。 JEP指向现在提供缺失工具的Maven工件。 JEP中工件的坐标是错误的,更新的坐标可以在这个问题的答案中找到: 我应该在Maven项目中使用哪些工件用于JAXB RI? 然而,缺少的是如何调用工具。 JEP中指向的shell脚本位于JAXB-RI Git存储库中。 但是,这些脚本仍然没有文档,很难调用。 该git repo中的构建指令表明它是使用标准的“mvn clean install”构建的,但是它不会产生与此处文档中使用的“bin”文件夹相匹配的输出结构: https : //javaee.github.io /jaxb-v2/doc/user-guide/ch04.html#tools-schemagen 理想情况下,我想从Gradle运行schemagen,避免使用shell脚本,因为它们不是从maven依赖项中获取的。 我当前的尝试改编自调用旧的schemagen.exe的工作版本,如下所示: (’real’build.gradle文件中有更多内容用于指定我的应用程序的依赖项等) configurations { schemagenTool } dependencies { schemagenTool “org.glassfish.jaxb:jaxb-jxc:${jaxbVersion}” } task schemaGen(type: Exec, dependsOn: [compileJava,configurations.schemaGenTool]) { workingDir projectDir executable ‘java’ doFirst { file(‘build/Schemas’).mkdirs() args ‘–module-path’, “${configurations.schemaGenTool.asPath}”, ‘-m’, ‘jaxb.jxc/com.sun.tools.jxc.SchemaGeneratorFacade’, // Note: automatic module name […]

将对象转换为JAXBElement

我想实现一个返回JAXBElement的方法,下面是代码 @XmlRootElement(name = “history”) @XmlAccessorType(XmlAccessType.FIELD) public class IBHistoryInfo { @XmlElement(name=”trade”) private List mTrade; public void updateTradeValue(int reqId, String date, double open, double high, double low, double close, int volume, int count, double WAP, boolean hasGaps){ IBTradeInfo info = new IBTradeInfo(); info.setReqId(reqId); info.setDate(date); info.setOpen(open); info.setHigh(high); info.setLow(low); info.setClose(close); info.setVolume(volume); info.setCount(count); info.setWap(WAP); info.setHasGaps(hasGaps); this.setTradeInfo(info); } public void setTradeInfo(IBTradeInfo […]