相关疑难解决方法(0)

JAXB以不同的方式将XML封送到OutputStream与StringWriter

我很抱歉,如果这已经得到解答,但我一直在使用的搜索术语(即JAXB @XmlAttribute压缩JAXB XML编组到String不同的结果)没有提出任何建议.

我正在使用JAXB来取消/编组带注释@XmlElement@XmlAttribute注释的对象.我有一个格式化程序类,它提供了两个方法 - 一个包装marshal方法并接受对象编组和一个OutputStream,另一个只接受对象并将XML输出作为String返回.不幸的是,这些方法不能为相同的对象提供相同的输出.封送到文件时,内部标记的简单对象字段@XmlAttribute将打印为:

<element value="VALUE"></element>
Run Code Online (Sandbox Code Playgroud)

当编组到一个字符串时,它们是:

<element value="VALUE"/>
Run Code Online (Sandbox Code Playgroud)

我更喜欢这两种情况的第二种格式,但我很好奇如何控制差异,并且无论如何都会满足于它们.我甚至创建了一个静态编组器,两种方法都使用它来消除不同的实例值.格式代码如下:

/** Marker interface for classes which are listed in jaxb.index */
public interface Marshalable {}
Run Code Online (Sandbox Code Playgroud)
/** Local exception class */
public class XMLMarshalException extends BaseException {}
Run Code Online (Sandbox Code Playgroud)
/** Class which un/marshals objects to XML */
public class XmlFormatter {
    private static Marshaller marshaller = null;
    private static Unmarshaller unmarshaller = null;

    static {
        try {
            JAXBContext context …
Run Code Online (Sandbox Code Playgroud)

java xml java-metro-framework jaxb

12
推荐指数
1
解决办法
4万
查看次数

在xml jaxb中将空值表示为空元素

我需要在jaxb中将空值显示为空元素.我正在使用jxyb的moxy实现.我找到了这个选项

@XmlNullPolicy(emptyNodeRepresentsNull = true, nullRepresentationForXml = XmlMarshalNullRepresentation.EMPTY_NODE)
Run Code Online (Sandbox Code Playgroud)

是否有类似的扩展可以在类级别应用(对于其中定义的所有元素)

java xml jaxb moxy

11
推荐指数
1
解决办法
3万
查看次数

标签 统计

java ×2

jaxb ×2

xml ×2

java-metro-framework ×1

moxy ×1