|
@ -222,22 +222,24 @@ class CamtParser(models.AbstractModel): |
|
|
) |
|
|
) |
|
|
if not re_camt.search(ns): |
|
|
if not re_camt.search(ns): |
|
|
raise ValueError('no camt: ' + ns) |
|
|
raise ValueError('no camt: ' + ns) |
|
|
# Check wether version 052 or 053: |
|
|
|
|
|
|
|
|
# Check wether version 052 ,053 or 054: |
|
|
re_camt_version = re.compile( |
|
|
re_camt_version = re.compile( |
|
|
r'(^urn:iso:std:iso:20022:tech:xsd:camt.053.' |
|
|
|
|
|
|
|
|
r'(^urn:iso:std:iso:20022:tech:xsd:camt.054.' |
|
|
|
|
|
r'|^urn:iso:std:iso:20022:tech:xsd:camt.053.' |
|
|
r'|^urn:iso:std:iso:20022:tech:xsd:camt.052.' |
|
|
r'|^urn:iso:std:iso:20022:tech:xsd:camt.052.' |
|
|
|
|
|
r'|^ISO:camt.054.' |
|
|
r'|^ISO:camt.053.' |
|
|
r'|^ISO:camt.053.' |
|
|
r'|^ISO:camt.052.)' |
|
|
r'|^ISO:camt.052.)' |
|
|
) |
|
|
) |
|
|
if not re_camt_version.search(ns): |
|
|
if not re_camt_version.search(ns): |
|
|
raise ValueError('no camt 052 or 053: ' + ns) |
|
|
|
|
|
|
|
|
raise ValueError('no camt 052 or 053 or 054: ' + ns) |
|
|
# Check GrpHdr element: |
|
|
# Check GrpHdr element: |
|
|
root_0_0 = root[0][0].tag[len(ns) + 2:] # strip namespace |
|
|
root_0_0 = root[0][0].tag[len(ns) + 2:] # strip namespace |
|
|
if root_0_0 != 'GrpHdr': |
|
|
if root_0_0 != 'GrpHdr': |
|
|
raise ValueError('expected GrpHdr, got: ' + root_0_0) |
|
|
raise ValueError('expected GrpHdr, got: ' + root_0_0) |
|
|
|
|
|
|
|
|
def parse(self, data): |
|
|
def parse(self, data): |
|
|
"""Parse a camt.052 or camt.053 file.""" |
|
|
|
|
|
|
|
|
"""Parse a camt.052 or camt.053 or camt.054 file.""" |
|
|
try: |
|
|
try: |
|
|
root = etree.fromstring( |
|
|
root = etree.fromstring( |
|
|
data, parser=etree.XMLParser(recover=True)) |
|
|
data, parser=etree.XMLParser(recover=True)) |
|
|