Skip to content

OB3: Conflict between Data Model and Json Schema! #553

Open
@Oran-Dan

Description

@Oran-Dan

Data Model specifies [0..1] or [1] options, Json Schema says AnyOf, which translates to [1..*] (all of the actual instances would be [1..2])
Conflict occurs in five occasions, all five conflicts are of the same type.
To me, it seems that both the data model and the Json Schema are wrong.
I think the Json Schema should use the word "OneOf" in all instances.
Also, the data model should say [1] in all instances.

  1. AchievementType

Data Model:
achievementType [AchievementType Enumeration] The type of achievement. This is an extensible vocabulary. [0..1]

Json Schema:

"achievementType": {
      "description": "The type of achievement. This is an extensible vocabulary.",
      "$comment": "Origin: AchievementType (EnumExt); The type of achievement, for example 'Award' or 'Certification'. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.",
      "anyOf": [  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<---------------------------------------------------------------------------------------------------
        {
          "type": "string",
          "enum": [
            "Achievement",
            "ApprenticeshipCertificate",
            "Assessment",
            "Assignment",
            "AssociateDegree",
            "Award",
            "Badge",
            "BachelorDegree",
            "Certificate",
            "CertificateOfCompletion",
            "Certification",
            "CommunityService",
            "Competency",
            "Course",
            "CoCurricular",
            "Degree",
            "Diploma",
            "DoctoralDegree",
            "Fieldwork",
            "GeneralEducationDevelopment",
            "JourneymanCertificate",
            "LearningProgram",
            "License",
            "Membership",
            "ProfessionalDoctorate",
            "QualityAssuranceCredential",
            "MasterCertificate",
            "MasterDegree",
            "MicroCredential",
            "ResearchDoctorate",
            "SecondarySchoolDiploma"
          ]
        },
        {
          "type": "string",
          "pattern": "(ext:)[a-z|A-Z|0-9|.|-|_]+"
        }
  1. AlignmentTargetType

Exact same situation

  1. IdentifierEntryType

Data Model:
identifierType [IdentifierTypeEnum Enumeration] The identifier type. [1]

Json Schema:

"identifierType": {
      "description": "The identifier type.",
      "$comment": "Origin: IdentifierTypeEnum (EnumExt)",
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "name",
            .
            .
            .
          ]
        },
        {
          "type": "string",
          "pattern": "(ext:)[a-z|A-Z|0-9|.|-|_]+"
        }
      ]
  1. IdentityObjectType

Same situation as 3

  1. ResultDescriptionType

Same as 3 and 4

If the proposed solution is agreed upon, I can open a pull request for it as well.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions