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()
。
String
和 Boolean
.
似乎都是这样做的
这不仅不方便,这意味着当我尝试 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 架构,以便您可以 从架构生成代码,但参考实现将为您提供更好的体验。
所以,我有许多 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()
。
String
和 Boolean
.
这不仅不方便,这意味着当我尝试 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 架构,以便您可以 从架构生成代码,但参考实现将为您提供更好的体验。