I can find a couple of namespace declarations:
- xmlns:akvo="http://akvo.org/iati-activities"
- xmlns:ir="http://iatiregistry.org/ns/record#"
- xmlns:ir="http://iatistandard.org/downloads/iati-registry/record-schema.xsd"
- xmlns:cerf="http://cerf-gms.unocha.org/CERF01"
- xmlns:fts="http://fts.unocha.org"
- xmlns:fts="nothing"
- xmlns:sida="http://sida.se/ns/strategy#"
- xmlns:ns1="xml"
- xmlns:usg="http://foreignassistance.gov/iati#"
- xmlns:usg="http://www.foreignassistance.gov/web/IATI/usg-extension"
A namespace declaration is supposed to contain a URI, not a URL, so you're not required to provide a web page (but it's recommended).
So xmlns:fts="nothing"
and xmlns:ns1="xml"
are wrong, but the others are technically ok. Although for instance both variations of ir
or fts
or usg
are considered to be different namespaces, even if that wasn't intended.
I internally use my own xmlns:iati-me="http://iati.me/..."
variations in pipeline processes but (try to) make sure it doesn't show up in published files. At the end of everything, I should be able to remove every attribute and element from none-IATI namespaces, and end up with valid IATI.
If you want, you can add invoices as UBL data to your expenditure transactions: <ubl:Invoice xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" ...
and then provide an interface looking for //iati-actiivity[transaction[@type="4"]/ubl:Invoice
.
I think the difficulty is that we don't specify interpretation of IATI data:
If Akvo publishes (leaving out the narrative
layer):
<description type="1" akvo:type="4">Subtitle</description>
<description type="1" akvo:type="5">Project plan</description>
Can I can concatenate those as <description type="1">Subtitle
Project plan</description>
?