代码之家  ›  专栏  ›  技术社区  ›  ra9r

JAXB等价于文本节点值是什么?

  •  15
  • ra9r  · 技术社区  · 16 年前

    我要转换一个像这样的类…

    public class Amenity {
       public String id;
       public String value;
    }
    

    使用JAXB注释进入以下XML:

    <amenity id="id-string-here">value-string-here</amenity>
    

    有人知道在 value 要完成此操作的成员变量?到目前为止,我最接近的是:

    @XmlRootElement
    public class Amenity {
       @XmlAttribute
       public String id;
       @XmlElement
       public String value;
    }
    

    不幸的是,这种方法不允许我指定 价值 成员变量不应呈现为其自身的标记 <value></value> .

    4 回复  |  直到 14 年前
        1
  •  24
  •   Bozho    15 年前

    对此我不是百分之百肯定,但请尝试使用 @XmlValue 注释而不是 @XmlElement .

        2
  •  4
  •   bdoughan    16 年前

    看起来这个问题是指文本节点而不是CData节点,但这里有一个关于EclipseLink JAXB(Moxy)如何处理CData的链接:

        3
  •  1
  •   Bozho    15 年前

    This documentation 写作:

    问:我如何使封送拆收器生成CDATA块?

    a.此功能不能直接从JAXB获得,但您可以配置ApacheXerces-j xmlserializer来生成CDATA块。有关详细信息,请查看jaxbcdatasample.java示例应用程序。

    (顺便说一句,这并不能回答你的特定问题,但由于问题标题是误导性的,这是谷歌的第一个结果 jaxb CDATA ,我回答的问题有点不同)

        4
  •  0
  •   Wez    16 年前

    JAXB不支持向/从CDATA XML类型进行封送/封送处理。