我正在考虑编写一段代码(如果可能的话,脚本)。将人类可读规范(DICOM)转换为机器可解析验证。
DICOM standard使用DocBook(XML)定义其元素和属性的关系,例如:
用于扫描序列的等效DocBook XML是:
<tr valign="top">
<td align="left" colspan="1" rowspan="1">
<para>Scanning Sequence</para>
</td>
<td align="center" colspan="1" rowspan="1">
<para>(0018,0020)</para>
</td>
<td align="center" colspan="1" rowspan="1">
<para>1</para>
</td>
<td align="left" colspan="1" rowspan="1">
<para>Description of the type of data taken.</para>
<variablelist spacing="compact">
<title>Enumerated Values:</title>
<varlistentry>
<term>SE</term>
<listitem>
<para>Spin Echo</para>
</listitem>
</varlistentry>
<varlistentry>
<term>IR</term>
<listitem>
<para>Inversion Recovery</para>
</listitem>
</varlistentry>
<varlistentry>
<term>GR</term>
<listitem>
<para>Gradient Recalled</para>
</listitem>
</varlistentry>
<varlistentry>
<term>EP</term>
<listitem>
<para>Echo Planar</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RM</term>
<listitem>
<para>Research Mode</para>
</listitem>
</varlistentry>
</variablelist>
<note>
<para>Multi-valued, but not all combinations are valid (e.g., SE/GR, etc.).</para>
</note>
</td>
所以我需要解析这个XML InfoSet,并从这组DICOM关键字生成schematron规则。我可以使用哪种语言来提高效率和准确性?该语言应该允许轻松解析XML输入并轻松生成schematron规则。
答案 0 :(得分:1)
据我所知,这应该是非常简单的,所以我说要使用你喜欢的任何语言。 XML解析器随处可用,使用sprintf()或其他方法生成schematron很容易。总的来说,在XSLT中进行转换可能是最容易的,因为您可以免费获得解析和生成。但如果您不了解XSLT,您已经知道的语言可能会更快。
-s
PS:如果您碰巧使用Python,请注意您使用的解析器库。我还没发现所有这些都可靠。但是你的数据看起来很干净,你不会对它们施加太大的压力,所以你应该没问题。