RicoSuter/NJsonSchema

Unable to parse schema with references to other schemas

Ouverte

#328 ouverte le 28 févr. 2017

 (4 commentaires) (0 réaction) (0 personne assignée)C# (550 forks)github user discovery
help wantedtype: bug

Métriques du dépôt

Stars
 (1 581 étoiles)
Métriques de merge PR
 (Merge moyen 39j 6h) (1 PR mergée en 30 j)

Description

I'm trying to generate POCO's from the following JSON 4 schema, which has references to a number of other files.

http://docs.oasis-open.org/ubl/UBL-2.1-JSON/v1.0/cnprd01/json-schema/maindoc/UBL-Invoice-2.1.json

Here is my very basic code.

class Program
    {
        static void Main(string[] args)
        {
            using (var schema = JsonSchema4.FromUrlAsync("http://docs.oasis-open.org/ubl/UBL-2.1-JSON/v1.0/cnprd01/json-schema/maindoc/UBL-Invoice-2.1.json"))
            {
                Console.WriteLine("Reading schema");
                var generator = new CSharpGenerator(schema.Result);

                Console.WriteLine("Writing classes");
                var file = generator.GenerateFile(@"C:\TEMP\Classes\Invoice.cs");
            }
        }
    }

I'm getting the following error

{"Could not resolve the JSON path '../common/UBL-CommonExtensionComponents-2.1.json#/definitions/UBLExtensions' with the full JSON path 'http://docs.oasis-open.org/ubl/UBL-2.1-JSON/v1.0/cnprd01/json-schema/common/UBL-CommonExtensionComponents-2.1.json#/definitions/UBLExtensions'."}

The generator seems to have issue with the following $ref code, of which there are many ocurrences

"properties": {

        "UBLExtensions": {
          "title": "UBLExtensions",
          "description": "An optional set of extensions to the committee model",
          "items": { 
            "$ref": "../common/UBL-CommonExtensionComponents-2.1.json#/definitions/UBLExtensions" },
          "maxItems": 1,
          "minItems": 1,
          "additionalProperties": false,
          "type": "array"
          },

Any ideas how I resolve it?

Guide contributeur