IATI Logo IATI Public Validator

Common Errors

Don't panic!

Errors in your XML files are pretty common. Often what looks like a whole load of errors can easily be fixed. Below are the most common errors we encounter in people's files.


Well Formed XML

Well Formed XML means that machines will be able to read your data. If it is not well formed, they can't and we need to fix it. Some common problems are outlined below:

Opening and ending tag mismatch

Usually this is down to a typo somewhere. Each tag or element must be consistent.
<iati-activities></iati-activities> is good <iatiactivities></iati-activities> is bad.

PCDATA invalid Char value 25

XML files are fussy about the data they contain. This error means that somewhere you have a character in the XML that shouldn't be there. These can be quite hard to track down. Sometimes they can be things copied an pasted from Word documents like curly quotes.

xmlParseEntityRef: no name

This often refers to an unencoded ampersand (&). These should be declared in your text as &amp;


Validation Errors

Element 'xxxxxxx': This element is not expected. Expected is ( xxxxxxxx ).

This is an error specific to 2.01 data. In 2.01 the order in which elements are published is important. Validation stops if something is found in the wrong place. This is reported as a single error, although the same error may occur many times within your file. Once you fix this error, you can try to revalidate.

attribute 'url': ... is not a valid value of the atomic type 'xs:anyURI'.

URLs must be 'encoded' in XML - so ampersands (&) should be written as (&amp;), spaces as %20, and so on.
N.B. The parser we use INCORRECTLY rejects some URLs in this service, so if you get this error a lot, then try another validation method.

attribute 'iso-date': '' is not a valid value of the atomic type 'xs:date'.

Dates in IATI should look like YYYY-MM-DD, e.g. the 22nd August 2012 would be written as: 2012-08-22.

attribute 'generated-datetime': '2011-10-17 14:00:00' is not a valid value of the atomic type 'xs:dateTime'.

A datetime (as opposed to a date) specifies both a time and a date. A common error is to miss out the 'T' that separates the date from the time.
So in the example above, this would validate: 2011-10-17T14:00:00
Other common errors are not providing the Date as YYYY-MM-DD or the time as HH:MM:SS
You can also specify a timezone and sometimes people don't get that bit quite right.

attribute 'percentage': '' is not a valid value of the atomic type 'xs:positiveInteger'.

In some circumstances we require you to supply just a number. People sometimes include commas, currency symbols, percentage signs, or write their number as a decimal. If you want to say twenty percent, just write 20.

The attribute '' is not allowed.

This means you've put something in that doesn't need to be there. Simply remove it!

Character content other than whitespace is not allowed because the content type is 'element-only'.

This usually means something has been typed where it shouldn't have been. All content should be inside the IATI element tags. This is usually a sign that something has strayed outside!


Other IATI Sites

IATI Standard

Documentation about the IATI standard can be found at http://iatistandard.org/.
We also have a wiki at: http://wiki.iatistandard.org/.

IATI Data

Published IATI data can be found on the Registry at http://iatiregistry.org.

Support

The IATI knowledge base and support system can be found at http://support.iatistandard.org.