Troubleshooting
Problem
When running IBM Transformation Extender (ITX) to validate HL7 C-CDA (Consolidated Clinical Document Architecture) XML input, "One or more inputs is invalid" is returned.
Symptom
The section of the input card where the problem occurs is trying to find the "low" element under the "effectiveTime" element and the structure seen in the input card does not include the "low" element under the "effectiveTime" element. Snippet from ITX map trace:
----------------------------------
(Level 1: Offset 107, len 14528, comp 1 of 2, #1, DI 00000000008A:)
External Parser returned Error:
TYPE X'0002' (Error (-9), "XMLParser: Could not find type to assign XML data."
No type to assign data was found
[element name: low, namespace: urn:hl7-org:v3, current input data offset: 14637]
Error (-1), "XMLParser: Input XML data is invalid."
There is a mismatch between the typetree and input data. All type objects are not built.).
External Parser returned Error
----------------------------------
(Level 1: Offset 107, len 14528, comp 1 of 2, #1, DI 00000000008A:)
External Parser returned Error:
TYPE X'0002' (Error (-9), "XMLParser: Could not find type to assign XML data."
No type to assign data was found
[element name: low, namespace: urn:hl7-org:v3, current input data offset: 14637]
Error (-1), "XMLParser: Input XML data is invalid."
There is a mismatch between the typetree and input data. All type objects are not built.).
External Parser returned Error
----------------------------------
Cause
SubstanceAdministration is using the "POCD_MT000040.SubstanceAdministration" type which includes the element name="effectiveTime" type="SXCM_TS". The SXCM_TS is defined in the datatypes-base_SDTC.xsd XML Schema which does not include a "low" element as part of the definition. Snippet follows:
----------------------------------
<xs:complexType name="SXCM_TS">
<xs:complexContent>
<xs:extension base="TS">
<xs:attribute name="operator" type="SetOperator" use="optional" default="I">
<xs:annotation>
<xs:documentation>
A code specifying whether the set component is included
(union) or excluded (set-difference) from the set, or
other set operations with the current set component and
the set as constructed from the representation stream
up to the current point.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
----------------------------------
And, the structure in the input card matches the XML Schema definition where again there is no "low" element under the "effectiveTime" for the above SXCM_TS type.
This is why the XML input data fails validation.
----------------------------------
<xs:complexType name="SXCM_TS">
<xs:complexContent>
<xs:extension base="TS">
<xs:attribute name="operator" type="SetOperator" use="optional" default="I">
<xs:annotation>
<xs:documentation>
A code specifying whether the set component is included
(union) or excluded (set-difference) from the set, or
other set operations with the current set component and
the set as constructed from the representation stream
up to the current point.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
----------------------------------
And, the structure in the input card matches the XML Schema definition where again there is no "low" element under the "effectiveTime" for the above SXCM_TS type.
This is why the XML input data fails validation.
Note that even though the XML input problem area (snippet below), has 'xsi:type="IVL_TS"' this does not redefine the SXCM_TS type under SubstanceAdministration.
<effectiveTime xsi:type="IVL_TS"><low value="20190125"/></effectiveTime>
Resolving The Problem
CDA_SDTC.xsd is a schema containing mixed types and complex types. There is an all-important setting / option that is needed when importing the parent schema (CDA_SDTC.xsd) via ITX Design Studio.
That is, re-import this schema and check the option, "Enable the use of derived types on base types xsi:type" (in the import window). Also check the box for "Select a subset of the global elements to generate".
Click Next and then select the global elements to generate. Click "Clear all" and select only ClinicalDocument since this is what the particular input XML data is referencing.
Click Next and when prompted, select the global types to enable. Click "Select all" or select only the specific types that are needed. The less you select the less Choice groups or less choices in the Choice groups will be created, hence making the map easier to work with. If unknown, choose "Select all" to be sure to cover them all.
Complete the Importer dialog to create the type tree. Be sure the newly created .mtt type tree is specified for the input card in the map. Save, rebuild, and run the map. XML input validation should now be successful.
Complete the Importer dialog to create the type tree. Be sure the newly created .mtt type tree is specified for the input card in the map. Save, rebuild, and run the map. XML input validation should now be successful.
Related Information
Document Location
Worldwide
[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSVSD8","label":"IBM Transformation Extender"},"Component":"Design Studio XML Schema importer","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]
Was this topic helpful?
Document Information
More support for:
IBM Transformation Extender
Software version:
All Versions
Document number:
872804
Modified date:
21 March 2019
UID
ibm10872804