我必须设计一个数据模型(在JavaEE6应用程序中),它将通过JPA持久化,并且还需要通过JAXB进行序列化。上次我这样做时,我有一组带有JAXB注释的实体类,另一组带有JPA注释。这意味着我必须有很多样板代码才能在两者之间进行转换。我正在考虑将它们结合起来,以便每个类都具有两种类型的注释。我知道这可以完成,但我的问题是,应该吗?会不会有什么问题? 最佳答案 这绝对可以做到。实际上,我发现维护代码以在模型之间复制的前景更成问题。EclipseLink是此应用程序的绝佳选择,因为它包含JPA(EclipseLink是RI,从TopLi
我想转换一个看起来像这样的类......publicclassAmenity{publicStringid;publicStringvalue;}使用JaxB注释进入以下XML:value-string-here有谁知道在value上使用什么注释?成员变量来完成这个?到目前为止我得到的最接近的是:@XmlRootElementpublicclassAmenity{@XmlAttributepublicStringid;@XmlElementpublicStringvalue;}不幸的是,这种方法不允许我指定value成员变量不应呈现为自己的标签. 最佳答案
我在项目中使用JAXB。JAXB的吸引力在于它与JDK捆绑在一起,我一直在命令行上使用xjc.exe从模式生成.java文件。我似乎找不到JAXBant任务,确定可以在http://jaxb.java.net下载但是我想使用捆绑到JDK中的JAXB是否有某种方法可以从ant中调用JAXBxjc.exe调用的是什么类? 最佳答案 刚刚在tools.jar中搜索并在com.sun.tools.internal中找到了XJCFacade.class测试了上面的代码它工作它产生的输出为xjc.exe似乎XJC.exe调用这个代码com.su
我有这样一个绑定(bind)文件模式类在“example”中生成(正确),但XmlAdapters在“org.w3._2001.xmlschema”中生成(错误)。我该如何解决这个问题? 最佳答案 对于ApacheCXF用户,最干净的方法是使用-pwsdl2java提供的选项.-p[wsdl-namespace=]PackageNameSpecifieszero,ormore,packagenamestouseforthegeneratedcode.OptionallyspecifiestheWSDLnamespacetopacka
标题说明了一切。我想知道在字段/getter/setter上放置JAXB注释(如@XmlElement)之间的主要区别是什么。在我看来(在简单的情况下)这无关紧要。例如让我们拿这个classA{privateStringa;publicStringgetA(){returna;}publicvoidsetA(Stringa){this.a=a;}}现在在我看来,将@XmlElement放在成员字段或getter/setter上并不重要。它只是编码好。当我需要有所作为并且重要时,是否有任何用例?当我去解码这个(xml回到A)时,JAXB具体做了什么?我正在使用JAXBMOXy实现谢谢
我想像这样在我的类中使用JaxB注释:@XmlRootElementpublicclassItemExtensionimplementsSerializable{但是当我把它放在客户端时GWT会提示。[ERROR]Line4:Theimportjavax.xml.bindcannotberesolved[ERROR]Line14:XmlRootElementcannotberesolvedtoatype有解决方法还是我做错了什么? 最佳答案 我有一个项目在客户端GWT代码中使用带有JPA和JAXB注释的实体类。请参阅GWTDocum
我是JAXB的新手,想知道是否有一种方法可以使用xpath表达式将XML解码到我的响应对象。问题是我正在调用第三方网络服务,我收到的响应有很多细节。我不希望将XML中的所有详细信息映射到我的响应对象。我只是希望从xml中映射一些细节,我可以使用这些细节来使用特定的XPath表达式并将它们映射到我的响应对象。是否有可以帮助我实现此目的的注释?例如考虑以下响应1IanMGRoad我只对检索街道名称感兴趣,所以我想使用xpath表达式使用“root/record/AddressDetails/street”获取街道的值并将其映射到我的响应对象publicclassResponse{//How
我有2个服务XSD文件AService.xsd和BService.xsd,每个文件都有不同的targetNamespace。这两者都使用一个名为common.xsd的通用XSD。我使用JAXBMaven插件来生成类。方法如下,generate-packagegeneratetrueschema/Aservice.xsdschema/Bservice.xsdschema/*.xjbcom.schemasrc/main/java当我尝试运行它时,出现以下错误。ValidationType在common.xsd中定义org.xml.sax.SAXParseException:Aclass/i
我有一个现有的XML模式,其中包含我想使用JAXB映射到某种Java映射的类型。我的构建过程采用模式并创建bean。我想通过将模式中的一个复杂类型映射到java.util.Map来自定义此过程。我在某处读到JAXB“不能做接口(interface)”。我不确定这是否适用于这种情况,但如果适用,我会很好地映射到HashMap。此外,它不一定是映射到Map的复杂类型,如果需要的话,它可以是一个元素。我使用.xjb文件控制我的JAXB生成,所以我正在寻找一些放在那里。我尝试了以下方法,但它不起作用:编辑:我已经在我已经尝试过的上述绑定(bind)中添加了更多细节。它在架构编译期间生成以下错误
这是用例:@XmlRootElementpublicclassBook{publicStringtitle;publicBook(Stringt){this.title=t;}}@XmlRootElement@XmlSeeAlso({Book.class})publicclassBooksextendsArrayList{publicBooks(){this.add(newBook("TheSignoftheFour"));}}然后,我在做:JAXBContextctx=JAXBContext.newInstance(Books.class);Marshallermsh=ctx.cre