jjzjj

Marshalling

全部标签

java - 哪个 Java XML 绑定(bind)框架支持循环/循环依赖?

我有两个类:publicclassA{BrefToB;}publicclassB{ArefToA;}它们没有唯一的id字段(这是JAX-BXMLID和XMLIDREF所必需的)。对象实例:Aa=newA();Bb=newB();a.refToB=b;b.refToA=a;我想在存储循环/循环依赖的同时将a编码为XML,例如:我发现支持此功能的框架之一是XStream:http://x-stream.github.io/graphs.html还有哪些其他框架支持此功能?某些JAX-B实现是否支持它? 最佳答案 注意:我是Eclipse

java - JAXB un/marshalling : Is there a difference between using arrays and lists?

我对JAXB还很陌生,很想了解它的更多信息。我注意到,在编码时,数组和列表中对象的XML表示是相同的。我感兴趣的是JAXB在取消/编码时如何处理这两种数据结构,以及是否最好将其标准化以使用一种而不是另一种?如果是这样,两者之间有什么区别(性能方面等)?另外,在为我的元素选择容器时我应该考虑什么?如有任何信息,我们将不胜感激。谢谢! 最佳答案 在XML表示中,数组和List具有相同的形式。解码XML时,JAXB将选择您在Java类中的类型。可以将集合解码为从List编码的数组,反之亦然。数组和List都各有利弊。使用对您的目的更好的东

c# - C# 有类似 JAX-B 的东西吗?

我们正在寻找一个像Java中的JAX-B一样支持编码和解码的库,有没有最先进的库可以使用? 最佳答案 正如Bruno所说,您正在寻找的是System.Xml.Serialization命名空间,更具体地说是XmlSerializer类(class)。要将对象序列化为XML,您只需调用Serialize方法,反向可以用Deserialize完成方法。有关详细信息,请查看MSDN主题IntroducingXMLSerialization.序列化为XML时有时会遇到障碍,如果您遇到问题,请务必查看(并贡献)thisthread.

java - 使用 JAXB 注释对属性进行分组

我有一个类Product具有以下属性:name、dateCreated、createdByUser、dateModified和modifiedByUser,我正在使用JAXB编码。我想要这样的输出:...............但理想情况下,我想避免围绕这些属性创建单独的AuditInfo包装器类。有没有办法用JAXB注释来做到这一点?我查看了@XmlElementWrapper但那仅适用于集合。 最佳答案 注意:我是EclipseLinkJAXB(MOXy)领导,以及JAXB2.X(JSR-222)专家组的成员。对于这个用例,您可

Java 编码和解码

Employee.xsdFamily.xsd使用这2个模式的第三方应用程序生成xml字符串,如-KevinSmithselfNewKevinNewSmithwifeJenniferSmith第二个模式始终是固定模式。我的要求是解析关系标签,如果关系是“self”,我需要用各自字段的firstName和lastName覆盖empFirstName和empLastName。我怎样才能做到这一点?编辑1:Employee.xsd是动态的,可以是任何东西。但是Family.xsd是静态的,可以从任何其他xsd导入。 最佳答案 大纲:(a)映

java - JAXB 注释 - Marshall List<String[]>

我有这个简单的对象:@XmlRootElement@XmlAccessorType(XmlAccessType.FIELD)publicclassSimilarityInfoResult{privateStringname;privateListparameters;publicSimilarityInfoResult(){}publicSimilarityInfoResult(Stringname,Listparameters){this.name=name;this.parameters=parameters;}...}它是这样映射的:SubstructureSimilarityt

java - JAXB 将多个对象编码到一个文件

我想将许多对象编码到一个xml文件中。这进展顺利,除了我的编码器坚持添加额外的在每个对象之前。将多个对象编码到同一个文件中的首选方法是什么?如果没有别的,摆脱这些无关的xml声明的最佳方法是什么?我当前的代码:JAXBContextjc=JAXBContext.newInstance(relevantClasses);Marshallerm=jc.createMarshaller();XMLOutputFactoryxof=XMLOutputFactory.newFactory();XMLStreamWriterxsw=xof.createXMLStreamWriter(Channel

java - JAXB 可以将 ArrayList 输出为逗号分隔值吗?

我有类似的东西@XmlElementWrapper(name="Mylist")ListmyItems=newArrayList()结果是item1item2item3有没有可能让它更像item1,item2,item3既然我要找的数据都是文本数据? 最佳答案 您可以使用@XmlList使其成为一个空格分隔的值。对于逗号分隔的列表,您需要使用XmlAdapter.有关XmlAdapter的更多信息见:http://bdoughan.blogspot.com/2010/07/xmladapter-jaxbs-secret-weapon

java - 无法将类型编码为 XML 元素,因为缺少 @XmlRootElement 注释

我想将对象编码为XML。但是,它失败并出现异常:javax.xml.bind.MarshalException-withlinkedexception:[com.sun.istack.SAXException2:unabletomarshaltype"FreightOfferDetail"asanelementbecauseitismissingan@XmlRootElementannotation]atcom.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:331)atcom.sun.xml.bind.

java - 强制转义 Spring 中 XML 编码中的特殊字符

我想在使用SpringMarshaller时强制转义特殊字符。当我使用javax.xml.bind.Marshaller时,下面的代码可以正常工作读书课packagecom.odr.core.action;importjavax.xml.bind.annotation.XmlAccessType;importjavax.xml.bind.annotation.XmlAccessorType;importjavax.xml.bind.annotation.XmlRegistry;importjavax.xml.bind.annotation.XmlRootElement;importja