Xml 生成Schematron的元语言

Xml 生成Schematron的元语言,xml,dicom,schematron,Xml,Dicom,Schematron,我正在考虑写一段代码(如果可能的话,写脚本)。将人类可读规范(DICOM)转换为机器可分析验证 使用DocBook(XML)定义其元素和属性的关系,例如: 扫描序列的等效DocBook XML为: <tr valign="top"> <td align="left" colspan="1" rowspan="1"> <para>Scanning Sequence</para&g

我正在考虑写一段代码(如果可能的话,写脚本)。将人类可读规范(DICOM)转换为机器可分析验证

使用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>

扫描序列
(0018,0020)
1.
获取的数据类型的说明。
枚举值:
东南方
自旋回波
红外光谱
反转恢复
GR
梯度召回
EP
回波平面
RM
研究模式
多值,但并非所有组合都有效(例如SE/GR等)。

所以我需要解析这个XMLInfoset,并从这组DICOM关键字生成schematron规则。我可以用什么样的语言既高效又准确?该语言应该允许轻松解析XML输入并轻松生成schematron规则。

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

-

PS:如果您碰巧使用Python,请小心使用哪个解析器库。我并没有发现它们都是可靠的。但是你的数据看起来足够干净,你不会给他们太大的压力,所以你应该没事