Appendix: XML mapping GUI

From 1Archive help
Revision as of 09:57, 26 October 2016 by Onea (talk | contribs) (Created page with "=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...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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. 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 elemens

The xml : <?xml version="1.0" encoding="UTF-8"?> <Invoice>

  <amountPaid></amountPaid>

……. </Invoice> Has the same identifier and will therefore be identified as the same XML probably resulting in an import error.

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>