4.1.1 → 4.1.2への修正履歴

4.1.1リリース後からも修正要求があり、下記のような修正を行った。


1.4.1. スキーマに関わる修正

1.4.1.1. docInfo, moduleVersion属性

uri型がXML Schema仕様にないため、string型に変更した。

1.4.1.2. mmlSm:attrListの属性としてrelationおよびrelatedDocの定義が誤って定義されていた。

下記のように修正を行った。

<xs:attribute name="relation" use="optional" type="xs:string" form="qualified"/>
</xs:extension>
</xs:simpleContent>
-      <xs:attribute name="relation" use="optional" type="xs:string" form="qualified"/>
</xs:complexType>
</xs:element>
</xs:schema>

1.4.1.3. mmlSg:referenceInfo

ドキュメントおよびVer 3.0のDTDでは1回以上の繰り返しとなっていたため下記のように修正した。

<xs:element name="referenceInfo">
  <xs:complexType>
    <xs:sequence>
-        <xs:element ref="mmlCm:extRef"/>
+        <xs:element ref="mmlCm:extRef" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

1.4.1.4. mmlPs:frequencyPerDay

4.1.1の解説文書ではdecimal, スキーマはstringであったが、ともにintegerに修正

1.4.1.5. mmlPs:batchNo

4.1.1の解説文書ではdecimal, スキーマはintegerであった。スキーマに合わせて解説文書をintegerに修正

1.4.1.6. mmlSm:clinicalRecord, mmlSm:deathInfo, mmlSm:testResult

属性情報のmmlSm:dateがdate/dateTimeとDTDの曖昧さを許容していた。XML Schemaでは型定義が厳密であることから、dateTime型に統一することとした。

1.4.1.7. mmlLb:numValue

DTDではnil(空白)が許されていたが、decimal型としたことで空白の値を取ることが原則許されなくなった。Ver 3までは、下記のようにnumValueとしては空欄でもデータが異常値であることを示すことができていた。

    <mmlLb:item>
      <mmlLb:itemName mmlLb:itCode="915" mmlLb:itCodeId="KRTKC">HBsAb</mmlLb:itemName>
      <mmlLb:value>ヨウセイ</mmlLb:value>
      <mmlLb:numValue mmlLb:out="N" xsi:nil="true"/>
    </mmlLb:item>

このような表現を許すようにnumValueにnillable属性をとることとした。

 <xs:element name="numValue" nillable="true">

しかしながら、インスタンスにはnilであることを明示的に記入する必要がある。

    <mmlLb:item>
      <mmlLb:itemName mmlLb:itCode="915" mmlLb:itCodeId="KRTKC">HBsAb</mmlLb:itemName>
      <mmlLb:value>ヨウセイ</mmlLb:value>
      <mmlLb:numValue mmlLb:out="N" xsi:nil="true"/>
    </mmlLb:item>

1.4.1.8. mmlRd:categoryの修正

categoryに文字列を記入することができなくなっていたため下記のように修正を行った。

  <xs:element name="category">
    <xs:complexType>
      <xs:simpleContent>
	<xs:extension base="xs:string">
	  <xs:attributeGroup ref="mmlRd:attlist.mmlRd.category"/>
	</xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>

1.4.2. サンプルインスタンスの追加

1.4.3. チェックプログラムの追加

Rubyでスキーマ、インスタンスの整合性を取るチェックプログラムを作成した。以下の手順でチェックプログラムを操作できる。

% git clone git@github.com:skoba/mml.git
% bundle install
% rake

1.4.3.1. 誤字、表現の修正

数多くの誤字の修正および表現の修正を行った。(参照URL)