AEM forms do not support "oneof" JSON Schema property ?

rohitn62196663

20-09-2018

I am trying to create a datamodel using the json generated by swagger. However I am getting an error while creating it and looks like "oneOf" property is the issue. I have gone through the below adobe doc about it.

Adobe Experience Manager Help | Creating adaptive forms using JSON Schema

So it says currently AEM forms do not support the folllowing:

  • Null type
  • Union types such as any, and
  • OneOf, AnyOf, AllOf, and NOT
  • Only Homogenous arrays are supported. So, the items constraint must be an object and not be an array.

But AllOf property worked fine. The issue was only with oneOf property. So did adobe fix the "allOf" property though it was mentioned that its not supported. Also in the same way is adobe planning to release any service pack which will fix the "oneOf" property as well ?

Below is the examaple schema of the one of and all of property mentioned in my swagger:

AllOf:

   "StateIssued": {

      "allOf": [

        {

          "$ref": "#/definitions/BaseDocument"

        },

        {

          "type": "object",

          "required": [

            "stateIssuedId"

          ],

          "properties": {

            "stateIssuedId": {

              "type": "string",

              "minLength": 3,

              "maxLength": 25,

              "example": "333224444",

              "description": "-> State that issues the identity document"

            }

          }

        }

      ]

    },

OneOf:

  "IdentityDocument": {

      "type": "object",

      "oneOf": [

        {

          "$ref": "#/definitions/StateIssued"

        },

        {

          "$ref": "#/definitions/DriverLicense"

        },

        {

          "$ref": "#/definitions/Tax"

        },

        {

          "$ref": "#/definitions/Military"

        }

      ]

    },

Accepted Solutions (1)

Accepted Solutions (1)

Mayank_Gandhi

Employee

27-09-2018

Things are already in the discussion but difficult to comment on an upgrade to OpenAPI as of now and yes 'allOf' is supported with FDM. We are working on publishing a document for the supported constructs with FDM. The earlier document which you were referring to for 'allOf' was just for Adaptive forms based on Json schema and Not FDM .

Hope this helps with the query raised earlier.

Answers (5)

Answers (5)

Mayank_Gandhi

Employee

24-09-2018

So, what I can find out is that forms is using OpenApI 2.0 and oneof was introduced in 3.0. However, I am checking internally about 'allOf' further.

Thanks

Mayank_Gandhi

Employee

21-09-2018

Hi Rohit,

I will test this internally and let you know.  Meanwhile, can you confirm what's the forms add-package deployed at your end?