Validate EDI (XML, Edifact and Ansi X12)
Functionality
- Multiupload
- No data is stored on the server
- MIME type is detected based on file content
- It is possible to upload without file extensiom
- All other files than text (edifact / ansi x12) or xml are skipped / not supported
- Validate structure (eg schema validation)
- Validate business logic (eg schematron validation)
- XSLT Styling, readable document in HTML
- Calculate content and compare with values in eg an invoice
Milestones
- Multiupload based on Dropzone JS: https://www.dropzone.dev/
- Implemented Mime-Detective in class factory: https://github.com/MediatedCommunications/Mime-Detective
- Prepared and created concept to post files several times from Dropzone JS queue
- Upload to local client (browser)
- Send file content to server to either
- Check and validate content
- Check business logic
- Style document
- Calculate prices and compare with document values
- Use RaspConfiguration (Converted to JSON)
- Detect document type to prepare for XSD (logic) and Schematron (business) validation
- LINQ lookup to get correct DocumentTypeConfig
- Schema validation with PSVI
Current task
- Cookie consent
- AntiforgeyTokens
- To scope the project only a few XML and EDIFACT versions will be implemented
- OIOUBL (danish adaption of the UBL standard)
- Peppol BIS
- Standard eg EDIFACT D96 are considere in a limited version as a start as a proof of concept
- cXML and xCBL are a possibility
- Store messages in memory cache from validation methods and display in popup
- XSLT transformations uses SaxonHE
- All stylesheet versions are suported
- Included stylesheets or XML documents are supported
Release
- WIP
- June 23: Only local test / development atm, date for a first beta release not estimated
To do list for project:
Antiforgery: https://learn.microsoft.com/en-us/aspnet/web-api/overview/security/preventing-cross-site-request-forgery-csrf-attacks
Use local postman for testing?
Unit test
Check for vulnerability
GDPR
Information or questions: Please contact plykkegaard at gmail dot com