Error feedback XML schema

The error feedback XML schema defines tags that are used to define an error feedback XML file.

XML schema

The following sample shows the XML schema for the error feedback file. For a description of the tags, see Error feedback tags.
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="OUTFILECOUNT" type="xsd:string"/>
  <xsd:element name="FILENUMBER" type="xsd:string"/>
  <xsd:element name="PACKAGE">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="FILEREFERENCETABLE" maxOccurs="1" minOccurs="1"/>
        <xsd:element ref="MESSAGE" maxOccurs="unbounded" minOccurs="0"/>
        <xsd:element ref="OUTFILEREFERENCETABLE" maxOccurs="1" minOccurs="1"/>
        <xsd:element ref="STATEMENTTABLE" maxOccurs="1" minOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="FILENAME" type="xsd:string"/>
  <xsd:element name="MESSAGE">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="MSGNUMBER" maxOccurs="1" minOccurs="1"/>
        <xsd:element ref="MSGLINE" maxOccurs="1" minOccurs="1"/>
        <xsd:element ref="MSGFILE" maxOccurs="1" minOccurs="1"/>
        <xsd:element ref="MSGTEXT" maxOccurs="1" minOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="OUTFILE">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="OUTFILENUMBER" maxOccurs="1" minOccurs="1"/>
        <xsd:element ref="OUTFILENAME" maxOccurs="1" minOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="MSGNUMBER" type="xsd:string"/>
  <xsd:element name="OUTFILEREFERENCETABLE">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="OUTFILECOUNT" maxOccurs="1" minOccurs="1"/>
        <xsd:element ref="OUTFILE" maxOccurs="unbounded" minOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="BUILD">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="PACKAGE" maxOccurs="1" minOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="MSGTEXT" type="xsd:string"/>
  <xsd:element name="OUTFILENUMBER" type="xsd:string"/>
  <xsd:element name="FILECOUNT" type="xsd:string"/>
  <xsd:element name="OUTFILENAME" type="xsd:string"/>
  <xsd:element name="MSGLINE" type="xsd:string"/>
  <xsd:element name="FILE">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="FILENUMBER" maxOccurs="1" minOccurs="1"/>
        <xsd:element ref="FILENAME" maxOccurs="1" minOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="MSGFILE" type="xsd:string"/>
  <xsd:element name="STATEMENTTABLE" type="xsd:string"/>
  <xsd:element name="FILEREFERENCETABLE">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="FILECOUNT" maxOccurs="1" minOccurs="1"/>
        <xsd:element maxOccurs="unbounded" ref="FILE" minOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

Error feedback tags

The format of the error feedback file originated with the PL/I compiler XML format. This file format takes several enhancements to allow for the following options:
  • User-written builders that create multiple files, rather than a single output file.
  • The ability to determine whether an input file was an original file that the user started with, or if the file is an intermediate file that was created as the result of a processing step, by checking to see whether the first reference of the file was in the FILEREFERENCETABLE or OUTPUTFILEREFERENCETABLE.
  • The ability to chain several processing steps together, and be able to map any line in the ultimate output to whichever line in the original source.
The error feedback file contains the following tags:
BUILD
This tag is an all-encompassing tag that is used to denote the beginning and the ending of the processing.
PACKAGE
This tag is also an encompassing tag that is only enveloped by the BUILD tag. This tag is only for compatibility with the compiler error feedback file.
FILEREFERENCETABLE
This tag is used to encompass tags that describe the files that are used during the processing.
FILECOUNT
This tag describes the number of files that were used during processing.
FILE
This tag describes an individual file that is used during the processing.
FILENUMBER:
This tag describes the number that is assigned to the input file by the processor.
FILENAME
This tag is the file name of the file that is used during the processing. It is the name of the file that corresponds with the FILENUMBER tag.
MESSAGE
This tag describes a message that is produced by the processor.
MSGNUMBER
This tag describes the message number of the message that was produced by the processor.
MSGLINE
This tag describes the line in the input file that caused the processor to produce the message.
MSGFILE
This tag describes the file number of the input file that caused the processor to produce the message.
MSGTEXT
This tag is the text of the message that is produced by the processor.
OUTFILEREFERENCETABLE
This tag describes the files that are produced by the processor. This tag is newly added. It was developed for describing multiple files that can be generated during a single process. These files can be used as input to any processing steps that might follow the current processing.
OUTFILENUMBER
This tag describes the file number of an individual file that is produced by the processor.
OUTFILENAME
This tag describes the file name of an individual file that is produced by the processor.
STATEMENTTABLE
This tag describes the statements that are produced during a process. This tag is a newly added tag that serves to describe each statement in the output file. The description is an ordered quad. Each entry is read as follows: (A,B,C,D), where:
  • A = Line number that is written in the output file.
  • B = File number of the output file.
  • C = Line number of the input file that was read to generate line number A in File number B.
  • D = File number of the input file that contained line number C, which was read to generate line number A in file number B.