6

カスタム xjb は、必要に応じて名前をオーバーライドするのに最適ですが、名前のアンダースコアが失われます。

<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings 
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
  version="2.1">
  <jxb:globalBindings underscoreBinding="asCharInWord"/>
   <jxb:bindings schemaLocation="foo.xsd">
        <jxb:bindings node="//xs:complexType[@name='fooType']">
            <jxb:property name="value" />
        </jxb:bindings>
  </jxb:bindings>
</jxb:bindings>

上記の xjb でわかるように、生成された Java コードは次のとおりです。

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "textType", propOrder = {
"value"
})
public class FooType {

@XmlMixed
@XmlAnyElement(lax = true)
protected List<Object> value;
......
 public List<Object> getValue() {
    if (value == null) {
        value = new ArrayList<Object>();
    }
    return this.value;
}

ここで、上記の xjb の 1 行を次のように変更します。

 <jxb:property name="_value" />

Java コードの変更点は次のとおりです。

public List<Object> get_Value() {
    if (value == null) {
        value = new ArrayList<Object>();
    }
    return this.value;
}

観測: 「値」

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "textType", propOrder = {
"value"
})

希望: "_value"

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "textType", propOrder = {
"_value"
})
4

1 に答える 1

0

プロパティが _Value と呼ばれていても、が指定propOrderされてい@XmlAccessorType(XmlAccessType.FIELD)て、フィールドの名前value

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "textType", propOrder = {
"value"
})

目標は、json で「値」を「_value」として表示することです。

あなたの特定の_Valueプロパティは、何でも保持できるようです。コンテンツをどのように JSON にレンダリングしますか?

@XmlMixed
@XmlAnyElement(lax = true)
protected List<Object> value;
于 2013-05-29T20:45:49.310 に答える