Difference between revisions of "Appendix: XML mapping GUI"
(→Identifying mapping types) |
|||
Line 32: | Line 32: | ||
=Define new XML Mapping in the application= | =Define new XML Mapping in the application= | ||
==Identifying mapping types== | ==Identifying mapping types== | ||
− | In the settings menu mapping types can be added and modified. | + | In the settings menu mapping types can be added and modified. |
+ | |||
[[File:MappingTypeMenu.png]] | [[File:MappingTypeMenu.png]] | ||
+ | |||
A mapping type is identified by the root node of the xml and the namespace of this root node. | A mapping type is identified by the root node of the xml and the namespace of this root node. | ||
+ | |||
When adding a mapping type, a name must be specified and an example xml must be uploaded. | When adding a mapping type, a name must be specified and an example xml must be uploaded. | ||
+ | |||
[[File:EditMappingType1.png]] | [[File:EditMappingType1.png]] | ||
+ | |||
The Root element and its namespace is read from the example Xml File and can’t be changed. | The Root element and its namespace is read from the example Xml File and can’t be changed. | ||
+ | |||
The tree structure of the xml file is shown. | The tree structure of the xml file is shown. | ||
+ | |||
[[File:EditMappingType2.png]] | [[File:EditMappingType2.png]] | ||
+ | |||
The application allows to remove certain unused nodes, or to mark some nodes as identifying columns by clicking on the nodes. | The application allows to remove certain unused nodes, or to mark some nodes as identifying columns by clicking on the nodes. | ||
− | By clicking the [[File:addIcon.png]] icon, the xml (or another xml with same rootnode and namespace ) can be re-uploaded to add additional nodes. | + | |
+ | By clicking the [[File:addIcon.png]] icon, the xml (or another xml with same rootnode and namespace ) can be re-uploaded to add additional nodes. | ||
==Identify mappings== | ==Identify mappings== |
Revision as of 10:22, 26 October 2016
Contents
1 Goal
Currently there is a wide range of standards for electronic invoices on the market.
Ranging from UBL implementations (ubl allows custom implementations) to CENBII and custom implementations.
To be able to support the import of a broad range of e-invoicing we are proposing a solution that enables the users to create custom mapping of xml files.
2 Identify XML
To be able to import different xml types we have to setup some business rules to identify quickly which kind of xml we are handling.
The first identifier of an xml is the name and namespace of the root element. It is therefore discouraged to work with xml’s with empty namespaces.
(if 2 vendors would use empty namespaces, and the name of their root element would be the same, xml’s will be confused)
Next to the root element, values of certain elements can also be added to the xml identifier. But those elements are fixed for a certain root element (and its namespace).
Examples:
- 1.
<?xml version="1.0" encoding="UTF-8"?><Invoice> <amount></amount> ….</Invoice>
- Will be identified as an Xml with the root Element Invoice and an empty namespace, and no other identifying elements
-
This setup is strongly discouraged. - 2.
<?xml version="1.0" encoding="UTF-8"?><Invoice><implementation>customer 1</implementation><amount></amount>……. </Invoice>
- Will be identified as an Xml with the root Element Invoice and an empty namespace, but this time we will define that the element “implementation” is an additional identifier for the Xml with this root element.
- The xml :
<?xml version="1.0" encoding="UTF-8"?><Invoice><implementation>customer 2</implementation><amountPaid></amountPaid>…….</Invoice>
- Can in this case define it’s own mapping.
- 3.For UBL the root element is “Invoice” with namespace “urn:oasis:names:specification:ubl:schema:xsd:Invoice-2”
- This is identical for UBL 2.0 and 2.1.
- But we can add additional identifiers “UBLVersion”, “CustomizationID” and “ProfileID” that identify the UBL version and the implementation of the UBL standard of a particular customer.
<?xml version="1.0" encoding="UTF-8"?><Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" ><cbc:UBLVersionID>2.0</cbc:UBLVersionID> <cbc:CustomizationID>1.0</cbc:CustomizationID><cbc:ProfileID>ExactOnline</cbc:ProfileID>…</invoice>
3 Define new XML Mapping in the application
3.1 Identifying mapping types
In the settings menu mapping types can be added and modified.
A mapping type is identified by the root node of the xml and the namespace of this root node.
When adding a mapping type, a name must be specified and an example xml must be uploaded.
The Root element and its namespace is read from the example Xml File and can’t be changed.
The tree structure of the xml file is shown.
The application allows to remove certain unused nodes, or to mark some nodes as identifying columns by clicking on the nodes.
By clicking the icon, the xml (or another xml with same rootnode and namespace ) can be re-uploaded to add additional nodes.
3.2 Identify mappings
- 2.