为什么HL7 FHIR Json Resources没有“根”元素

时间:2018-07-17 14:51:24

标签: json xml hl7-fhir

我正在实现一个FHIR服务器,该服务器能够接收两种格式(XML / Json)的资源。为了使之简单一致,我的想法是在内部仅使用XML并将Json请求转换为XML,反之亦然,但是尽管它适用于一些示例Json文档,但不适用于FHIR Json资源。主要原因是FHIR Json资源没有“根”元素,因此XML转换工具无法创建适当的输出XML。

FHIR Json观测资源就像;

{"resourceType": "Observation","id": "example",...}

并且带有根元素应该是

{Observation:{"id": "example",...}}

我知道Json文档不是必须具有根元素,但是如果大多数XML <-> Json转换器在那种情况下工作得更好并且FHIR接受两种格式,为什么不使用根元素定义FHIR Json资源?特别是当某些最初的DSTU使用该方法时。

谢谢

3 个答案:

答案 0 :(得分:2)

已做出决定,使JSON成为JSON人们想要的方式,使XML成为XML人们想要的方式,并放弃使用现成的转换器。使用现成的转换器会导致一组或另一组或两者都讨厌的语法。每个人都必须处理实例。自定义转换器只需编写一次。无论如何,“为什么规范会按照它的方式做事”可能不是Stack Overflow的范围-最好在chat.fhir.org上提出。

答案 1 :(得分:0)

您正在运行JSON没有的XML限制。因为您仅需要XML供内部使用,并且始终使用JSON来实现互操作性,所以最好将传入的JSON包装在根元素中,并在导出为JSON时将其删除。我认为这不会导致许多代码行或性能损失。

如果您要更改FHIR的行为,最好在其他地方解决此问题,然后是Stackoverflow,其主要目的是提供实用的解决方案。

最诚挚的问候

答案 2 :(得分:-2)

对于我们公司而言,在此问题上可能面临的挑战是如何在不更改后台技术(Tomcat + Axis2)的情况下管理FHIR JSON请求。在能够使用正式的FHIR库之前,我应该能够从Axis访问JSon请求。 如果这对于使用FHIR和Axis的人可能有用,在以下问题中,我向谁解释了它的实现Axis2 JSon Support (Jettison) bad xml conversion

谢谢。