OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

ubl-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Re: [ubl-comment] JSON alternative UBL representation

We've experimented quite a bit with JSON syntax for UBL here in Australia 

See http://ausdigital.org/ausdigital-syn/

There's also free lossless transforms and validators at http://testpoint.io/syn


Steven Capell
Mob: 0410 437854

On 6 Sep 2017, at 6:09 pm, Casper Rafn-Nørregård <crn@tradeshift.com> wrote:

Dear UBL Committee

Tradeshift is happy to see the formalization of an JSON alternative UBL representation in form of JSON (draft-04) Schemas [0]. We are in the process of aligning our own JSON representations to match these. In that process, we have tried to perform JSON schema validation using the schemas published here [1]

I have the following comments:

1: The "common" and "maindoc" JSON schemas are lacking the $id property,

   From the spec:

   "The "$id" keyword defines a URI for the schema, and the base URI that other URI references within the schema are resolved against. The "$id" keyword itself is resolved against the base URI that the object as a whole appears in."

   So if e.g. the "UBL-Invoice-2.1.json" would define

   "$id": "http://mynet.com/schemas/UBL-Invoice-2.1.json#"

   and the "UBL-CommonBasicComponents-2.1" would define

   "$id": "http://mynet.com/schemas/UBL-CommonBasicComponents-2.1.json#"

   Then references should be written like

   "$ref": "UBL-CommonBasicComponents-2.1.json#/definitions/UBLVersionID"

   Which is much cleaner IMHO than the relative path solution, which also is not a valid URI e.g. "../common/", and also to my knowledge how most tools work.

2: Any plan for updating the schema version to the final version?

3: The DateType in UBL-UnqualifiedDataTypes-2.1.json is defined as

   allOf: [


               type: "string",

               format: "date-time"



               type: "string",

               pattern: "^-*[^T:-]+-[^T:]+$"



   I believe that to be contradicting since "date-time" is "full-date "T" full-time" [2], that cannot coexist with the regex pattern as well.

I have been unable to find any previous discussion of this, please bear with me if this has been discussed before.

I have uploaded a ZIP file containing a small node script that can do validation of an invoice. Also an upgraded version of the JSON schemas to version 6 is included.

Thank you for your consideration.

[0] https://docs.oasis-open.org/ubl/UBL-2.1-JSON/v1.0/UBL-2.1-JSON-v1.0.html

[1] http://docs.oasis-open.org/ubl/UBL-2.1-JSON/v1.0/cnd02/json-schema/

[2] https://tools.ietf.org/html/rfc3339

[3] https://drive.google.com/file/d/0BwBEXaUe1bJIdTVHaUlpY3J1VXM/view?usp=sharing

Best regards

Casper Rafn-Nørregård


Casper Rafn-Nørregård
Senior Software Developer

Cell: +45 25321282
Skype: casper.rafn
Twitter: @casperrafn

The Business Commerce Platform 
tradeshift.com ׀ tradeshift blog

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]