草庐IT

JAXB_FORMATTED_OUTPUT

全部标签

java - 使用 JAXB 编码嵌套类

我正在尝试编码我设计的一些类,使用标准JAXB,这些类都有void构造函数,这是我第一次尝试使用JAXB或以任何语言进行编码/解码,但据我了解,JAXB应该是能够在没有XSD的情况下编码它们。类如下:@XmlRootElement(name="place")classPlace{@XmlAttribute//variousfieldsandgetsetmethodspublicPlace(){}}@XmlRootElement(name="Arc")classArc{//variousfieldsandgetsetmethods@XmlAttributePlacep;publicset

java - 捕获 xsl :message output in java

我试图在调用我的转换时在java中捕获xsl:message。下面是我的代码片段。finalArrayListerrorList=newArrayList();ErrorListenererrorListener=newErrorListener(){@Overridepublicvoidwarning(TransformerExceptione)throwsTransformerException{//TochangebodyofimplementedmethodsuseFile|Settings|FileTemplates.log.error(e.getMessage());err

java - JAXB 泛型 @XmlValue

目标是使用JAXB生成以下XMLstringdatabinarydata是否有允许generic的解决方法@XmlValue字段(我需要存储byte[]和String数据)?以下是我想要的:@XmlRootElementpublicclassFoo{private@XmlElementListbars;}@XmlRootElementpublicclassBar{private@XmlValueTvalue;//(*)}但是我遇到了这个异常(*)IllegalAnnotationException:@XmlAttribute/@XmlValueneedtoreferenceaJavat

Java:JAXB 和使用 char

我正在使用JAXB开发一个项目,但是我遇到了一个关于JAXB和char数据类型的小问题。chargender='M';编码后翻译成:77所以我认为char映射为整数,但我只是想将其映射为String。我怎样才能做到这一点?有可能吗? 最佳答案 经过一些试验,似乎无法配置JAXB以正确处理原始字符。不过,我很难接受。我已经尝试定义一个XmlAdaptor以尝试将其强制转换为一个字符串,但运行时似乎只接受在对象类型而非基元上注释的适配器。我能想到的唯一解决方法是用@XmlTransient标记char字段,然后编写获取和设置值的gett

java - 使用 JAXB 解码通用列表

我有一个返回此XML的服务:successid1owner1id2owner2或successid1name1id2name2我想使用这些类解码检索到的XML:结果:@XmlRootElement@XmlAccessorType(XmlAccessType.FIELD)publicclassResponse{@XmlElementprotectedStringstatus;@XmlElementWrapper(name="result")@XmlElementprotectedListresult;}项目:@XmlRootElement@XmlAccessorType(XmlAcces

java - JAXB HashMap 不可映射

我想将POJO类中的HashMap转换为XML。我尝试使用XmlAdapter,但它只会导致HashMap的键和值对成为XML元素的属性。我需要Key是Element本身,而HashMap的值是元素的值。例如,我需要以下XML:555123.4512345cardQ123.452333cashQ我创建了以下类:MyMapType包含一个MyMapEntryType类列表,它有两个字段,即键和值。如何将Key元素更改为@XmlElement并将值字段分配给Key字段?这是我的源文件。MyMapType.javaimportjava.util.ArrayList;importjava.ut

java - Jaxb继承使用替代但不根元素

我正在浏览Blaise的博客http://blog.bdoughan.com/2010/11/jaxb-and-inheritance-using-substitution.html用于使用替换的Jaxb继承。我想实现相同但不是根元素。我正在寻找这种类型的XML作为输出。1AStreet2BStreetxxx-xxx-xxxx以下是Configuration.javaimportjavax.xml.bind.annotation.XmlRootElement;@XmlRootElementpublicclassConfiguration{privateCustomercustomer;

java - JAXB 是否支持默认模式值?

我有一个定义元素和属性默认值的架构。我正在尝试使用基于该架构的JAXB解析文档,但JAXB未设置默认值。关于如何让JAXB遵循模式中的默认值有什么想法吗?例子.xsd:example1.xml测试解析器.javapackagetest;importjava.io.File;importjavax.xml.XMLConstants;importjavax.xml.bind.JAXBContext;importjavax.xml.bind.Unmarshaller;importjavax.xml.validation.Schema;importjavax.xml.validation.Sc

java - JAXB 和抽象类

我正在尝试使用JAXB解码某些XML,但我收到“无法创建...的实例”异常。我明白为什么——它试图创建一个抽象类的实例。我想要的是让它成为特定实现类的实例。我的目标是对setter方法进行特定于类的检查。也许“qux”是BarImpl的有效baz值,但BarImpl2想要做其他事情。我通过不注释Foo完成了部分工作,但如果我取消注释bar,事情就会变得很糟糕。importjavax.xml.bind.annotation.XmlElement;importjavax.xml.bind.annotation.XmlRootElement;importorg.junit.Test;publ

java - JAXB 编码 : Filter values of leaf elements

我有一个相当复杂的JAXB树对象。对于每个叶节点,我需要过滤其实际值例如YogasanaVijnana:theScienceofYogaDhirendraBrahmachari1966此处的叶节点为Title、author和Date。想象一下,我需要为这个JAXB模型编写一个编码文档,每个叶节点的第一个字符都被删除:ogasanaVijnana:theScienceofYogahirendraBrahmachari966什么是最好的方法?我看到了两个起点,但是,我目前卡住了。1。在JAXB模型中进行更改是否有一些遍历机制可以用来获取任何JAXB对象(某种访问者模式或其他)的叶元素?2。