生成 Schematron 的元语言

Meta language to generate Schematron

我正在考虑编写一段代码(如果可能的话,编写脚本)。将人类可读规范 (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 规则。

据我所知,这应该非常简单,所以我会说使用您喜欢的任何语言。 XML 解析器随处可用,使用 sprintf() 或其他工具生成 schematron 非常容易。总的来说,在 XSLT 中进行转换可能是最简单的,因为您可以免费获得解析和生成。但是,如果您不了解 XSLT,那么您已经了解的语言可能会更快。

-s

PS:如果你碰巧使用Python,请注意你使用的是哪个解析器库。我还没有发现所有这些都是可靠的。但是你的数据看起来足够干净,你不会对它们施加太大压力,所以你应该没问题。