To adequately test your SGML file, you must employ a two step process:
- Step 1 – Verify that the SGML file adheres to the syntax and document definition outlined in the ICH ICSR DTD.
- Step 2 – Verify that the SGML file contains no data that violates the M2 specification in regards to data type, length, or valid values.
To validate the syntax and definition of your SGML file, review your parser documentation for options that will provide an output file that will detail the syntax and definitions errors in your SGML file. The parser will, by default, generate errors as they are encountered when attempting to parse the file. However, this method is very iterative and time consuming. What you are looking for in your parser documentation is the ability to test the SGML file in its entirety and provide an output of all errors found in the SGML file. For example, James Clark's SGML parser uses the following command to test SGML files:
nsgmls -s -ffile dtdfile sgmlfile
-s: Suppress output. Error messages will still be printed.
-ffile: Redirect error output to file.
dtdfile: The dtd file for E2B is "ich_icsr.dtd". The necessary path should be added.
sgmlfile: The SGML file you wish to test. The necessary path should be added.
The following is an example output from the above command:
P:\test>nsgmls -s ich_icsr.dtd smallerr.sgm
M:\E-SUBMIT\DOWNLOAD\SP\BIN\NSGMLS.EXE:smalltst.sgm:1:23:E: start tag for "SAFETYREPORTID" omitted, but its declaration does not permit this
M:\E-SUBMIT\DOWNLOAD\SP\BIN\NSGMLS.EXE:smalltst.sgm:1:4117:E: element "RECEIVXXDEPARTMENT" undefined
M:\E-SUBMIT\DOWNLOAD\SP\BIN\NSGMLS.EXE:smalltst.sgm:1:4152:E: end tag for element "RECEIVERDEPARTMENT" which is not open
Develop software and procedures in your environment to validate that the data you extract from your company database meets the individual field validation specifications in the appropriate ICH M2 ICSR Specification. Use this software to validate each SGML document this is submitted to FDA.