XSD 到 Java POJO,它创建了一个自定义字符串 class

XSD to Java POJO, it created a custom String class

所以,我有许多 XSD 文件定义了与健康相关的规范。他们来自这里。 https://www.hl7.org/fhir/downloads.html

我在 eclipse 中使用 JAXB 生成了一些 Java POJO,但它与使用 xic 命令的命令行相同。

我遇到的问题是它创建了 700 多个 classes,其中包括一些非常基本的 java 类型。

它不会与 java.lang.String class 链接,而是会创建一个新的 org.hl7.fhir.String class。 class 将有一个 "value" 字段,其中包含一个正常的 String

所以当我想使用我的对象时,我最终会得到那种令人费解的代码。 my object.getCode().getValue()StringBoolean.

似乎都是这样做的

这不仅不方便,这意味着当我尝试 marshall/unmarshall 相应的 json 对象时,它们必须遵守额外的嵌套级别。

使用这样可怕的东西

{
  "id": {"value":"example-search"},
  "event": {
    "type": {
      "system": {"value":"http://hl7.org/fhir/audit-event-type"},
      "code": {"value":"rest"},
      "display": {"value":"Restful Operation"}
    },...

而不是更清洁。

{
  "id": "example-search",
  "event": {
    "type": {
      "system": "http://hl7.org/fhir/audit-event-type",
      "code": "rest",
      "display": "Restful Operation"
    },...

有什么想法吗?非常感谢

从同一个下载页面,您还可以获取 Java 参考实现。参考实现经过调整,使与简单类型的交互更加自然,使用 getter、setter 等的语言约定。作为奖励,它们还将支持 JSON 的解析和序列化。我们设计了 FHIR 架构,以便您可以 从架构生成代码,但参考实现将为您提供更好的体验。