草庐IT

jaxb-episode

全部标签

java - 如何以编程方式更改默认的 JAXB 日期序列化?

有没有一种方法可以更改jaxb序列化/反序列化类型的默认方式,在我的例子中是日期,而不通过注释和/或通过xmljaxb绑定(bind)指定它,如此处所述http://jaxb.java.net/guide/Using_different_datatypes.html我基本上想做这样的事情:JAXBContextjaxbContext=...;Marshallermarshaller=jaxbContext.createMarshaller().setAdapter(newDateAdapter(dateFormat));要有一个预配置的JaxBContext或Marshaller/Un

java - JAXB 和 Guice : How to integrate and visualize?

我发现将JAXB与Guice一起使用是可行的,但具有挑战性:两个库都在“争夺”对象创建的控制权,您必须小心避免循环依赖,并且它可能会与所有JAXB适配器和GuiceProviders等等。我的问题是:你如何处理这个配置?可以应用哪些一般策略/经验法则?你能给我指出一个好的教程或编写好的示例代码吗?如何可视化依赖关系(包括Adapter和Providers)? 最佳答案 对于一些示例代码,一些示例工作已在此处完成:http://jersey.576304.n2.nabble.com/Injecting-JAXBContextProvi

java - 为什么以及何时在 JAXB 中需要 JAXBElement?

我正在学习JAXB(用于XML绑定(bind)的Java体系结构)。通过一些资料阅读,我对JAXBElement产生了一个疑问。.Oracle文档说:WhenXMLelementinformationcannotbeinferredbythederivedJavarepresentationoftheXMLcontent,aJAXBElementobjectisprovided.Thisobjecthasmethodsforgettingandsettingtheobjectnameandobjectvalue.Linkhere这是否意味着JAXBElement当Schema定义的数据

java - 将 JAXB 映射到数据库表的最佳方式

我有一个入站xml,我正在使用xjc工具(构建pojo)将其映射到JAXB对象我想知道将这些对象映射到各种表的最佳方法是什么。一个对象/Xml可以映射到多个表,我认为这会导致hibernate。作为一个基本的解决方案,我相信我需要某种方式来注释对象中的字段(通过xsd中的标签?我不知道)到数据库列名。有人遇到过这个吗?谢谢 最佳答案 我猜你需要Hyperjaxb3为JAXB对象提供关系持久性。@lexicore是这个项目的作者。 关于java-将JAXB映射到数据库表的最佳方式,我们在S

java - 我如何在 jaxb 中解码并在不使用显式模式文件的情况下享受模式验证

我正在为我的应用程序配置使用jaxb我觉得我正在做一些非常不正当的事情,我正在寻找一种不需要实际文件或此交易的方法。正如您在代码I中所见:1.从我的JaxbContext(实际上是从我的类注释)创建一个模式到一个文件中2.设置这个模式文件,以便在我解码时允许真正的验证JAXBContextcontext=JAXBContext.newInstance(clazz);SchemamySchema=SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI).newSchema(schemaFile);jaxbContext.g

java - 如何使用 gradle、jaxb 和 xjc 从 xsd 生成 jaxb 类,类应该有 XmlRootElement

我们尝试使用gradle、xsd和xjc生成JAXB类,并且JAXB类应该具有XmlRootElement注释,以便它可以用于公开为Web服务响应。我们正在关注此链接http://azagorneanu.blogspot.com/2011/09/configure-maven-to-generate-classes.html,它有很大帮助,但我们无法找到一个仅使用gradle的特定示例。所以我们想出了一些我们将作为答案分享的东西。 最佳答案 build.gradle应该如下所示buildscript{repositories{mav

java - 如何在没有任何相关信息的情况下通过 JAXB 编码对象?

我有一个对象value,它属于某种类型,可以是@XmlRootElement注释的,也可以不是。我想将其编码为XML:Stringvalue1="test";assertEquals("test",toXml("foo",value1));//...@XmlRootElementclassBar{publicStringbar="test";}assertEquals("test",toXml("foo",newBar()));我可以使用JAXB现有工具来完成它,还是应该创建一些自定义分析器? 最佳答案 您可以利用JAXBIntro

java - 如何配置 JAXB,使其默认修剪空格

我想配置JAXB以便它修剪所有字符串字段上的空格我看到了以下答案:HowtoconfigureJAXBsoittrimswhitespaceswhenunmarshallingtagvalue?但我不想按照建议的答案对所有字符串字段进行注释@XmlElement(required=true)@XmlJavaTypeAdapter(MyNormalizedStringAdapter.class)Stringname;谢谢! 最佳答案 创建XmlAdapter.packagecom.foo.bar;publicclassStringTr

java - 在 JaxB 中解码集合

假设我有这个类:publicclassA{privateHashMapmap;@XmlElementprivatevoidsetB(ArrayListcol){...}privateArrayListgetB(){...}}当尝试使用JaxB将xml文档解码到此类时,我注意到JaxB没有调用setB()方法并向我发送B实例列表,而是实际调用了getB()并将B实例添加到返回列表中.为什么?我想要调用setter的原因是列表实际上只是一个临时存储,我想从中构建映射字段,所以我想在setter中进行。谢谢。 最佳答案 这就是jaxb处理

java - 没有 XmlRootElement 注释的 JAXB 解码?

有什么方法可以在没有@XmlRootElement注释的情况下为类取消编码?还是我们有义务输入注释?例如:publicclassCustomer{privateStringname;privateintage;privateintid;publicStringgetName(){returnname;}@XmlElementpublicvoidsetName(Stringname){this.name=name;}publicintgetAge(){returnage;}@XmlElementpublicvoidsetAge(intage){this.age=age;}publicin