【java – 使用XSLT将一个JAXB对象转换为另一个JAXB对象】教程文章相关的互联网学习教程文章

java – JAXB中没有根元素的XML【代码】

我想知道是否有一种方法来创建一个对象,使得这样的对象列表不需要根元素.例如,如果我想创建一个类似的XML<Dogs><Dog>A</Dog><Dog>B</Dog><Dog>C</Dog> </Dogs>我可以拥有将成为根元素的Dogs类并且具有List< Dog>.现在假设我想摆脱封装元素< Dogs>.所以狗的名单看起来像<Dog>A</Dog> <Dog>B</Dog> <Dog>C</Dog>我应该如何构建我的课程?解决方法:在XML中,这是不可能的. http://www.w3.org/TR/xml/#NT-document的规范清楚地表明文档有...

java – 如何使用JAXB将子元素分隔为单独的Collection属性?【代码】

我有来自供应商的以下XSD片段,我无法更改它的指定方式:<xsd:element name="navmap"><xsd:complexType><xsd:choice minOccurs="0" maxOccurs="unbounded"><xsd:element ref="navitem"/><xsd:element ref="debug"/></xsd:choice><xsd:attribute name="focus" type="xsd:string" use="optional"/></xsd:complexType> </xsd:element>现在没有自定义它会生成以下代码@XmlElements({@XmlElement(name = "navitem", type = Navitem.class...

java – JAXB – 如何根据XML值设置XML元素的xsi:type?【代码】

我必须生成一个xml元素,它可以具有任何“基本类型”(xsd:string,xsd:boolean等)作为值.例子:<field xsi:type="xsd:string" name="aString">String Value</field> <field xsi:type="xsd:date" name="aDate">2011-10-21</field> ...所以,我试过两个实现:public class Field {@XmlAttributeprivate String name;@XmlValueObject value; }和……public class Field<T> {@XmlAttributeprivate String name;@XmlValueT value; }我正在...

java – 在Jackson / Jaxb中打开一个元素【代码】

我正在使用Jersey Jackon制作一个与JSON一起使用的REST API. 假设我有一个类如下:@XmlRootElement public class A {public String s; }这是我使用该类的泽西方法:@GET @Produces(MediaType.APPLICATION_JSON) public Object get(@PathParam("id") String id) throws Exception{A[] a= new A[2];a[0] = new A();a[0].s="abc";a[1] = new A();a[1].s="def";return a; }输出是:{"a":[{"s":"abc"},{"s":"def"}]}但我希望它是这样的:...

java – 为什么JAXB说“xxx是一个接口,而JAXB无法处理接口”.即使生成的类不是接口【代码】

我使用JAXB来绑定我的xsd,然后尝试创建JAXBContext:JAXBContext jaxbContext = JAXBContext.newInstance("my package name");但是JAXB提供了180个IllegalAnnotationsException. 大多数例外都有以下消息: > XXX是一个接口,JAXB无法处理接口> XXX没有no-arg默认构造函数> @ XmlAttribute / @ XmlValue需要引用映射到XML文本的Java类型. 当我查看生成的类时,它们都不是接口,我无法理解为什么JAXB将它们解释为接口. 这是JAXB报告的错...

java – JAXB解组错误后文件被阻止的文件【代码】

我有一个JAXB marshall / unmarshall进程工作正常,除此之外:有时我必须解组的文件是空的或格式不正确,因此unmarshall抛出异常.这没关系,但是在这个异常之后,我的文件解组(源xml文件java对象)被阻止了.我不能用它. 我注意到这个尝试在unmarshall异常后立即删除或重命名文件.如果没有异常发生,那么文件可以毫无问题地使用. 有没有办法“解锁”这些文件?我认为必须有任何方法来释放,关闭或释放已阻止我的文件的JAXB上下文或unmarsha...

java – 如何减少JAXB上下文开销?

我有一台服务器使用CXF公开多个Web服务.我使用JAXB进行XML序列化.我在JAXB上下文中有大约3000个类,这需要60 MB的内存,这对我的环境来说太多了.是否有提供Web服务/ XML序列化的轻量级替代方案? (其他实施)我尝试使用标志com.sun.xml.bind.v2.runtime.JAXBContextImpl.fastBoot但它没有显着改变内存使用情况.*我已经为整个系统保留了一个上下文解决方法:CXF支持除JAXB之外的数据绑定,例如XMLBeans,Aegis等.交换数据绑定非常简单.您可...

java – JAXB编组由XmlAdapter创建的ArrayList【代码】

我想使用XmlAdapter调整HashMap字段的XML表示.我使用ArrayList来做到这一点.但是,当编组ArrayList时根本没有编组.这是为什么? 代码@XmlRootElement public class Foo {private HashMap<String, String> hashMap;public Foo() {this.hashMap = new HashMap<String, String>();}@XmlJavaTypeAdapter(HashMapAdapter.class)public HashMap<String, String> getHashmap() {return hashMap;}public void setHashmap(HashMap<String, St...

java – JAXB和继承在编组时起作用;但不是解组【代码】

我想编组/解组继承另一个类的类的对象. 我从课程开始:import java.util.List;public class Thing {private List<String> strings;public List<String> getStrings() {return strings;}public void setStrings(List<String> strings) {this.strings = strings;} }我扩展了这个类并使用JAXB注释对其进行注释.import java.util.List; import javax.xml.bind.annotation.*;@XmlRootElement public class JaxbThing extends Thing {// ...

java – 创建JAXB对象的正确方法【代码】

我注意到jaxb编译器xjc生成的ObjectFactory类.我读了一些关于它的目的. 我想知道什么是创建jaxb对象的正确方法,因为我的目的我根本不需要这个类.即使是普通的构造函数,我是否应该总是使用ObjectFactory,或者我可以通过普通的构造函数构建对象(什么工作正常)? 编辑:添加示例: 我需要创建IpAddress的实例 这是工厂方法:public IpAddress createIpAddress() {return new IpAddress();}是不是更好IpAddress ia = new IpAddress() 要...

java – 从jar中为类文件生成jaxb Xsd模式【代码】

我想从jar中的类文件生成jaxb xsd模式.目前,我使用jaxb2-maven-plugin使用java文件生成模式.<plugin><groupId>org.codehaus.mojo</groupId><artifactId>jaxb2-maven-plugin</artifactId><version>${maven.plugin.jaxb2}</version><executions><execution><id>schemagen</id><goals><goal>schemagen</goal></goals><phase>process-classes</phase><configuration><quiet>true</quiet><includes><include>com/someProject/domain/*.j...

java – JAXB编组,忽略nillable【代码】

我有一个带有注释nillable = true的变量的类,我不希望它们出现在xml中.该类是从xsd生成的,不能更改. 例:一个看起来像这样的事情的班级:public class Hi {...@XmlElement(name = "hello", nillable = true)protected Long hello;... }使用JAXBContext创建的marshaller对象进行编组.生成的xml变成:... <hello xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/> ...Hi类是从不能改变的xsd生成的.我的问题是...

从Java 1.6切换到1.7会导致JAXB异常【代码】

我最近遇到了一个依赖于UPS Tracking API的遗留应用程序的问题. UPS改变了他们的通信协议以要求TLSv1.2.不幸的是,jdk 1.6的最新公共版本似乎不支持这个协议,所以我的选择是支付oracle支持合同或升级到jdk 1.7.我升级到1.7 我更改了项目的依赖项,一切都很好.当我尝试实际部署到应用程序服务器时,它失败并显示错误:com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1counts of IllegalAnnotationExceptions java.lang.Sta...

java – JAXB:Unmarshalling并不总是填充某些类?【代码】

我有一个JAXB类生成问题,我希望得到一些帮助.这是我的问题来源的XML的一部分……<xs:complexType name="IDType"> <xs:choice minOccurs="0" maxOccurs="2"> <xs:element name="DriversLicense" minOccurs="0" maxOccurs="1" type="an..35" /> <xs:element name="SSN" minOccurs="0" maxOccurs="1" type="an..35" /> <xs:element name="CompanyID" minOccurs="0" maxOccurs="1" type="an..35" /> </xs:choice> </...

java – spring scoped proxy和JAXB【代码】

JAXBContext是线程安全的,但Unmarshaller不是.我想让unmarshaller成为一个请求范围bean,我这样做:<bean id="jaxbContext" class="javax.xml.bind.JAXBContext"factory-method="newInstance"><constructor-arg><list><value type="java.lang.Class">MyType</value></list></constructor-arg> </bean> <bean id="unmarshaller" class="javax.xml.bind.Unmarshaller"factory-bean="jaxbContext" factory-method="createUnmarshaller"...