当前位置: 首页 > 面试题库 >

如何在JAXB中自定义属性名称?

易研
2023-03-14
问题内容

我正在使用JAXB来基于某些XSD架构生成Java类。对于诸如以下的元素:

<xsd:element name="REC_LOC" type="xsd:string" minOccurs="1"/>

jaxb生成以下代码:

@XmlElement(name = "REC_LOC", required = true)
protected String recloc;

public String getRECLOC() {
    return recloc;
}

/**
 * Sets the value of the recloc property.
 * 
 * @param value
 *     allowed object is
 *     {@link String }
 *     
 */
public void setRECLOC(String value) {
    this.recloc = value;
}

问题是我们需要使用一些专有的XML工具,这些工具依赖于getter /
setter方法的命名约定。例如,对于字段REC_LOC,他们希望使用名为getRecLoc(String
value)和setRecLoc()的方法,而不是getRECLOC()。

有什么方法可以自定义jaxb生成的方法名称?


问题答案:

您可以使用jaxb:property定制来自定义属性名称。

<bindings xmlns="http://java.sun.com/xml/ns/jaxb"
          xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
          xmlns:xs="http://www.w3.org/2001/XMLSchema"
          version="2.1">

    <bindings schemaLocation="schema.xsd" version="1.0" node="/xs:schema">
        <bindings node="xs:complexType[@name='SOME_TYPE']">
            <bindings node="xs:sequence/xs:element[@name='REC_LOC']">
                <property name="RecLoc"/>
            </bindings>
        </bindings>
    </bindings>
</bindings>

(未经测试。)

也可以看看:

  • globalBindings/@enableJavaNamingConventions
  • nameXmlTransform


 类似资料:
  • 我使用JAXB根据一些XSD模式生成java类。对于以下元素: <代码> jaxb生成以下代码: 问题是我们需要使用一些依赖于getter/setter方法命名约定的专有XML工具,例如,对于字段REC_LOC他们希望使用名为getRecLoc(String value)和setRecLoc()的方法,而不是getRECLOC()。 有没有办法自定义jaxb生成的方法名?

  • 问题内容: 我正在使用JavaScriptSerializer反序列化json数据。一切工作都很好,但是我的问题是,json数据中的一个属性被命名为“ base”,所以我无法在C#代码中创建这样的属性。我发现我可以手动将值映射到构造函数中的属性,但是问题是,我的DTO具有200个属性,因此我不想手动进行此操作,而是希望找到任何其他解决方案。我也尝试使用注释,但这是: 并没有帮助我,每次将baseV

  • 问题内容: 我可以创建自定义属性并将其应用到normal ,如下所示: 我的问题:是否可以在不创建扩展类的情况下读取这些自定义属性的值?我的意思是,我想从我的中读取自定义属性,但是到目前为止,我所看到的示例要求我从自定义视图的构造函数中读取值 问题答案: 我的问题:是否可以在不创建扩展EditText的类的情况下读取那些自定义属性的值? 是的,您无需扩展类即可获取这些属性。为此,你可以使用一个特殊

  • 问题内容: 背后有不同的原因,但是我想知道如何简单地向JSX中的元素添加自定义属性? 问题答案: 编辑:更新以反映React 16 React 16本机支持自定义属性。这意味着向元素添加自定义属性现在就像将其添加至函数一样简单,如下所示: 先前的答案(第15和更早版本) 当前不支持自定义属性。有关更多信息,请参见此未解决的问题: 解决方法是,您可以在中执行以下操作:

  • 我从一个xml模式生成java类,对于一个复杂类型,我希望jaxb使用一个现有的类,我有一个外部绑定定制文件。自定义类被解组为正确的,除了该类型的单个属性,该属性从未在java类中填充。 下面是类型/类问题的演示。 模式中定义的内容是: 读取匹配xml文件的代码段是: 在这个xml中阅读: 使用JAXB生成的Thing类(不使用自定义xjb),输出符合预期: 使用只有getters的自定义Thin

  • 问题内容: 作为一个例子,取子域映射。 然后,映射将如下所示: 如果我们想创建自定义的@RequestMapping属性,例如子域。创建这样的映射: 我们应该使用我们自己的实现覆盖定义并覆盖RequestMappingHandlerMapping受保护的方法 (如JIRA所述:“ 允许自定义请求映射条件SPR-7812 ”)。 这样对吗?有人可以提供提示,如何实现此功能吗? 想法1: 正如原始的j