Trouble Shooting

[Fatal Error] :1:1: Content is not allowed in prolog.

  • Check that you haven't specified the QIF file as one of the transformation inputs.
  • Check your XSL file is well formed.

Illegal XML Characters

Predefined Entities defines characters that are not valid in the XML document and must be escaped. These are

<
&lt;
>
&gt;
&
&amp;
'
&apos;
"
&quot;

If you have any of these characters in your XSL text transformations remember to change them to their escaped version.

Alternatively you may use a CDATA section . e.g. <![CDATA[<greeting>Hello, world!</greeting>]]>

SystemId Unknown; Line #<line> ; Column #<column> ; The reference to entity "blah " must end with the ';' delimiter.

See Illegal XML Characters

[Fatal Error] :<line> :<column> : The entity name must immediately follow the '&' in the entity reference.

See Illegal XML Characters

My record was transformed to something I did not expect.

Either your template is failing to match what your expect or the template rule that is matching is conflicting with another template rule. See Conflict Resolution for Template Rules

If you have a template rule for finding unmatched records like:

  <!--
    Find unmatched payee nodes.
    Since this rule is first it will only match if there is not a
    better match further below in this file.
  -->
  <xsl:template match="payee">
    <memo>
      UNMATCHED
      <xsl:value-of select="." />
    </memo>
    <category>Misc.</category>
  </xsl:template>

and you think you have defined a rule that will match the record but the output is showing that the unmatched node rule is being used then check your template rules's match very carefully.

  • Check that you have () correctly after child::text() .
  • The matching text is the same as the input. If you used the output as the match text and it is not matching it is likely because the output has been through normalize-space() and hence spacing is an issue. Locate the text in the input document and use that instead.

If a record is not matching the unmatched node rule but is matching something else unexpected, then find that rule and comment it out. If the correct rule is now working then you will either need to make the match rule more explicit, set a template priority or ensure that the rule ordering is from less to more explicit matching.