草庐IT

marshalling

全部标签

java - 如何使用 JAX-B 处理接口(interface)的各种具体实现

我有一个类,我需要将其编码为XML。@XmlRootElement@XmlAccessorType(XmlAccessType.FIELD)publicclassClassToBeMarshalled{publicInterfaceobject;}接口(interface)由许多具体类实现,其中大部分是特定于供应商的,我无法访问其源代码。所以我的问题是:如果我尝试编码该类,JAX-B会提示当前接口(interface)的具体实现在上下文中未知-换句话说,具体类未通过调用提供的JAXBContext.newInstance加载到上下文中当前实现。解决该问题的最常见方法是:1)使用XMLS

xml - 在 Marshaller 上设置 CharacterEscapeHandler 变量在 CXF 中无法按预期工作

我正在使用ApacheCXF在服务器端实现一些Web服务。我必须实现一个WebService,它返回一个字符串(Holder),其中一些值由制表符分隔。ApacheCXF将字符选项卡编码为选项卡,但我们的客户端(无法更改...)不接受它,只读取编码为 的选项卡。.所以我试着简单地在字符串上做一个replaceAll来改变\t为 ,但是Marshaller上的escapeHandler将其更改为 .然后我尝试创建一个customCharacterEscapeHandler并在marshallcom.sun.xml.bind.marshaller.CharacterEscapeHan

java - 使用基于注解的 MOXY 的 JAXB 实现 + 动态映射

我正在使用RESTEasy库编写一个RESTfulWS应用程序。我一直在寻找一种动态修改特定模型/xml映射的方法,并找到了MOXY的JAXB实现。问题是当我使用文件jaxb.properties指定MOXY的实现时,当我尝试检索JAXBContext时,出现以下异常:javax.xml.bind.JAXBException:ExceptionDescription:Namecollision.TwoclasseshavetheXMLtypewithurihttp://www.w3.org/2001/XMLSchemaandnameanyType.-withlinkedexceptio

java - 如何在 jaxb marshaller 中添加 DOCTYPE

我正在使用带有jdk1.8的springboot。我可以使用jaxbxml将Java对象编码到XML,但我想在XML输出上添加DOCTYPE。当前的xml输出:我想要的是:下面是我的JAXBpackagecom.example.demo.model;importjavax.xml.bind.JAXBContext;importjavax.xml.bind.JAXBException;importjavax.xml.bind.Marshaller;importjavax.xml.bind.PropertyException;importjava.io.File;importjava.io

xml - 在 JAXB 中编码数组

我可以毫无问题地编码Job对象,但是当我尝试编码Job数组时,我得到了一个错误的XML。看来我需要创建一个类似.我不知道怎么做,我希望在这方面得到一些帮助。我的类(class):@XmlRootElement(name="job")classJob{privateStringusername;privateCalendarpreviousFireTime;}用法:Job[]jobs=service.getJobs(...);StringWritersw=newStringWriter();for(inti=0;i结果:这是一个无效的XML文件2011-09-06T18:45:00-07

xml - JAXB 和多态性

我在获取由Java的JAXB实现编码的以下类结构时遇到了问题。我有一个抽象标识符类,它有一个值。将值表示为属性对我来说很重要。@XmlSeeAlso({AbstractIDInt.class})@XmlRootElement(name="AbstractID")@XmlAccessorType(XmlAccessType.PROPERTY)publicabstractclassAbstractID{@XmlAttributeabstractObjectgetValue();}并且,这是一个扩展抽象id类的类:@XmlRootElement(name="AbstractIDInt")@X

xml - 在 jaxb 编码中动态设置对象的命名空间

我有一种情况需要为我的jaxb类动态设置我的命名空间。我在jaxb类中的命名空间有一个需要动态更改的版本。@XmlRootElement(name="myobject",namespace="http://myhost.com/version-2")@XmlAccessorType(XmlAccessType.FIELD)@XmlTypepublicclassmyObject{}当我使用这种静态命名空间机制时,我的编码工作完美,但在我的实际情况下,我需要动态更改此版本..我在编码时尝试过这种方法来解决这个问题XMLStreamWriterxmlStreamWriter=XMLOutpu

java - 当有静态类时,没有带有 @XmlElementDecl 的 ObjectFactory

Iamgettingbelowexception,ineedsomehelptoresolvetheissue.Ifremovethenamespaceintheobjectfactoryandwithoutpackage-info.javaclassitisworkingfine.ExceptionthatisthrowingnowExceptioninthread"main"com.sun.xml.bind.v2.runtime.IllegalAnnotationsException:1countsofIllegalAnnotationExceptionsThere'snoObje

java - JAXB 将 boolean 值编码为复杂类型

我是JAXB的新手,我想做一些我不知道是否可行的事情。我有一个像这样编码的java类:@XmlAccessorType(XMLAccessType.NONE)publicclassMyClass{@XmlElementprivateStringa="x";@XmlElementprivateStringb="xx";@XmlElementprivatebooleanc=true;...}并且想要像这样的XML输出:xxx我想到的一个解决方案是使用boolean包装类使其工作,但我想避免这种情况,因为它使我失去了使用boolean基元true、false的能力。我们可以在JAXB中做到这

java - JAXB 中属性的访问顺序

在我的类里面,我有80多个属性。我必须使用JAXB在类中使用相同的顺序将其写入xml文件。所以请建议我一个自动创建的propOrder或其他一些按照我在类里面给出的相同顺序给出的方法。注意:默认情况下,我按字母顺序获取输出例子:Javaobject:order[id=1,item=121,qty=10,city=QWE,...........,addr=ASD]exceptedresult:Inxmlfile112110....ASD 最佳答案 如果您从Java对象创建xml,则使用@XmlType(propOrder={"id",