{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$comment": "DDI Lifecycle Data Documentation 4.0 Public Review",
  "type": "object",
  "properties": {
    "topLevelReferences": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Reference"
      },
      "minItems": 0,
      "description": "References to the top-level items in this container."
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "oneOf": [
          {
            "allOf": [
              {
                "$ref": "#/$defs/ApprovalReview"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ApprovalReview"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Archive"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Archive"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Category"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Category"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/CategoryGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "CategoryGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/CategoryScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "CategoryScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ClassificationCorrespondenceTable"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ClassificationCorrespondenceTable"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ClassificationFamily"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ClassificationFamily"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ClassificationIndex"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ClassificationIndex"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ClassificationItem"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ClassificationItem"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ClassificationLevel"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ClassificationLevel"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ClassificationSeries"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ClassificationSeries"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/CodeList"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "CodeList"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/CodeListGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "CodeListGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/CodeListScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "CodeListScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/CognitiveExpertReviewActivity"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "CognitiveExpertReviewActivity"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/CognitiveInterviewActivity"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "CognitiveInterviewActivity"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Comparison"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Comparison"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ComputationItem"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ComputationItem"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Concept"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Concept"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ConceptGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ConceptGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ConceptScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ConceptScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ConceptualComponent"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ConceptualComponent"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ConceptualVariable"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ConceptualVariable"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ConceptualVariableGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ConceptualVariableGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ConceptualVariableScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ConceptualVariableScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ContentReviewActivity"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ContentReviewActivity"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ControlConstructGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ControlConstructGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ControlConstructScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ControlConstructScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/DDIInstance"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "DDIInstance"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/DDIProfile"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "DDIProfile"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/DataCaptureDevelopment"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "DataCaptureDevelopment"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/DataCollection"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "DataCollection"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/DataRelationship"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "DataRelationship"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/DataSet"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "DataSet"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/DevelopmentActivityGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "DevelopmentActivityGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/DevelopmentActivityScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "DevelopmentActivityScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/DevelopmentImplementation"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "DevelopmentImplementation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/DevelopmentPlan"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "DevelopmentPlan"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/DevelopmentResults"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "DevelopmentResults"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/DevelopmentStep"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "DevelopmentStep"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/FocusGroupActivity"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "FocusGroupActivity"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/GeneralInstruction"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "GeneralInstruction"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/GenerationInstruction"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "GenerationInstruction"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/GenericMap"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "GenericMap"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/GeographicLocation"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "GeographicLocation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/GeographicLocationGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "GeographicLocationGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/GeographicLocationScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "GeographicLocationScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/GeographicStructure"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "GeographicStructure"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/GeographicStructureGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "GeographicStructureGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/GeographicStructureScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "GeographicStructureScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Group"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Group"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/IfThenElse"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "IfThenElse"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/InLineNCubeRecordLayout"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "InLineNCubeRecordLayout"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Individual"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Individual"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/InformationClassification"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "InformationClassification"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Instruction"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Instruction"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/InstructionGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "InstructionGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Instrument"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Instrument"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/InstrumentGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "InstrumentGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/InstrumentScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "InstrumentScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/InterviewerInstructionScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "InterviewerInstructionScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/LocalHoldingPackage"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "LocalHoldingPackage"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/LogicalProduct"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "LogicalProduct"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Loop"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Loop"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ManagedCategoryRepresentation"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ManagedCategoryRepresentation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ManagedCodeRepresentation"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ManagedCodeRepresentation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ManagedDateTimeRepresentation"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ManagedDateTimeRepresentation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ManagedDistributionRepresentation"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ManagedDistributionRepresentation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ManagedExternalCategoryRepresentation"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ManagedExternalCategoryRepresentation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ManagedGeographicLocationCodeRepresentation"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ManagedGeographicLocationCodeRepresentation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ManagedGeographicRepresentation"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ManagedGeographicRepresentation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ManagedGeographicStructureCodeRepresentation"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ManagedGeographicStructureCodeRepresentation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ManagedLocationRepresentation"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ManagedLocationRepresentation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ManagedMissingValuesRepresentation"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ManagedMissingValuesRepresentation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ManagedNominalRepresentation"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ManagedNominalRepresentation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ManagedNumericRepresentation"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ManagedNumericRepresentation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ManagedRankingRepresentation"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ManagedRankingRepresentation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ManagedRepresentationGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ManagedRepresentationGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ManagedRepresentationScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ManagedRepresentationScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ManagedScaleRepresentation"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ManagedScaleRepresentation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ManagedTextRepresentation"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ManagedTextRepresentation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/MeasurementConstruct"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "MeasurementConstruct"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/MeasurementGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "MeasurementGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/MeasurementItem"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "MeasurementItem"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/MeasurementScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "MeasurementScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Methodology"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Methodology"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/NCube"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "NCube"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/NCubeGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "NCubeGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/NCubeInstance"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "NCubeInstance"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/NCubeInstanceI"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "NCubeInstanceI"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/NCubeInstanceT"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "NCubeInstanceT"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/NCubeScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "NCubeScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Organization"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Organization"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/OrganizationGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "OrganizationGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/OrganizationScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "OrganizationScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/OtherMaterial"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "OtherMaterial"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/OtherMaterialGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "OtherMaterialGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/OtherMaterialScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "OtherMaterialScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/PhysicalDataProduct"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "PhysicalDataProduct"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/PhysicalInstance"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "PhysicalInstance"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/PhysicalInstanceGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "PhysicalInstanceGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/PhysicalStructure"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "PhysicalStructure"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/PhysicalStructureGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "PhysicalStructureGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/PhysicalStructureScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "PhysicalStructureScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Population"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Population"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/PopulationGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "PopulationGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/PopulationScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "PopulationScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/PretestActivity"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "PretestActivity"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ProcessingEvent"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ProcessingEvent"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ProcessingEventGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ProcessingEventGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ProcessingEventScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ProcessingEventScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ProcessingInstructionGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ProcessingInstructionGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ProcessingInstructionScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ProcessingInstructionScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ProprietaryRecordLayout"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ProprietaryRecordLayout"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/QualityScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "QualityScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/QualityStandard"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "QualityStandard"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/QualityStandardGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "QualityStandardGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/QualityStatement"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "QualityStatement"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/QualityStatementGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "QualityStatementGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/QuestionBlock"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "QuestionBlock"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/QuestionConstruct"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "QuestionConstruct"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/QuestionGrid"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "QuestionGrid"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/QuestionGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "QuestionGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/QuestionItem"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "QuestionItem"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/QuestionScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "QuestionScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/RecordLayout"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "RecordLayout"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/RecordLayoutGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "RecordLayoutGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/RecordLayoutScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "RecordLayoutScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Relation"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Relation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/RepeatUntil"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "RepeatUntil"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/RepeatWhile"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "RepeatWhile"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/RepresentationMap"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "RepresentationMap"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/RepresentedVariable"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "RepresentedVariable"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/RepresentedVariableGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "RepresentedVariableGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/RepresentedVariableScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "RepresentedVariableScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/ResourcePackage"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ResourcePackage"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Sample"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Sample"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/SampleFrame"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "SampleFrame"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/SampleStep"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "SampleStep"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/SamplingInformationGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "SamplingInformationGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/SamplingInformationScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "SamplingInformationScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/SamplingPlan"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "SamplingPlan"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/SamplingStage"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "SamplingStage"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Sequence"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Sequence"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Split"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Split"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/SplitJoin"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "SplitJoin"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/StatementItem"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "StatementItem"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/StatisticalClassification"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "StatisticalClassification"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/StudyUnit"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "StudyUnit"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/SubUniverseClass"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "SubUniverseClass"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/TabularNCubeRecordLayout"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "TabularNCubeRecordLayout"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/TranslationActivity"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "TranslationActivity"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/UnitType"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "UnitType"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/UnitTypeGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "UnitTypeGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/UnitTypeScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "UnitTypeScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Universe"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Universe"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/UniverseGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "UniverseGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/UniverseScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "UniverseScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Variable"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Variable"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/VariableGroup"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "VariableGroup"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/VariableScheme"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "VariableScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/VariableStatistics"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "VariableStatistics"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/Weighting"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Weighting"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/$defs/WeightingMethodology"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "WeightingMethodology"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          }
        ],
        "unevaluatedProperties": false
      },
      "minItems": 0,
      "description": "Complete item definitions serialized in this container."
    }
  },
  "required": [
    "items"
  ],
  "additionalProperties": false,
  "$defs": {
    "boolean": {
      "type": "boolean",
      "description": "A Boolean value: true or false."
    },
    "string": {
      "type": "string",
      "description": "An XML 1.0 Unicode text string; lengths count Unicode scalar values."
    },
    "decimal": {
      "type": "number",
      "x-cogs-datatype": "decimal",
      "description": "A finite decimal value expressible as c / 10^s, where c is an integer with absolute value at most 79228162514264337593543950335 and s is an integer from 0 through 28. Its exact decimal value must be preserved when rounded to IEEE 754 binary64 (nearest, ties to even) and formatted as the shortest round-trip decimal representation. Equivalent JSON exponent forms and trailing zeros are accepted; values requiring decimal rounding are rejected."
    },
    "float": {
      "type": "number",
      "x-cogs-datatype": "float",
      "description": "A finite IEEE 754 binary32 value represented as a JSON number."
    },
    "double": {
      "type": "number",
      "x-cogs-datatype": "double",
      "description": "A finite IEEE 754 binary64 value represented as a JSON number."
    },
    "duration": {
      "type": "string",
      "format": "duration",
      "x-cogs-datatype": "duration",
      "description": "An elapsed duration without years/months: whole milliseconds in [-922337203685477, 922337203685477]."
    },
    "dateTime": {
      "type": "string",
      "format": "date-time",
      "x-cogs-datatype": "dateTime",
      "description": "A timezone-required instant in UTC years 0001 through 9999, at whole-millisecond precision."
    },
    "time": {
      "type": "string",
      "format": "time",
      "x-cogs-datatype": "time",
      "description": "A local time without timezone, at microsecond precision; 24:00:00 canonicalizes to 00:00:00."
    },
    "date": {
      "type": "string",
      "format": "date",
      "x-cogs-datatype": "date",
      "description": "A local date in years 0001 through 9999, without timezone."
    },
    "gYearMonth": {
      "type": "object",
      "properties": {
        "Year": {
          "oneOf": [
            {
              "type": "integer",
              "minimum": -2147483648,
              "maximum": -1
            },
            {
              "type": "integer",
              "minimum": 1,
              "maximum": 2147483647
            }
          ]
        },
        "Month": {
          "type": "integer",
          "minimum": 1,
          "maximum": 12
        },
        "Timezone": {
          "type": "string",
          "pattern": "^(?:Z|[\u002B-](?:(?:0[0-9]|1[0-3]):[0-5][0-9]|14:00))$"
        }
      },
      "required": [
        "Year",
        "Month"
      ],
      "additionalProperties": false,
      "x-cogs-datatype": "gYearMonth",
      "description": "An XML Schema gYearMonth represented by Year, Month, and optional Timezone components; Year is a nonzero signed 32-bit integer."
    },
    "gYear": {
      "type": "object",
      "properties": {
        "Year": {
          "oneOf": [
            {
              "type": "integer",
              "minimum": -2147483648,
              "maximum": -1
            },
            {
              "type": "integer",
              "minimum": 1,
              "maximum": 2147483647
            }
          ]
        },
        "Timezone": {
          "type": "string",
          "pattern": "^(?:Z|[\u002B-](?:(?:0[0-9]|1[0-3]):[0-5][0-9]|14:00))$"
        }
      },
      "required": [
        "Year"
      ],
      "additionalProperties": false,
      "x-cogs-datatype": "gYear",
      "description": "An XML Schema gYear represented by Year and optional Timezone components; Year is a nonzero signed 32-bit integer."
    },
    "gMonthDay": {
      "type": "object",
      "properties": {
        "Month": {
          "type": "integer",
          "minimum": 1,
          "maximum": 12
        },
        "Day": {
          "type": "integer",
          "minimum": 1,
          "maximum": 31
        },
        "Timezone": {
          "type": "string",
          "pattern": "^(?:Z|[\u002B-](?:(?:0[0-9]|1[0-3]):[0-5][0-9]|14:00))$"
        }
      },
      "required": [
        "Month",
        "Day"
      ],
      "additionalProperties": false,
      "oneOf": [
        {
          "properties": {
            "Month": {
              "enum": [
                2
              ]
            },
            "Day": {
              "type": "integer",
              "minimum": 1,
              "maximum": 29
            }
          }
        },
        {
          "properties": {
            "Month": {
              "enum": [
                4,
                6,
                9,
                11
              ]
            },
            "Day": {
              "type": "integer",
              "minimum": 1,
              "maximum": 30
            }
          }
        },
        {
          "properties": {
            "Month": {
              "enum": [
                1,
                3,
                5,
                7,
                8,
                10,
                12
              ]
            },
            "Day": {
              "type": "integer",
              "minimum": 1,
              "maximum": 31
            }
          }
        }
      ],
      "x-cogs-datatype": "gMonthDay",
      "description": "An XML Schema gMonthDay represented by Month, Day, and optional Timezone components."
    },
    "gDay": {
      "type": "object",
      "properties": {
        "Day": {
          "type": "integer",
          "minimum": 1,
          "maximum": 31
        },
        "Timezone": {
          "type": "string",
          "pattern": "^(?:Z|[\u002B-](?:(?:0[0-9]|1[0-3]):[0-5][0-9]|14:00))$"
        }
      },
      "required": [
        "Day"
      ],
      "additionalProperties": false,
      "x-cogs-datatype": "gDay",
      "description": "An XML Schema gDay represented by Day and optional Timezone components."
    },
    "gMonth": {
      "type": "object",
      "properties": {
        "Month": {
          "type": "integer",
          "minimum": 1,
          "maximum": 12
        },
        "Timezone": {
          "type": "string",
          "pattern": "^(?:Z|[\u002B-](?:(?:0[0-9]|1[0-3]):[0-5][0-9]|14:00))$"
        }
      },
      "required": [
        "Month"
      ],
      "additionalProperties": false,
      "x-cogs-datatype": "gMonth",
      "description": "An XML Schema gMonth represented by Month and optional Timezone components."
    },
    "anyURI": {
      "type": "string",
      "format": "uri",
      "x-cogs-datatype": "anyURI",
      "description": "An RFC 3986 relative or absolute URI reference."
    },
    "language": {
      "type": "string",
      "pattern": "^(?:(?:(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4}|[A-Za-z]{5,8})(?:-[A-Za-z]{4})?(?:-(?:[A-Za-z]{2}|[0-9]{3}))?(?:-(?:[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(?:-[0-9A-WY-Za-wy-z](?:-[A-Za-z0-9]{2,8})\u002B)*(?:-[xX](?:-[A-Za-z0-9]{1,8})\u002B)?|[xX](?:-[A-Za-z0-9]{1,8})\u002B)|[eE][nN]-[gG][bB]-[oO][eE][dD]|[iI]-[aA][mM][iI]|[iI]-[bB][nN][nN]|[iI]-[dD][eE][fF][aA][uU][lL][tT]|[iI]-[eE][nN][oO][cC][hH][iI][aA][nN]|[iI]-[hH][aA][kK]|[iI]-[kK][lL][iI][nN][gG][oO][nN]|[iI]-[lL][uU][xX]|[iI]-[mM][iI][nN][gG][oO]|[iI]-[nN][aA][vV][aA][jJ][oO]|[iI]-[pP][wW][nN]|[iI]-[tT][aA][oO]|[iI]-[tT][aA][yY]|[iI]-[tT][sS][uU]|[sS][gG][nN]-[bB][eE]-[fF][rR]|[sS][gG][nN]-[bB][eE]-[nN][lL]|[sS][gG][nN]-[cC][hH]-[dD][eE]|[aA][rR][tT]-[lL][oO][jJ][bB][aA][nN]|[cC][eE][lL]-[gG][aA][uU][lL][iI][sS][hH]|[nN][oO]-[bB][oO][kK]|[nN][oO]-[nN][yY][nN]|[zZ][hH]-[gG][uU][oO][yY][uU]|[zZ][hH]-[hH][aA][kK][kK][aA]|[zZ][hH]-[mM][iI][nN]|[zZ][hH]-[mM][iI][nN]-[nN][aA][nN]|[zZ][hH]-[xX][iI][aA][nN][gG])$(?![\\s\\S])",
      "x-cogs-datatype": "language",
      "description": "A language tag using COGS BCP 47 syntax."
    },
    "nonPositiveInteger": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 0,
      "description": "An integer from -9007199254740991 through zero."
    },
    "negativeInteger": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": -1,
      "description": "An integer from -9007199254740991 through -1."
    },
    "long": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "An integer from -9007199254740991 through 9007199254740991."
    },
    "int": {
      "type": "integer",
      "minimum": -2147483648,
      "maximum": 2147483647,
      "description": "A signed 32-bit integer."
    },
    "nonNegativeInteger": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991,
      "description": "An integer from zero through 9007199254740991."
    },
    "unsignedLong": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991,
      "description": "An integer from zero through 9007199254740991."
    },
    "positiveInteger": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991,
      "description": "An integer from 1 through 9007199254740991."
    },
    "langString": {
      "type": "object",
      "properties": {
        "@language": {
          "$ref": "#/$defs/language"
        },
        "@value": {
          "type": "string"
        }
      },
      "required": [
        "@language",
        "@value"
      ],
      "additionalProperties": false,
      "description": "A Unicode text string paired with a required BCP 47 language tag."
    },
    "cogsDate": {
      "type": "object",
      "properties": {
        "DateTime": {
          "$ref": "#/$defs/dateTime"
        },
        "Date": {
          "$ref": "#/$defs/date"
        },
        "GYearMonth": {
          "$ref": "#/$defs/gYearMonth"
        },
        "GYear": {
          "$ref": "#/$defs/gYear"
        },
        "Duration": {
          "$ref": "#/$defs/duration"
        }
      },
      "oneOf": [
        {
          "required": [
            "DateTime"
          ]
        },
        {
          "required": [
            "Date"
          ]
        },
        {
          "required": [
            "GYearMonth"
          ]
        },
        {
          "required": [
            "GYear"
          ]
        },
        {
          "required": [
            "Duration"
          ]
        }
      ],
      "additionalProperties": false,
      "description": "A date value containing exactly one DateTime, Date, GYearMonth, GYear, or Duration arm."
    },
    "AccessRestrictionDateType": {
      "description": "The date or date range of the access restriction for all or portions of the data. Includes a reason for the access restriction as well as the user group to which the restriction applies.",
      "allOf": [
        {
          "$ref": "#/$defs/DateType"
        },
        {
          "type": "object",
          "properties": {
            "Reason": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "The reason for the access restriction."
            },
            "User": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "The user group to whom the restriction applies."
            }
          }
        }
      ]
    },
    "AccessType": {
      "description": "Describes access to the holdings of the archive or to a specific data product. In addition to the name, label, and description for access. This item includes a confidentiality statement, descriptions of the access permissions required, restrictions to access, citation requirements, depositor requirements, conditions for access, a disclaimer, any time limits for access restrictions, and contact information regarding access.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfAccess": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The type of data access condition. The use of a controlled vocabulary is strongly recommended. "
            },
            "AccessTypeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name by which the description of access is known."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the description of access."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the access description."
            },
            "ConfidentialityStatement": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A statement regarding the confidentiality of the related data or metadata."
            },
            "AccessPermission": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/FormType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A link to a form used to provide access to the data or metadata including a statement of the purpose of the form."
            },
            "Restrictions": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A statement regarding restrictions to access."
            },
            "CitationRequirement": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A statement regarding the citation requirement."
            },
            "DepositRequirement": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A statement of deposit requirements for the data. "
            },
            "AccessConditions": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Conditions for access to the metadata and/or data. "
            },
            "Disclaimer": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A disclaimer regarding the liability of the data producers or providers."
            },
            "AccessRestrictionDate": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/AccessRestrictionDateType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The date or date range of the access restriction for all or portions of the data. Includes a reason for the access restriction as well as the user group to which the restriction applies."
            },
            "ContactOrganizationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Individual",
                          "Organization"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to an organization or individual to contact for further information regarding the metadata or data."
            }
          }
        }
      ]
    },
    "ActionToMinimizeLossesType": {
      "description": "Describes action taken to minimize loss of data from the collection event. This may include a brief term, such as from a controlled vocabulary, and a full description of the actions taken. If multiple actions were taken repeat this element.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfActionToMinimizeLosses": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A brief textual description of the action taken to minimize loss of data. Supports the use of an external controlled vocabulary"
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Full description of the action taken to minimize loss of data."
            }
          }
        }
      ]
    },
    "ActionType": {
      "type": "object",
      "properties": {
        "RegionOfAction": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/SegmentType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Identifies the region of the object where the action needs to occur based on the object type by specifying a segment of the object."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Describes the specific actions that should take place."
        },
        "RegExp": {
          "$ref": "#/$defs/string",
          "description": "Allows for the provision of a regular expression to describe a mark (such as a specific letter or number)."
        }
      },
      "description": "Describes the region of an image, recording, or text where an action where a specified action is performed and the type of action taken (i.e., Mark an \u0022X\u0022 where the actor should be standing on the picture of the stage.)."
    },
    "AdditionalDataCollectionType": {
      "type": "object",
      "properties": {
        "TypeOfAdditionalData": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Specifies type of additional data collected. Supports the use of a controlled vocabulary."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Description of the additional data collected."
        }
      },
      "description": "Description of the method and mode of data collection in administering the pretest. Notes any additional data collected in the administration of the pretest."
    },
    "AddressType": {
      "type": "object",
      "properties": {
        "TypeOfAddress": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Indicates address type (i.e. home, office, mailing, etc.). The DDI Alliance has provided a controlled vocabulary (TypeOfAddress) to support this element at http://www.ddialliance.org/controlled-vocabularies."
        },
        "Line": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/string"
          },
          "minItems": 0,
          "description": "Number and street including office or suite number. May use multiple lines."
        },
        "CityPlaceLocal": {
          "$ref": "#/$defs/string",
          "description": "City, Place, or local area used as part of an address."
        },
        "StateProvince": {
          "$ref": "#/$defs/string",
          "description": "A major subnational division such as a state or province used to identify a major region within an address."
        },
        "PostalCode": {
          "$ref": "#/$defs/string",
          "description": "Postal or ZIP Code"
        },
        "CountryCode": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CountryCodeType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Country of the location"
        },
        "GeographicPoint": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/PointType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Geographic coordinate point for the location"
        },
        "TimeZone": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Time zone of the location expressed as code. The DDI Alliance has provided a controlled vocabulary (TimeZone) to support this element at http://www.ddialliance.org/controlled-vocabularies."
        },
        "EffectivePeriod": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Clarifies when the identification information is accurate."
        },
        "Privacy": {
          "$ref": "#/$defs/string",
          "enum": [
            "public",
            "restricted",
            "private"
          ],
          "description": "A basic set of privacy codes for the parent element. These may be stricter than the general access restrictions for the overall metadata. If available codes are insufficient this may also contain any string."
        },
        "IsPreferred": {
          "$ref": "#/$defs/boolean",
          "description": "Set to \u0022true\u0022 if this is the preferred location for contacting the organization or individual."
        }
      },
      "description": "Location address identifying each part of the address as separate elements, identifying the type of address, the level of privacy associated with the release of the address, and a flag to identify the preferred address for contact."
    },
    "AggregationDefinitionType": {
      "type": "object",
      "properties": {
        "IndependentDimension": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/nonNegativeInteger"
          },
          "minItems": 0,
          "description": "The rank of a dimension that acts as the denominator (independent variable)."
        },
        "DependentDimension": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/nonNegativeInteger"
          },
          "minItems": 0,
          "description": "The rank of a dimension that acts as the numerator (dependent variable)."
        },
        "IsNCubeUniverse": {
          "$ref": "#/$defs/boolean",
          "description": "When true indicates that total count of the NCube as described by the universe acts as the independent variable (denominator) and that all dimensions are used to define the dependent variable (numerator). When false, use the IndependentDimension and DependentDimension elements to assign each rank to its appropriate role."
        }
      },
      "description": "Identifies the independent (denominator) and dependent (numerator) dimensions for calculating aggregate measures such as percent. When two or more independent or dependent dimensions are listed here, the value is defined as the intersection of the listed dimensions."
    },
    "AggregationType": {
      "type": "object",
      "properties": {
        "AggregationMethod": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Identification of the type of aggregation method used. Supports the use of a controlled vocabulary. DDI strongly recommends the use of a controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (AggregationMethod) to support this element at http://www.ddialliance.org/controlled-vocabularies."
        },
        "AggregationVariables": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/AggregationVariablesType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Identifies the independent and dependent variables used in the aggregation process in-line."
        },
        "AggregationVariablesReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/AggregationVariablesType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A reference to an existing AggregationVariables description."
        }
      },
      "description": "Describes the aggregation method and the variables used in the aggregation process. Identifies the method using an external controlled vocabulary and identifies the variables used either in-line or by reference to an existing description."
    },
    "AggregationVariablesType": {
      "description": "Identifies the independent and dependent variables used in the aggregation process. Note that in the case of calculating a percentage, mean, etc. of a dependent value against the total population of the cell, there is no independent variable.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "IndependentVariableReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Variable"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to a variable, which is an important constraint for the computed aggregation measure and has the potential to invoke a change in a dependent variable like sex for average of income. In the context of calculating percentages, the use of Sex as the independent variable would indicate that the percentages provided represent the percentage of the dependent variable associated with a specific value for Sex (i.e., the dependent variable expressed as a percentage of the total for Males). This would be opposed to the percent for the full population (the percent of the total grid population falling within that particular cell)."
            },
            "DependentVariableReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Variable"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to a variable, for which the aggregate measure is computed like average of income."
            }
          }
        }
      ]
    },
    "AnchorType": {
      "type": "object",
      "properties": {
        "CategoryReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Category"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to the category containing the label for the anchor point."
        },
        "Value_string": {
          "$ref": "#/$defs/string",
          "description": "The value of the anchor point."
        }
      },
      "description": "Allows for the attachment of a category label at any anchor point in a scale."
    },
    "ApplicationDetailsType": {
      "type": "object",
      "properties": {
        "SamplingStageReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "SamplingStage"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "References the sample plan stage in an overall sample plan. TypeOfObject should be set to SamplingStage"
        },
        "SampleFrameReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "SampleFrame"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to sample frame used. Note that this is the actual sample frame used and may differ from the recommended sample frame found in the sample plan stage referenced for this procedure. Deviation from the recommended sample frame should be described in FrameLimitations."
        },
        "FrameLimitations": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Description of limitations of the usage of the frame for the data collection.  Clarify (over/under) coverage issues, lack of needed fields, and needs to support over-sampling or deviation from recommended sample frame found in sample plan stage."
        },
        "TargetSampleSize": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/TargetSampleSizeType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "The desired sample size for this particular sample plan express in relation to its strata number if relevant. Provides means of expressing the formula used for determining the sample size."
        },
        "DateOfSample": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Date or date range when sample was drawn."
        },
        "ResponsibleForSamplingReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Individual",
                      "Organization"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "A reference to an organization or individual responsible for sampling."
        }
      },
      "description": "Provides sample stage level details where needed. Repeat for individual stages or sub-stages."
    },
    "ArchiveSpecificType": {
      "type": "object",
      "properties": {
        "ArchiveOrganizationReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Individual",
                    "Organization"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to the organization or an individual acting as the archive."
        },
        "Item": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/ItemType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Describes individual items held or distributed by the archive in connection with a study, group of studies, or resource packages. What constitutes an item is determined by the archive."
        },
        "Collection": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CollectionType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Describes a collection of items held or distributed by the archive in connection with a study, group of studies, or resource packages. What constitutes an collection is determined by the archive."
        },
        "DefaultAccess": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/AccessType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Describes access to the archive in general. The restrictions noted at this level apply to all holdings of the archive unless overridden for specified collections or items."
        },
        "FundingInformation": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/FundingInformationType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Describes funding information in relationship to the archive and its activities. This may be archive wide or related to specific collections or projects within the archive."
        },
        "Budget": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/BudgetType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "This describes the archive budget. It can be repeated for distinct budget activities such as budget periods, specific projects or types of activity."
        },
        "QualityStatementReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "QualityStatement"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "A reference to a Quality Statement regarding the activities and operation of the archive. These may include access or preservation appraisal assessments or certification."
        },
        "Coverage": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CoverageType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Documents the spatial, temporal, and/or topical coverage of the archive or division of an archive."
        }
      },
      "description": "Contains metadata specific to a particular archive\u0027s holding. This includes information on the items or collection of items held by the archive, the default terms of access, funding information and budget specific to the archive and its maintenance of this collection, reference to a quality statement related to archive activities, and coverage of the archive or sub-set of the archive."
    },
    "AreaCoverageType": {
      "type": "object",
      "properties": {
        "TypeOfArea": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Specify the type of area covered i.e. Total, Land, Water, etc. Supports the use of an external controlled vocabulary."
        },
        "MeasurementUnit": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Records the measurement unit, for example, Square Kilometer, Square Mile. Supports the use of an external controlled vocabulary."
        },
        "AreaMeasure": {
          "$ref": "#/$defs/decimal",
          "description": "The area measure expressed as a decimal for the measurement unit designated."
        }
      },
      "description": "Use to specify the area of land, water, total or other area coverage in terms of square miles/kilometers or other measure."
    },
    "AttachedAttributeIType": {
      "type": "object",
      "properties": {
        "AttributeReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/AttributeType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Reference to the attribute described in an NCube."
        },
        "Value": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Contains the value for the attribute."
        }
      },
      "description": "References the attribute description or provides a value."
    },
    "AttachedAttributeTType": {
      "type": "object",
      "properties": {
        "AttributeReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/AttributeType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Reference to the attribute described in an NCube."
        },
        "PhysicalTableLocation": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/PhysicalTableLocationType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Description of the physical location of the attribute value in the data file."
        },
        "Value": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Contains the value for the attribute."
        }
      },
      "description": "References the attribute description in the NCube and provides for a choice between describing an explicit value, or a location in a file where the value can be found."
    },
    "AttachedAttributeType": {
      "type": "object",
      "properties": {
        "AttributeReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/AttributeType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Reference to the attribute described in an NCube."
        },
        "PhysicalLocation": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/PhysicalLocationType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Description of the physical location of the attribute value in the data file."
        },
        "Value": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Contains the value for the attribute."
        }
      },
      "description": "References the attribute description in the NCube and provides for a choice between describing an explicit value, or a location in a file where the value can be found."
    },
    "AttachedInstructionType": {
      "type": "object",
      "properties": {
        "InterviewerInstructionReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Instruction"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to an interviewer instruction expressed as DDI XML."
        },
        "InterviewerInstructionAttachmentLocation": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/InstructionAttachmentLocationType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Allows attachment of an instruction to a specific item in a question structure. For example, to a Label, QuestionText, ResponseDomain, Response domain value, or grid cell."
        },
        "IsDisplayed": {
          "$ref": "#/$defs/boolean",
          "description": "If set to true the content of the instruction is intended to be displayed. If set to false the preference is for the instruction to be displayed upon request if this is supported by the mode of presentation."
        }
      },
      "description": ""
    },
    "AttachmentLocationType": {
      "type": "object",
      "properties": {
        "CodeReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CodeType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Identifies the value to which the new response domain is attached by a references a specific Code within the CodeDomain."
        },
        "CategoryReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Category"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Identifies the value to which the new response domain is attached by a references a specific Category within the CategoryDomain."
        },
        "DomainSpecificValue": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/DomainSpecificValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Identifies the value to which the new response domain is attached by a reference to a specific value used by the response domain and the specific value."
        }
      },
      "description": "Allows attachment of a response domain to a specific item in a code or category scheme. For example, attach a TextDomain to the value \u0022Other\u0022."
    },
    "AttributeType": {
      "description": "An attribute may be any object which should be attached to all or part of the NCube. It may be defined as a Variable or contain textual content (such as a footnote).",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "VariableReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Variable"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A reference to a variable that describes the attribute."
            },
            "AttachmentValue": {
              "$ref": "#/$defs/string",
              "description": "The value of the attachment expressed as a string, if not a variable."
            },
            "AttachmentRegionReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CoordinateRegionType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Reference to the CoordinateRegion that defines the attachment point for the attribute."
            },
            "MeasureDefinitionReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/MeasureDefinitionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Reference to the MeasureDefinition that the attribute is attached to."
            },
            "Value": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Reference to the specified Value of the MeasureDefinition that the attribute is attached to."
            },
            "AttachmentLevel": {
              "$ref": "#/$defs/string",
              "enum": [
                "Cube",
                "CoordinateRegion",
                "Dimension",
                "Measurement",
                "MeasurementValue"
              ],
              "description": "Describes the attachment level of the attribute as Cube, CoordinateRegion, Dimension, Measurement, or MeasurementValue."
            }
          }
        }
      ]
    },
    "AudioType": {
      "type": "object",
      "properties": {
        "TypeOfAudioClip": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The type of audio clip provided. Supports the use of a controlled vocabulary."
        },
        "AudioClipBegin": {
          "$ref": "#/$defs/string",
          "description": "The point to begin the audio clip. If no point is provided the assumption is that the start point is the beginning of the clip provided."
        },
        "AudioClipEnd": {
          "$ref": "#/$defs/string",
          "description": "The point to end the audio clip. If no point is provided the assumption is that the end point is the end of the clip provided."
        }
      },
      "description": "Describes the type and length of the audio segment."
    },
    "AuthorizationSourceType": {
      "type": "object",
      "properties": {
        "AuthorizingAgencyReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Individual",
                      "Organization"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "References the authorizing agency, organization, or individual."
        },
        "StatementOfAuthorization": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Text of the authorization."
        },
        "LegalMandate": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/string"
          },
          "minItems": 0,
          "description": "Provide a legal citation to a law authorizing the study/data collection. For example, a legal citation for a law authorizing a country\u0027s census."
        },
        "AuthorizationDate": {
          "$ref": "#/$defs/cogsDate",
          "description": "Identifies the date of Authorization."
        }
      },
      "description": "Identifies the authorizing agency for the study and allows for the full text of the authorization (law, regulation, or other form of authorization). May be used to list authorizations from oversight committees and other regulatory agencies."
    },
    "AuthorizedPolicySourceType": {
      "type": "object",
      "properties": {
        "OtherMaterialReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "OtherMaterial"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Inline description and link to the policy using the DDI Other Material structure."
        }
      },
      "description": "Description and link to the policy source using the DDI Other Material structure."
    },
    "AuthorizedSourceType": {
      "description": "A stack of LocationValueReferences to each of the locations of the specified PrimaryComponentLevel type that make up the Component Area. Includes a GeographicTime to allow for repetition for change over time.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "OtherMaterialReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "OtherMaterial"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A description of the authorization source using OtherMaterial. The TypeOfOtherMaterial should state AuthorizationSource. An authorization source should differentiate between codes derived for different purposes within the same agency."
            },
            "IdentifierParsingInformation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/IdentifierParsingInformationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Provides structural information for parsing the identification code structure of the Authorized Source into its separate parts."
            }
          }
        }
      ]
    },
    "BasedOnObjectType": {
      "type": "object",
      "properties": {
        "BasedOnReference": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Reference"
          },
          "minItems": 0,
          "description": "A reference to an object upon which the current object is based using a standard Reference structure. Repeat for multiple base objects. The TypeOfObject may be any Versionable or Maintainable object."
        },
        "BasedOnRationaleDescription": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Textual description of the rationale/purpose for the based on reference to inform users as to the extent and implication of the version change."
        },
        "BasedOnRationaleCode": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "RationaleCode is primarily for internal processing flags within an organization or system. Supports the use of an external controlled vocabulary."
        }
      },
      "description": "Use when creating an object that is based on an existing object or objects that are managed by a different agency or when the new object is NOT simply a version change but you wish to maintain a reference to the object that served as a basis for the new object. BasedOnObject may contain references to any number of objects which serve as a basis for this object, a BasedOnRationalDescription of how the content of the referenced object was incorporated or altered, and a BasedOnRationalCode to allow for specific typing of the BasedOnReference according to an external controlled vocabulary."
    },
    "BasicIncrementType": {
      "type": "object",
      "properties": {
        "Increment": {
          "$ref": "#/$defs/string",
          "description": "The size of the increment in units (number of characters, length, number of units)."
        },
        "StartValue": {
          "$ref": "#/$defs/string",
          "description": "The starting value or beginning point of the increment string."
        },
        "EndValue": {
          "$ref": "#/$defs/string",
          "description": "The ending value or end point of the increment string."
        }
      },
      "description": "Describes the start, end, and increment value for an incremental string (numeric, character, or length)."
    },
    "BibliographicNameType": {
      "type": "object",
      "properties": {
        "Name": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Full name of the individual or organization."
        },
        "Affiliation": {
          "$ref": "#/$defs/string",
          "description": "The affiliation of this person to an organization. This is generally an organization or sub-organization name and should be related to the specific role within which the individual is being listed."
        }
      },
      "description": "Personal names should be listed surname or family name first, followed by forename or given name. When in doubt, give the name as it appears, and do not invert. In the case of organizations where there is clearly a hierarchy present, list the parts of the hierarchy from largest to smallest, separated by full stops and a space. If it is not clear whether there is a hierarchy present, or unclear which is the larger or smaller portion of the body, give the name as it appears in the item. The name may be provided in one or more languages."
    },
    "BindingType": {
      "type": "object",
      "properties": {
        "SourceParameterReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ParameterType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A structure used to bind the content of a parameter declared as the source to a parameter declared as the target. For example, binding the output of a question to the input of a generation instruction. Question A has an OutParameter X. Generation Instruction has an InParameter Y used in the recode instruction. Binding defines the content of InParameter Y to be whatever is provided by OutParameter X for use in the calculation of the recode."
        },
        "TargetParameterReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ParameterType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A structure used to bind the content of a parameter declared as the source to a parameter declared as the target. For example, binding the output of a question to the input of a generation instruction. Question A has an OutParameter X. Generation Instruction has an InParameter Y used in the recode instruction. Binding defines the content of InParameter Y to be whatever is provided by OutParameter X for use in the calculation of the recode."
        }
      },
      "description": "A structure used to bind the content of a parameter declared as the source to a parameter declared as the target. For example, binding the output of a question to the input of a generation instruction. Question A has an OutParameter X. Generation Instruction has an InParameter Y used in the recode instruction. Binding defines the content of InParameter Y to be whatever is provided by OutParameter X for use in the calculation of the recode."
    },
    "BoundingBoxType": {
      "type": "object",
      "properties": {
        "WestLongitude": {
          "$ref": "#/$defs/decimal",
          "minimum": -180,
          "maximum": 180,
          "description": "West longitude of the bounding box. (xmin)"
        },
        "EastLongitude": {
          "$ref": "#/$defs/decimal",
          "minimum": -180,
          "maximum": 180,
          "description": "East longitude of the bounding box. (xmax)"
        },
        "SouthLatitude": {
          "$ref": "#/$defs/decimal",
          "minimum": -90,
          "maximum": 90,
          "description": "South latitude of the bounding box. (ymin)"
        },
        "NorthLatitude": {
          "$ref": "#/$defs/decimal",
          "minimum": -90,
          "maximum": 90,
          "description": "North latitude of the bounding box. (ymax)"
        }
      },
      "description": "Set of north, south, east, west coordinates defining a rectangle that encompasses the full extent of geographic coverage."
    },
    "BudgetDocumentType": {
      "type": "object",
      "properties": {
        "OtherMaterialReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "OtherMaterial"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Description and link to the BudgetDocument using the DDI Other Material structure."
        }
      },
      "description": "Description and link to the Budget Document using the DDI Other Material structure."
    },
    "BudgetType": {
      "type": "object",
      "properties": {
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the overall budget of the project."
        },
        "BudgetDocument": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/BudgetDocumentType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "References to one or more external budget documents."
        }
      },
      "description": "A description of the budget for any of the main publication types that can contain a reference to an external budget document."
    },
    "CaseIdentificationType": {
      "type": "object",
      "properties": {
        "FixedIdentifier": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/FixedIdentifierType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Reference to the variable containing the unique identifier. This may be a concatenated variable which indicates the combination of variable required to create a unique identification. If more than one variable reference is included the combination of the variable field contents must be unique and all variables are required for case identification."
        },
        "ConditionalIdentifier": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ConditionalIdentifierType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Describes the information needed to identify a specific record or case within a record type. Repeating the field allows multiple means of identifying a case referencing multiple variables."
        },
        "IsPrimary": {
          "$ref": "#/$defs/boolean",
          "description": "Indicates whether the case identifier is the primary key."
        }
      },
      "description": "Describes the information needed to identify an individual case within a record type. This may be the variable or concatenated variable used to identify a unique case of a particular record type. Often referred to as a unique key. There may be more than one means of identifying a record. For example a US Census Summary File has a LogicalRecordIdentifer that is unique to the original file within which it was published. A specific geography has a set of fields that uniquely identify it."
    },
    "CaseLawType": {
      "type": "object",
      "properties": {
        "CaseLawName": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Case Law Name."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the case law."
        },
        "CaseLawDate": {
          "$ref": "#/$defs/cogsDate",
          "description": "Date of the case law ruling."
        }
      },
      "description": "Refers to a case law ruling related to the Classification Item. "
    },
    "CaseSpecificationType": {
      "type": "object",
      "properties": {
        "ConditionalVariableReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Variable"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "References the variable containing the conditional content, provides the value of the condition."
        },
        "ConditionalVariableValue": {
          "$ref": "#/$defs/string",
          "description": "Use to specify the value of variable for which this is a case specification (i.e., GeoLevel in the example for Case Specification)."
        },
        "VariableReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Variable"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 1,
          "description": "The variables required to provide a unique identification when the conditional variable contains the stated value."
        }
      },
      "required": [
        "VariableReference"
      ],
      "description": "Case specification allows different unique identifiers to be used based on the value of an identified variable. In some cases the value of a variable (such as a geographic level) results in a different set of variables required to identify a unique case. Case specification is used to capture these combinations. For example: a file containing State, County, and Place records. The unique identifier for a State requires a combination of GeoLevel=State and the variable STATE. Place would require a combination of GeoLevel=Place and the variables STATE and PLACE."
    },
    "CategoryDomainType": {
      "description": "A response domain capturing a category (without an attached code) response for a question item. Includes standard response domain elements; OutParameter, designation of response cardinality, and a declaration of an offset date for the data content, as well as a CategoryRepresentationBase.",
      "allOf": [
        {
          "$ref": "#/$defs/CategoryRepresentationBaseType"
        },
        {
          "type": "object",
          "properties": {
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the domain."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the domain."
            },
            "OutParameter": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows for the response to be bound to one of the QuestionItem\u0027s OutParameters, so the collected information can be used elsewhere, for example as inputs to subsequent questions in an Instrument or to a GenerationInstruction. If multiple responses are possible, this would represent and ordered array of the responses."
            },
            "ResponseCardinality": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ResponseCardinalityType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows the designation of the minimum and maximum number of responses allowed for this response domain."
            },
            "ContentDateOffset": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ContentDateOffsetType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the difference between the date applied to the data as a whole and this specific item such as previous year\u0027s income or residence 5 years ago."
            }
          }
        }
      ]
    },
    "CategoryRepresentationBaseType": {
      "description": "Describes a representation based on categorization. The CategorySchemeReference allows for the exclusion of selected items from the use of the CategoryScheme as a representation.",
      "allOf": [
        {
          "$ref": "#/$defs/RepresentationType"
        },
        {
          "type": "object",
          "properties": {
            "CategorySchemeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CategoryScheme"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A reference to a CategoryScheme containing the required categories using the SchemeReference structure. Use Exclude in the SchemeReference to designate any categories NOT to include in this representation."
            }
          }
        }
      ]
    },
    "CategoryStatisticType": {
      "type": "object",
      "properties": {
        "TypeOfCategoryStatistic": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Type of category statistic. Supports the use of an external controlled vocabulary. DDI strongly recommends the use of a controlled vocabulary."
        },
        "Statistic": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/StatisticType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The value (expressed as a decimal) of the statistics and whether it is weighted and/or includes missing values."
        },
        "StatisticDouble": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/StatisticDoubleType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The value (expressed as a double) of the statistics and whether it is weighted and/or includes missing values."
        }
      },
      "description": "The value of a statistic associated with the category value."
    },
    "CategoryValueType": {
      "type": "object",
      "properties": {
        "CodeReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A reference to the coded value of the category as used by a CodeRepresentation."
        },
        "Value": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The value of the category."
        }
      },
      "description": "A category value for which one or more statistics are recorded. Each VariableCategory has one category value and any number of associated statistics."
    },
    "CellCoordinatesAsDefinedType": {
      "type": "object",
      "properties": {
        "SelectDimension": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/SelectDimensionType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "For each dimension in the grid define the applicable values as \u0022all values\u0022, a \u0022specific value\u0022 or a range. If a rangeMinimum or rangeMaximum is provided without the other, the assumption is unbounded for the object not included."
        }
      },
      "description": "Defines one or more cells by defining the applicable values of each dimension as \u0022all values\u0022, a \u0022specific value\u0022 or a range. For example in a simple 2 dimensional grid where dimension rank-1 is displayed as rows and dimension rank-2 as columns and the first column contains a NumericDomain; SelectDimension rank=\u00221\u0022 allValues=\u0022true\u0022 and SelectDimension rank=\u00222\u0022 specificValue=\u00221\u0022 would result in the NumericDomain being attached to the first column of the grid only."
    },
    "CellLabelType": {
      "type": "object",
      "properties": {
        "Label": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A label to be included inside of a grid cell."
        },
        "GridAttachment": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/GridAttachmentType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Identifies the cell or cells in a grid to which the label is attached by a reference to a specific cell coordinate in a grid or by identifying a range of values along a dimension."
        }
      },
      "description": "Provide a label to be included inside of a grid cell and defines the cell or cells that contain it."
    },
    "CharacterParameterType": {
      "type": "object",
      "properties": {
        "StartCharOffset": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Number of characters from beginning of the document, indicating the inclusive start of the text range."
        },
        "EndCharOffset": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Number of characters from the beginning of the document, indicating the inclusive end of the text segment."
        }
      },
      "description": "Specification of the character offset for the beginning and end of the segment."
    },
    "CitationType": {
      "type": "object",
      "properties": {
        "Title": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Full authoritative title. List any additional titles for this item as AlternativeTitle."
        },
        "SubTitle": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Secondary or explanatory title."
        },
        "AlternateTitle": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "An alternative title by which a data collection is commonly referred, or an abbreviation  for the title."
        },
        "Creator": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CreatorType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Person, corporate body, or agency responsible for the substantive and intellectual content of the described object."
        },
        "Publisher": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/PublisherType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Person or organization responsible for making the resource available in its present form."
        },
        "Contributor": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/ContributorType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "The name of a contributing author or creator, who worked in support of the primary creator given above."
        },
        "PublicationDate": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The date of publication."
        },
        "Language": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CodeValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Language of the intellectual content of the described object. Strongly recommend the use of language codes supported by xs:language which include the 2 and 3 character and extended structures defined by RFC4646 or its successors."
        },
        "InternationalIdentifier": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/InternationalIdentifierType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "An identifier whose scope of uniqueness is broader than the local archive. Common forms of an international identifier are ISBN, ISSN, DOI or similar designator."
        },
        "Copyright": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The copyright statement."
        },
        "DublinCoreAbstract": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A summary of the content of the resource."
        },
        "DublinCoreAccessRights": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Information about who can access the resource or its content."
        },
        "DublinCoreAccrualMethod": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The method by which items are added to a collection."
        },
        "DublinCoreAccrualPeriodicity": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The frequency at which items are added to a collection."
        },
        "DublinCoreAccrualPolicy": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The policy governing the addition of items to a collection."
        },
        "DublinCoreAlternative": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "An alternative name for the resource."
        },
        "DublinCoreAudience": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A group of users for whom the resource is intended."
        },
        "DublinCoreAvailable": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The date the resource became or will become available."
        },
        "DublinCoreBibliographicCitation": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A bibliographic reference for the resource."
        },
        "DublinCoreConformsTo": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A reference to a standard to which the resource conforms."
        },
        "DublinCoreContributor": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "An entity responsible for making contributions to the resource."
        },
        "DublinCoreCoverage": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The spatial or temporal topic of the resource."
        },
        "DublinCoreCreated": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The date the resource was created."
        },
        "DublinCoreCreator": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "An entity primarily responsible for making the resource."
        },
        "DublinCoreDate": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A point or period of time associated with the resource."
        },
        "DublinCoreDateAccepted": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The date the resource was accepted."
        },
        "DublinCoreDateCopyrighted": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The date the resource was copyrighted."
        },
        "DublinCoreDateSubmitted": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The date the resource was submitted."
        },
        "DublinCoreDescription": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "An account of the resource."
        },
        "DublinCoreEducationLevel": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The level of education audience the resource is intended for."
        },
        "DublinCoreExtent": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The size or duration of the resource."
        },
        "DublinCoreFormat": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The file format, physical medium, or dimensions of the resource."
        },
        "DublinCoreHasFormat": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A related resource that is a format of the resource."
        },
        "DublinCoreHasPart": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A related resource that is a part of the resource."
        },
        "DublinCoreHasVersion": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A related resource that is a version, edition, or adaptation of the resource."
        },
        "DublinCoreIdentifier": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "An unambiguous reference to the resource."
        },
        "DublinCoreInstructionalMethod": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The method of learning provided by the resource."
        },
        "DublinCoreIsFormatOf": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A related resource that is a format of the resource."
        },
        "DublinCoreIsPartOf": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A related resource in which the described resource is a part."
        },
        "DublinCoreIsReferencedBy": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A related resource that references the resource."
        },
        "DublinCoreIsReplacedBy": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A related resource that supplants or displaces the resource."
        },
        "DublinCoreIsRequiredBy": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A related resource that requires the resource."
        },
        "DublinCoreIsVersionOf": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A related resource that is a version, edition, or adaptation of the resource."
        },
        "DublinCoreIssued": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The date the resource was issued."
        },
        "DublinCoreLanguage": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The language of the resource."
        },
        "DublinCoreLicense": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Information about rights held in and over the resource."
        },
        "DublinCoreMediator": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "An entity that mediates access to the resource."
        },
        "DublinCoreMedium": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The material or physical carrier of the resource."
        },
        "DublinCoreModified": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The date the resource was last modified."
        },
        "DublinCoreProvenance": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A statement of any changes in ownership and custody of the resource."
        },
        "DublinCorePublisher": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "An entity responsible for making the resource available."
        },
        "DublinCoreReferences": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A related resource that is referenced by the resource."
        },
        "DublinCoreRelation": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A related resource."
        },
        "DublinCoreReplaces": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A related resource that is supplanted or displaced by the resource."
        },
        "DublinCoreRequires": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A related resource that is required by the resource."
        },
        "DublinCoreRights": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Information about rights held in and over the resource."
        },
        "DublinCoreRightsHolder": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A person or organization owning or managing rights over the resource."
        },
        "DublinCoreSource": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A related resource from which the present resource is derived."
        },
        "DublinCoreSpatial": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The spatial characteristics of the resource."
        },
        "DublinCoreSubject": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The topic of the resource."
        },
        "DublinCoreTableOfContents": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A list of subunits of the resource."
        },
        "DublinCoreTemporal": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The temporal characteristics of the resource."
        },
        "DublinCoreTitle": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The name given to the resource."
        },
        "DublinCoreType": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The nature or genre of the resource."
        },
        "DublinCoreValid": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The date the resource will be or was valid."
        }
      },
      "description": "Provides bibliographic citation information for a DDI instance, a group of studies, a study unit, or a physical instance. Note that a native DDI citation is required - the citation information may be repeated using DCElements if desired, but a citation must not consist only of DCElements."
    },
    "ClassificationIndexEntryType": {
      "type": "object",
      "properties": {
        "EntryText": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Text describing the type of object/unit or object property. Supports the use of multiple languages."
        },
        "CodesClassificationItemReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "ClassificationItem"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "The Classification Item with which the Classification Index Entry is associated. TypeOfObject should be set to ClassificationItem."
        },
        "ValidFrom": {
          "$ref": "#/$defs/cogsDate",
          "description": "Date from which the Classification Index Entry became valid. The date must be defined if the Classification Index Entry belongs to a floating Classification Index."
        },
        "ValidTo": {
          "$ref": "#/$defs/cogsDate",
          "description": "Date at which the Classification Index Entry became invalid. The date must be defined if the Classification Index Entry belongs to a floating Classification Index and is no longer valid."
        },
        "CodingInstructions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Additional information which drives the coding process. Required when coding is dependent upon one or many other factors."
        }
      },
      "description": "A Classification Index Entry is a word or a short text (e.g. the name of a locality, an economic activity or an occupational title) describing a type of object/unit or object property to which a Classification Item applies, together with the code of the corresponding Classification Item. Each Classification Index Entry typically refers to one item of the Statistical Classification. Although a Classification Index Entry may be associated with a Classification Item at any Level of a Statistical Classification, Classification Index Entries are normally associated with Classification Items at the lowest Level."
    },
    "ClassificationMapType": {
      "type": "object",
      "properties": {
        "SourceClassificationItemReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "ClassificationItem"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "The source item refers to the Classification Item in the source Statistical Classification. TypeOfObject should be set to ClassificationItem."
        },
        "TargetClassificationItemReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "ClassificationItem"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "The target item refers to the Classification Item in the target Statistical Classification. TypeOfObject should be set to ClassificationItem."
        },
        "IsComplete": {
          "$ref": "#/$defs/boolean",
          "description": "Specifies whether the relationship between the two Classification Items is partial or complete."
        },
        "ValidFrom": {
          "$ref": "#/$defs/cogsDate",
          "description": "Date from which the Map became valid. The date must be defined if the Map belongs to a floating Correspondence Table."
        },
        "ValidTo": {
          "$ref": "#/$defs/cogsDate",
          "description": "Date at which the Map became invalid. The date must be defined if the Map belongs to a floating Correspondence Table and is no longer valid."
        }
      },
      "description": "A Map is an expression of the relation between a Classification Item in a source Statistical Classification and a corresponding Classification Item in the target Statistical Classification. The Map should specify whether the relationship between the two Classification Items is partial or complete. Depending on the relationship type of the Correspondence Table, there may be several Maps for a single source or target Classification Item. "
    },
    "CodeDomainType": {
      "description": "A response domain capturing a coded response (where both codes and their related category value are displayed) for a question. Includes standard response domain elements; OutParameter, designation of response cardinality, and a declaration of an offset date for the data content. Contains the equivalent content of a CodeRepresentation including a reference to the CodeList used and the ability to limit the use of the CodeList to specific CodeList levels, ranges, or values. Adds a set of elements available to all Response Domains; Label, Description, OutParameter, designation of response cardinality, and a declaration of an offset date for the data content. CodeDomains cannot be included by reference. CodeDomain does not have an equivalent managed representation as the CodeList itself is a managed object. CodeDomains must be entered in-line.",
      "allOf": [
        {
          "$ref": "#/$defs/CodeRepresentationBaseType"
        },
        {
          "type": "object",
          "properties": {
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the domain."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the domain."
            },
            "OutParameter": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows for the response to be bound to one of the QuestionItem\u0027s OutParameters, so the collected information can be used elsewhere, for example as inputs to subsequent questions in an Instrument or to a GenerationInstruction. If multiple responses are possible, this would represent and ordered array of the responses."
            },
            "ResponseCardinality": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ResponseCardinalityType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows the designation of the minimum and maximum number of responses allowed for this response domain."
            },
            "ContentDateOffset": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ContentDateOffsetType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the difference between the date applied to the data as a whole and this specific item such as previous year\u0027s income or residence 5 years ago."
            },
            "DisplayCode": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 (default value) the code value associated with the category label will be displayed. Set to \u0022false\u0022 if only the category label should not be displayed."
            }
          }
        }
      ]
    },
    "CodeRepresentationBaseType": {
      "description": "Describes the use of all or part of a CodeList as a representation used by a question response domain or variable value representation.",
      "allOf": [
        {
          "$ref": "#/$defs/RepresentationType"
        },
        {
          "type": "object",
          "properties": {
            "CodeListReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CodeList"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A reference to the CodeList included in this representation using the Reference structure."
            },
            "StatisticalClassificationReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "StatisticalClassification"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A reference to the StatisticalClassification included in this representation using the Reference structure."
            },
            "CodeSubsetInformation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeSubsetInformationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows further specification of the codes to use from the CodeList by defining the level or only the most discrete codes of a hierarchical CodeList, the range of codes to use, or an itemized sub-set."
            }
          }
        }
      ]
    },
    "CodeSubsetInformationType": {
      "type": "object",
      "properties": {
        "IncludedLevel": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/nonNegativeInteger"
          },
          "minItems": 0,
          "description": "Identifies the specific level to include using the levelNumber. Repeat if more than one level is included."
        },
        "IncludedCode": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/IncludedCodeType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Specifies the codes to include in the representation."
        },
        "DataExistence": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DataExistenceType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Use when only the lowest, most discrete codes in the CodeList will be expressed as valid values. Identifies those levels of a CodeList with a regular hierarchy or those indicates discrete codes within an irregular hierarchy. All other codes will be used as labels within the hierarchy to clearly express content, but will not be valid as a response or representation value."
        }
      },
      "description": "Allows further specification of the codes to use from the CodeList by defining the level or only the most discrete codes of a hierarchical CodeList, the range of codes to use, or an itemized sub-set."
    },
    "CodeType": {
      "description": "A structure that links a unique value of a code to a specified category and provides information as to the location of the code within a hierarchy, whether it is discrete, represents a total for the CodeList contents, and if its sub-elements represent a comprehensive coverage of the code. The Code is identifiable, but the value within the code must also be unique within the CodeList.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "CategoryReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Category"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the category that the code value represents."
            },
            "Value": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The value of the code. In a microdata file this would be the value found in the data file. If used as the description of an NCube dimension the value provides the coordinate value for that dimension. Note that r:Value has an attribute xml:space with the default value of \u0022default\u0022. If white space is critical to the understanding of this code value (such as critical leading or tailing spaces, or multiple spaces within the code) change the value of xml:space to \u0022preserve\u0022."
            },
            "Code": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Allows for nesting of codes."
            },
            "IsDiscrete": {
              "$ref": "#/$defs/boolean",
              "description": "Indicates whether the code is discrete (that is, placed at the lowest level in a hierarchy and has no children)."
            },
            "LevelNumber": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "Level number of the code."
            },
            "IsComprehensive": {
              "$ref": "#/$defs/string",
              "enum": [
                "True",
                "False",
                "Unknown"
              ],
              "description": "Used in hierarchical structures at upper level values to indicate whether or not the subelements of the code are comprehensive in coverage. Not applicable if attribute isDiscrete is set to \u0022true\u0022."
            },
            "IsTotal": {
              "$ref": "#/$defs/boolean",
              "description": "This expresses a total whether or not isComprehensive is true. If isComprehensive = \u0022true\u0022 then if addition is supported by the measure type, the contained categories can be aggregated to calculate the total. If isComprehensive = \u0022false\u0022 or \u0022unknown\u0022 the content of this field cannot be calculated if the value is not provided in the data."
            }
          }
        }
      ]
    },
    "CodeValueType": {
      "type": "object",
      "properties": {
        "StringValue": {
          "$ref": "#/$defs/string",
          "description": "The code term as it appears in the controlled vocabulary"
        },
        "OtherValue": {
          "$ref": "#/$defs/string",
          "description": "If the value of the string is \u0022Other\u0022 or the equivalent from the controlled vocabulary, this attribute can provide a more specific value not found in the controlled vocabulary."
        },
        "ControlledVocabularyCodeListReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "CodeList"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A DDI CodeList representation of the controlled vocabulary that the content was taken from."
        },
        "ControlledVocabularyURI": {
          "$ref": "#/$defs/string",
          "description": "Specifies the URI location for the full controlled vocabulary, usually represented in an RDF SKOS or XKOS representation."
        },
        "ControlledVocabularyInstanceURI": {
          "$ref": "#/$defs/string",
          "description": "Specifies the identification URI of the term/code within the controlled vocabulary if available."
        }
      },
      "description": "Allows for string content which may be taken from an externally maintained controlled vocabulary (code value). If the content is from a controlled vocabulary provide the code value, as well as a reference to the controlled vocabulary from which the value is taken. Provide as many of the identifying attributes as needed to adequately identify the controlled vocabulary. Note that DDI has published a number of controlled vocabularies applicable to several locations using the CodeValue structure. Use of shared controlled vocabularies helps support interoperability and machine actionability."
    },
    "CohortType": {
      "type": "object",
      "properties": {
        "CategoryReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Category"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Reference to the Category represented by the Value of the Code assigned in a CodeList. Repeat for including multiple values."
        },
        "CodeReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CodeType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Reference to the Code within the CodeList used by the variable describing the dimension. Repeat for including multiple values."
        },
        "Range": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/RangeType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Use when multiple values are included. This uses the unique Value provided for the Code as a means of identification. Provides the range of Values for this dimension that are within the area being defined. Repeat for non-contiguous values."
        },
        "Rank": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Identify the dimension being described by its rank value within the NCube description."
        }
      },
      "required": [
        "Rank"
      ],
      "description": "Defines the included values of a dimension by means of individual value references or by defining a range of values to include. Allows the included values to be identified by reference to the Code, the Category used by the Code, or the Value of the Code (which by definition should be unique). The dimension is identified by its rank value."
    },
    "CollectionEventType": {
      "description": "Information on a specific data collection event including details on who was involved in data collection, the source of the data, the date and frequency of collection, mode of collection, identification of the instrument used for collection, information on the actual situation under which data was collected, actions taken to minimize loss of data, and reference to a quality standard or statement regarding the handling of the data collection process during this event.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "CollectionEventName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the Collection Event."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the Collection Event."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the Collection Event."
            },
            "DataCollectorOrganizationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Individual",
                          "Organization"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to an organization or individual, defined in the organization scheme, responsible for the data collection."
            },
            "DataSource": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DataSourceType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes a source of the data."
            },
            "DataCollectionDate": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DateType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Provides a date or range of dates for the described data collection event as well as  a cycle number when the collection is part of a series of data collection events."
            },
            "DataCollectionFrequency": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DataCollectionFrequencyType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Documents the intended frequency of data collection, for example monthly, yearly, weekly, etc., preferably using an optional controlled vocabulary in the IntendedFrequency element. Date of first collection should be provided in StartDate as a basis for defining periodicity. EndDate should be entered for data collection cycles with a known or anticipated end date. EndDate is omitted in data collection series that are intended to be on-going."
            },
            "ModeOfCollection": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ModeOfCollectionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes the mode of data collection."
            },
            "InstrumentReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Instrument"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "References the instrument or instruments used during the process of collecting data for this collection event period."
            },
            "CollectionSituation": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CollectionSituationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes the situation in which the data collection event takes place. If a number of collection situation types occurred repeat this element."
            },
            "ActionToMinimizeLosses": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ActionToMinimizeLossesType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes action taken to minimize loss of data from the collection event."
            },
            "QualityStatementReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityStatement"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to a Quality Statement pertaining to the quality of the study methodology, metadata, or data to which it is associated. Quality statements may be related to external quality standards."
            },
            "SampleReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Sample"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "References the Sample used by this CollectionEvent. TypeOfObject should be Sample."
            }
          }
        }
      ]
    },
    "CollectionSituationType": {
      "description": "Describes the situation in which the data collection event takes place.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfCollectionSituation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows brief identification of collection situation with the option of using a controlled vocabulary."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Full description of the collection situation."
            }
          }
        }
      ]
    },
    "CollectionType": {
      "type": "object",
      "properties": {
        "Citation": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CitationType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A citation for the collection. May additionally be rendered in native qualified Dublin Core (dc and dcterms)."
        },
        "LocationInArchive": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Describes the location of the collection within the archive."
        },
        "CallNumber": {
          "$ref": "#/$defs/string",
          "description": "The name, code, or number used by the archive to uniquely identify the collection within the archive."
        },
        "URI": {
          "$ref": "#/$defs/anyURI",
          "description": "The URL or URN for the collection."
        },
        "ItemQuantity": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "The number of items in the collection. This is a check sum and should be updated as the contents of the collection changes. The use of this element is best restricted to completed collections where change in the number of objects is not dynamic."
        },
        "StudyClass": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/StudyClassType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "An archive specific classification for the collection. This may be a topical classification, a classification of intended processing levels, or information on the processing status."
        },
        "DefaultAccess": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/AccessType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Default access restriction information applying to all of the items in the collection."
        },
        "OriginalArchiveOrganizationReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Organization"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "The original archive for the described collection, expressed as a reference to an organization listed in the organization scheme."
        },
        "AvailabilityStatus": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A statement of availability for the object. This is a positive statement (as opposed to access restrictions) which may be used for publication or other purposes."
        },
        "DataFileQuantity": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "The number of data files in the described collection, expressed as an integer. This is a check sum and should be updated as the contents of the collection changes. The use of this element is best restricted to completed collections where change in the number of objects is not dynamic."
        },
        "CollectionCompleteness": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Describes the completeness of the collection for the item and its related data files and sub-items. Note coverage gaps as well as unique content . This statement may be used for publication or other purposes."
        },
        "Item": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/ItemType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Allows for the nesting of Item descriptions with a collection."
        },
        "Collection": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CollectionType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Allows for the nesting of collection descriptions with a collection hierarchical groupings within a collection description."
        }
      },
      "description": "Describes a collection of items held or distributed by the archive in connection with a study, group of studies, or resource packages. What constitutes an collection is determined by the archive. These may be data file(s) in a variety of formats, statistical setups, codebooks, questionnaires, etc. A collection may also be a group of studies, groups, and/or resource packages."
    },
    "CommandCodeType": {
      "type": "object",
      "properties": {
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the purpose and use of the command code provided."
        },
        "Command": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CommandType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "This is an in-line provision of the command itself."
        },
        "CommandFile": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CommandFileType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Identifies and provides a link to an external copy of the command, for example, a SAS Command Code script."
        }
      },
      "description": "Contains information on the command used for processing data. Contains a description of the command which should clarify for the user the purpose and process of the command, an in-line provision of the command itself, a reference to an external version of the command such as a coding script, and the option for attaching an extension to DDI to permit insertion of a command code in a foreign namespace. Both Command and CommandFile may be repeated to provide command information in additional programming languages. Multiple Command and CommandFile contents are differentiated by the content of the contained element ProgramLanguage."
    },
    "CommandFileType": {
      "type": "object",
      "properties": {
        "ProgramLanguage": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Designates the programming language used for the command. Supports the use of a controlled vocabulary."
        },
        "InParameter": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/InParameterType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Describes the information used by the command as it is identified within the command structure. Use of the Alias may be needed to tie the designated input parameter content to its use in the external command file."
        },
        "OutParameter": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/ParameterType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Describes the information that results from the command that may be used as input by another object. Use of the Alias may be needed to tie the designated output parameter content to its use in the external command file."
        },
        "Binding": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/BindingType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Defines the link between the output of an external object to an InParameter described above."
        },
        "Location": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the location of the file. This may not be machine actionable."
        },
        "URI": {
          "$ref": "#/$defs/anyURI",
          "description": "The URL or URN of the command file."
        }
      },
      "description": "Identifies and provides a link to an external copy of the command, for example, a SAS Command Code script. Designates the programming language of the command file, designates input and output parameters, binding information between input and output parameters, a description of the location of the file , and a URN or URL for the command file."
    },
    "CommandType": {
      "type": "object",
      "properties": {
        "ProgramLanguage": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Designates the programming language used for the command. Supports the use of a controlled vocabulary."
        },
        "InParameter": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/InParameterType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Describes the information used by the command as it is identified within the command structure."
        },
        "OutParameter": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/ParameterType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Describes the information that results from the command that may be used as input by another object."
        },
        "Binding": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/BindingType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Defines the link between the output of an external object to an InParameter described above."
        },
        "CommandContent": {
          "$ref": "#/$defs/string",
          "description": "Content of the command itself expressed in the language designated in Programming Language."
        }
      },
      "description": "Provides the following information on the command: The content of the command, the programming language used, the pieces of information (InParameters) used by the command, the pieces of information created by the command (OutParameters) and the source of the information used by the InParameters (Binding)."
    },
    "ComplianceDefinitionType": {
      "type": "object",
      "properties": {
        "ComplianceConceptReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Concept"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to a concept which relates to an area of coverage of the standard."
        },
        "ExternalComplianceCode": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Specification of a code which relates to an area of coverage of the standard. Supports the use of an external controlled vocabulary."
        },
        "ComplianceRequirements": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Specifies what is required to be seen as in compliance with the Standard. Note minimum requirements for various levels of compliance. "
        }
      },
      "description": "Provides a list of quality concepts in the quality standard."
    },
    "ComplianceType": {
      "type": "object",
      "properties": {
        "ComplianceConceptReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Concept"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to a concept which relates to an area of coverage of the standard."
        },
        "ExternalComplianceCode": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Specification of a code which relates to an area of coverage of the standard. Supports the use of an external controlled vocabulary."
        },
        "ComplianceDescription": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Describe the measures taken to comply with the standards and/or specific levels of compliance by providing further details or a general description of compliance with the standard."
        }
      },
      "description": "Allows for a quality statement based on frameworks to be described using itemized properties. A reference to a concept, a coded value, or both can be used to specify the property from the standard framework identified in StandardUsed. ComplianceDescription can provide further details or a general description of compliance with a standard."
    },
    "ConcatenatedValueType": {
      "type": "object",
      "properties": {
        "VariableReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Variable"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 2,
          "description": "Identifies the variables whose values are concatenated to form the concatenated variable. Note that the order of these variables determines the order of concatenation."
        }
      },
      "required": [
        "VariableReference"
      ],
      "description": "Lists the variables whose values when concatenated result in the value for this variable."
    },
    "ConditionalIdentifierType": {
      "type": "object",
      "properties": {
        "CaseSpecification": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CaseSpecificationType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Case specification allows different unique identifiers to be used based on the value of an identified variable. In some cases the value of a variable (such as a geographic level) results in a different set of variables required to identify a unique case. Case specification is used to capture these combinations. For example: a file containing State, County, and Place records. The unique identifier for a State requires a combination of GeoLevel=State and the variable STATE. Place would require a combination of GeoLevel=Place and the variables STATE and PLACE."
        }
      },
      "description": "Describes the information needed to identify a specific record or case within a record type. Repeating the field allows multiple means of identifying a case referencing multiple variables."
    },
    "ConditionalResultType": {
      "type": "object",
      "properties": {
        "Text": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The value of the static text string to use if condition is true."
        },
        "SourceParameterReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ParameterType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "This allows for the simple insert of a piece of information from another specified parameter. For example, if the text of the item using conditional text included the respondent\u2019s name use SourceParameterReference to reference the InParameter of the question that is bound to the OutParameter of the question: \u0022What is your name?\u0022"
        }
      },
      "description": "The text resulting from the conditional command. Supports structured content and the insertion of content by a source parameter. For example if a language has gender specific verb structures the result of an IfCondition may result in a text using female verb structures and inserting the female\u0027s name at a specific point."
    },
    "ConditionalTextType": {
      "description": "Text which has a changeable value depending on a stated condition, response to earlier questions, or as input from a set of metrics (pre-supplied data).",
      "allOf": [
        {
          "$ref": "#/$defs/TextContentType"
        },
        {
          "type": "object",
          "properties": {
            "Expression": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CommandCodeType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The condition on which the associated text varies expressed by a command code. For example, a command that inserts an age by calculating the difference between today\u2019s date and a previously defined date of birth. Use InParameter and OutParameter of parent class to associate Parameters to Alias values in command code."
            },
            "IfThenElseText": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/IfThenElseTextType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The condition on which the associated text varies expressed by an IfThenElse decision tree. For example, If MEMBER = 1, Then = [ConditionalResult singular], ElseIf MEMBER \u003E 1, Then = [ConditionalResult plural].  Use InParameter and OutParameter of parent class to associate Parameters to Alias values in the IfCondition."
            },
            "SourceParameterReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This allows for the simple insert of a piece of information from another specified parameter. For example, if the text of the item using conditional text included the respondent\u2019s name use SourceParameterReference to reference the InParameter of the question that is bound to the OutParameter of the question: \u0022What is your name?\u0022"
            }
          }
        }
      ]
    },
    "ContactInformationType": {
      "type": "object",
      "properties": {
        "LocationName": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Location name."
        },
        "Address": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/AddressType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Location address identifying each part of the address as separate elements."
        },
        "Telephone": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/TelephoneType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Telephone number for the location"
        },
        "URL": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/URLType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "URL for the location\u0027s website."
        },
        "Email": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/EmailType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Generic email address for the location"
        },
        "InstantMessaging": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/InstantMessagingType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Instant Messaging identification for the location"
        },
        "RegionalCoverage": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The geographic region for which this location operates. For example, the Kansas City office of the United States Bureau of the Census has responsibility for a region covering a number of states."
        },
        "TypeOfLocation": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Type of location e.g. home, primary office, alternate office etc."
        },
        "Privacy": {
          "$ref": "#/$defs/string",
          "enum": [
            "public",
            "restricted",
            "private"
          ],
          "description": "A basic set of privacy codes for the parent element. These may be stricter than the general access restrictions for the overall metadata. If available codes are insufficient this may also contain any string."
        }
      },
      "description": "Contact information for the individual or organization including location specification, address, URL, phone numbers, and other means of communication access. Address, location, telephone, and other means of communication can be repeated to express multiple means of a single type or change over time. Each major piece of contact information (with exception of URL contains the element EffectiveDates in order to date stamp the period for which the information is valid."
    },
    "ContentDateOffsetType": {
      "description": "Identifies the difference between the date applied to the data as a whole and this specific item such as previous year\u0027s income or residence 5 years ago. A value of true for the attribute isNegativeOffset indicates that the offset is the specified number of declared units prior to the date of the data as a whole and false indicates information regarding a future state.",
      "allOf": [
        {
          "$ref": "#/$defs/CodeValueType"
        },
        {
          "type": "object",
          "properties": {
            "NumberOfUnits": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "The number of units to off-set the date for this item expressed as a decimal."
            },
            "IsNegativeOffset": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 the date is offset the number of units specified PRIOR to the default date of the data. A setting of \u0022false\u0022 indicates a date the specified number of units in the FUTURE from the default date of the data."
            }
          }
        }
      ]
    },
    "ContentLinkingMapType": {
      "type": "object",
      "properties": {
        "LinkingMap": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/LinkingMapType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Provides a link from a local object to a deposited object via reference and designates if the added material should Override, act as AddedContent, or DeleteContent in the original deposited material."
        }
      },
      "description": "Contains a stack of links from the LocalAddedContent to the Depository content and provides instructions regarding the relationship between the local added content and the deposited content."
    },
    "ContributorType": {
      "type": "object",
      "properties": {
        "ContributorName": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/BibliographicNameType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Full name of the contributor. Language equivalents should be expressed within the International String structure."
        },
        "ContributorRole": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CodeValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "The role of the contributor. Language equivalents should be expressed within the International String structure."
        },
        "ContributorReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Individual",
                    "Organization"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to a contributor as described within a DDI Organization Scheme."
        }
      },
      "description": "Holds the name of the contributor, their role, and optional reference to the contributor as described within a DDI Organization scheme. Repeat this element for multiple creators."
    },
    "CoordinatePairsType": {
      "description": "Field to capture coordinate pairs as individual pairs or as an array of pairs.",
      "allOf": [
        {
          "$ref": "#/$defs/TextDomainType"
        },
        {
          "type": "object",
          "properties": {
            "MaxArray": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "The maximum number of coordinate pairs listed in the array. The two values in a coordinate pair are separated by a comma. Pairs in an array are separated by the character indicated in the arraySeparator attribute. Default value is \u00221\u0022."
            },
            "ArraySeparator": {
              "$ref": "#/$defs/string",
              "description": "The character used to separate arrays, if present. If not given a value, and if the maxArray attribute has a value greater than one, the separator is assumed to be whitespace."
            }
          }
        }
      ]
    },
    "CoordinateRegionType": {
      "description": "Defines the area of attachment for an NCube attribute. It may be defined as the NCube as a whole or as certain dimensions or values of dimensions.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the CoordinateRegion."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement containing a description of the persons or other elements that this CoordinateRegion refers to, and to which any analytic results refer. If more than one universe is referenced the universe of the CoordinateRegion is the intersect of the referenced universes. Use when the CoordinateRegion describes a subset of the NCube universe."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other elements that this CoordinateRegion and its analytic results refer to. If more than one population is referenced, the population of the CoordinateRegion is the intersection of the referenced populations. Use when the CoordinateRegion describes a subset of the NCube population."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content of the CoordinateRegion."
            },
            "DimensionValue": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CohortType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Defines the included set of values needed to describe the coordinate region of the NCube on a Dimension by Dimension basis."
            }
          }
        }
      ]
    },
    "CorrespondenceType": {
      "type": "object",
      "properties": {
        "Commonality": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Common features of the compared objects. "
        },
        "Difference": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Description of the difference between the compared objects. "
        },
        "CommonalityTypeCoded": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A brief description describing the commonality of the two schemes/items, i.e., \u0022Identical\u0022, \u0022High\u0022, \u0022Medium\u0022, \u0022Low\u0022, \u0022None\u0022. Supports the use of an external controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (CommonalityType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
        },
        "CommonalityWeight": {
          "$ref": "#/$defs/float",
          "x-cogs-minInclusive": {
            "datatype": "float",
            "value": "0"
          },
          "x-cogs-maxInclusive": {
            "datatype": "float",
            "value": "1"
          },
          "description": "A value between 0 and 1 expressing the degree of commonality (0 indicates none, 1 indicates that they are identical)."
        },
        "UserDefinedCorrespondenceProperty": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/StandardKeyValuePairType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "An alternate means of expressing commonality within a specific system. A system specific user defined correspondence expressed as a key/value pair. As this is specific to an individual system the use of controlled vocabularies for the key is strongly recommended."
        }
      },
      "description": "Describes the commonalities and differences between two items using a textual description of both commonalities and differences plus an optional coding of the type of commonality, a commonality expresses as a 0 to 1 weighting factor (expressing degree of comparability) and a user defined correspondence property which is specific to an organization or community of use."
    },
    "CostStructureType": {
      "type": "object",
      "properties": {
        "Budget": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/BudgetType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "A description and/or reference to a related document providing budget information for the development activities"
        },
        "FundingInformation": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/FundingInformationType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Provides information about the agency and grant(s) which fund the development work."
        }
      },
      "description": "Budget and funding information related to the development work."
    },
    "CountryCodeType": {
      "description": "Use of a Controlled Vocabulary is strongly recommended. Use of ISO 3166 Country Codes (2 character, 3 character, or Numeric) is preferred with or without attribution to a specific controlled vocabulary. If using some other coding system it is important to cite the source as the assumption will generally be that ISO 3166 codes have been used. Allows for an optional effective date for the country code. This can effect the actual geographic coverage or related name.",
      "allOf": [
        {
          "$ref": "#/$defs/CodeValueType"
        },
        {
          "type": "object",
          "properties": {
            "EffectiveDate": {
              "$ref": "#/$defs/dateTime",
              "description": "If it is important to specify the date that this code is effective in order to accurately capture a name or similar change, specify that here. This can effect the actual geographic coverage or related name."
            }
          }
        }
      ]
    },
    "CoverageType": {
      "type": "object",
      "properties": {
        "TopicalCoverageReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/TopicalCoverageType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Reference to a previously defined topical coverage."
        },
        "TopicalCoverage": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/TopicalCoverageType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Description of the topical coverage of the data described in a particular DDI module."
        },
        "SpatialCoverageReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/GeographicCoverageType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Reference to a previously defined spatial coverage."
        },
        "SpatialCoverage": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/GeographicCoverageType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Description of the geographic coverage of the data described in a particular DDI module."
        },
        "TemporalCoverageReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/TemporalCoverageType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Reference to a previously defined temporal coverage."
        },
        "TemporalCoverage": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/TemporalCoverageType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Description of the temporal coverage of the data described in a particular DDI module."
        },
        "RestrictionProcess": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/RestrictionProcessType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Allows for a specific machine actionable description of the restriction process using a GenerationInstructionReference, if one currently exists, or through a CommandCode. In the case of a physical instance, the RestrictionProcess would be the same as a case, record or variable selection process."
        },
        "IsRestrictionOfParentCoverage": {
          "$ref": "#/$defs/boolean",
          "description": "If the coverage described within this object is a restriction of the coverage of its parent study or group set this attribute to \u0022true\u0022. If the coverage of a specific type (spatial, topical, or temporal) is not a restriction, include this coverage type by reference to that described in parent. Create a new coverage for the type being restricted."
        }
      },
      "description": "Describes the temporal, spatial and topical coverage. At the instance level these descriptions should be inclusive of the coverage of all modules in the instance. The element is available within individual modules and can be used to refine the coverage to that of the individual module."
    },
    "CreateSummaryType": {
      "description": "Note that this is generally usable only with single valid response domain in grid. More complex uses should be carefully documented using details in CommandCode and Input/output Parameters.",
      "allOf": [
        {
          "$ref": "#/$defs/CommandCodeType"
        },
        {
          "type": "object",
          "properties": {
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Label for the summary type used."
            }
          }
        }
      ]
    },
    "CreatorType": {
      "type": "object",
      "properties": {
        "CreatorName": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/BibliographicNameType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Full name of the creator and affiliation. Language equivalents should be expressed within the International String structure."
        },
        "CreatorReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Individual",
                    "Organization"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to a creator as described within a DDI Organization Scheme."
        }
      },
      "description": "Holds the name of the creator and/or a reference to the creator as described within a DDI Organization scheme. Repeat this element for multiple creators."
    },
    "DDIMaintenanceAgencyIDType": {
      "type": "object",
      "properties": {
        "StringValue": {
          "$ref": "#/$defs/string",
          "description": ""
        },
        "RegistryID": {
          "$ref": "#/$defs/string",
          "description": "Currently there is only a single DDI Agency Registry. Use \u0022DDIAgencyRegistry\u0022."
        },
        "ActivationDate": {
          "$ref": "#/$defs/dateTime",
          "description": "The date when this agency ID was registered or become active."
        }
      },
      "required": [
        "RegistryID"
      ],
      "description": "Provides the official DDI ID of a maintenance agency as a value taken from the registry cited in @registryID."
    },
    "DataAppraisalInformationType": {
      "type": "object",
      "properties": {
        "ResponseRate": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/ResponseRateType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "A specific rate of response and/or a description of the rate of response for this event. If data contains multiple response rates for different portions of the data due to delivery method, identification of sub-populations or other reasons, repeat this element providing the specific response rate and a description of the sub-population, delivery method or other feature that was used in developing the specific rate."
        },
        "SamplingError": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Description of the sampling error."
        },
        "OtherAppraisalProcess": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Description of any other appraisal process used."
        }
      },
      "description": "Describes the result of data appraisal activities as a response rate and sampling error. May also list additional appraisal processes taken as a result of the initial appraisal process."
    },
    "DataCollectionFrequencyType": {
      "description": "Documents the intended frequency of data collection, for example monthly, yearly, weekly, etc., preferably using an optional controlled vocabulary in the IntendedFrequency element. Date of first collection should be provided in StartDate as a basis for defining periodicity. EndDate should be entered for data collection cycles with a known or anticipated end date. EndDate is omitted in data collection series that are intended to be on-going.",
      "allOf": [
        {
          "$ref": "#/$defs/DateType"
        },
        {
          "type": "object",
          "properties": {
            "IntendedFrequency": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Documents the intended frequency of data collection, for example monthly, yearly, weekly, etc., preferably using an optional controlled vocabulary."
            }
          }
        }
      ]
    },
    "DataCollectionMethodologyType": {
      "description": "Methodologies pertaining to the overall data collection such as primary or secondary data collection, qualitative or quantitative methods, mixed method approaches, GPS capturing methods, methods for collecting data from hard to reach communities, etc. Repeat this element if multiple methodologies are used. In addition to a descriptive narrative, the methodology may be classified by a short term or external controlled vocabulary.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfDataCollectionMethodology": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows for brief identification of the type of data collection methodology using an optional controlled vocabulary."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Full description of the data collection methodology."
            }
          }
        }
      ]
    },
    "DataExistenceType": {
      "type": "object",
      "properties": {
        "LevelNumber": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Use for a regular hierarchy. List the Level Number of the lowest or most discrete level of data available."
        },
        "DiscreteCategory": {
          "$ref": "#/$defs/boolean",
          "description": "Use for an irregular hierarchy where the most discrete codes have been identified by attribute isDiscrete. This element is to be used if only the most discrete data elements will have data. It has a fixed value, so it will indicate which categories have data based on their description."
        }
      },
      "description": "Use when only the lowest, most discrete codes in the CodeList will be expressed as valid values. Identifies those levels of a CodeList with a regular hierarchy or those indicates discrete codes within an irregular hierarchy. All other codes will be used as labels within the hierarchy to clearly express content, but will not be valid as a response or representation value."
    },
    "DataFileIdentificationType": {
      "type": "object",
      "properties": {
        "Location": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Documents the location of the data file as a description."
        },
        "DataFileURI": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/URIType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A URN or URL for the data file with a flag to indicate if it is a public copy."
        },
        "SizeInBytes": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Specifies the size of the file in bytes."
        },
        "IsMaster": {
          "$ref": "#/$defs/boolean",
          "description": "Set to \u0022true\u0022 when this file is the master file (in the case that there are multiple, i.e. backup, copies)."
        }
      },
      "description": "Identifies the data file documented in the physical instance and provides information about its location."
    },
    "DataFileVersionType": {
      "type": "object",
      "properties": {
        "TypeOfVersionNumber": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "This is the name of the versioning scheme as defined by the user\u0027s system, in cases where the user\u0027s system employs more than one versioning scheme."
        },
        "VersionResponsibility": {
          "$ref": "#/$defs/string",
          "description": "Person or organization within the MaintenanceAgency responsible for the version change. If it is important to retain the affiliation between and individual responsible for the version and his/her agency, it may be included in this notation. This is primarily intended for internal use."
        },
        "VersionResponsibilityReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Individual",
                    "Organization"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference person or organization within the MaintenanceAgency responsible for the version change, as described in an OrganizationScheme. If it is important to retain the affiliation between and individual responsible for the version and his/her agency, a Relation should be created between the individual referenced here and his/her organization. This is primarily intended for internal use."
        },
        "VersionRationale": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/VersionRationaleType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Textual description of the rationale/purpose for a version change."
        },
        "VersionNumber": {
          "$ref": "#/$defs/string",
          "description": "The version number of the data file identified by this physical instance."
        },
        "VersionDate": {
          "$ref": "#/$defs/cogsDate",
          "description": "Date of version using the union set BaseDateType. Duration should not be used in this field, even though allowed by the ISO format enforced by the parser."
        }
      },
      "required": [
        "VersionNumber"
      ],
      "description": "Provides the version information for the data file related to this physical instance. Note that while Physical Instance allows for multiple copies of the same data file (such as backup copies) the assumption is that they are identical in terms of content, layout, format and version. The minimum information required is the versionNumber. Additional information on the versionDate, the type of version number when multiple types are supported by an agency, as well as information on VersionResponsibility (inline or by reference) and VersionRationale are available to provide additional information for process tracking and/or informing users of the differences between this and the previous version of the file."
    },
    "DataFingerprintType": {
      "type": "object",
      "properties": {
        "DigitalFingerprintValue": {
          "$ref": "#/$defs/string",
          "description": "Contains the value of the specified digital fingerprint."
        },
        "AlgorithmSpecification": {
          "$ref": "#/$defs/string",
          "description": "Specifies the type of the fingerprint (what algorithm or scheme)."
        },
        "AlgorithmVersion": {
          "$ref": "#/$defs/string",
          "description": "Contains the version of the algorithm."
        },
        "Type": {
          "$ref": "#/$defs/string",
          "enum": [
            "data",
            "dataFile"
          ],
          "description": "Brief identification of the type of data fingerprint used. The data fingerprint may be for the data file (storage format specific) or data (format neutral)."
        }
      },
      "required": [
        "Type"
      ],
      "description": "Allows for assigning a hash value (digital fingerprint) to the data or data file. Set the attribute flag to \u0022data\u0022 when the hash value provides a digital fingerprint to the data contained in the file regardless of the storage format (ASCII, SAS, binary, etc.). One approach to compute a data fingerprint is the Universal Numerical Fingerprint (UNF). Set the attribute flag to \u0022dataFile\u0022 if the digital fingerprint is only for the data file in its current storage format."
    },
    "DataItemAddressType": {
      "type": "object",
      "properties": {
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Description of the data item address."
        }
      },
      "description": "Provides minimum information on data item address system, such as variable ID or Name, etc."
    },
    "DataItemIType": {
      "type": "object",
      "properties": {
        "DimensionRankValue": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/DimensionRankValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "A dimension describes the rank or order of the dimension within the NCube structure and provides the specific coordinate value of the dimension for the data item."
        },
        "AttachedAttribute": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/AttachedAttributeType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "This is an attribute attached to the specified Data Item. The content of the attribute can be provided as a single value or reference a location in the data store where the attribute value will be found. This may be in addition to attribute information described in the logical structure."
        },
        "MeasureI": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/MeasureIType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Identifies the specific measure of the cell by noting the order value of the measure within the MeasureDimension and the value for the measure."
        },
        "Lang": {
          "$ref": "#/$defs/language",
          "description": "Use to indicate the language of the data values for this item."
        }
      },
      "description": "Describes a single data item or cell within an NCube Instance. It defines its location within the NCube by its coordinate (matrix) address which is its intersect point on each dimension. Allows for the specification of data item specific attributes, and identifies the value of each measure for the data item. May optionally indicate the language of the data contents."
    },
    "DataItemNType": {
      "type": "object",
      "properties": {
        "DimensionRankValue": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/DimensionRankValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "A dimension describes the rank or order of the dimension within the NCube structure and provides the specific coordinate value of the dimension for the data item."
        },
        "AttachedAttribute": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/AttachedAttributeType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "This is an attribute attached to the specified Data Item. The content of the attribute can be provided as a single value or reference a location in the data store where the attribute value will be found. This may be in addition to attribute information described in the logical structure."
        },
        "Measure": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/MeasureType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Identifies the specific measure of the cell by noting the order value of the measure within the MeasureDimension and provides information on the storage location of the cell value for the measure."
        },
        "Lang": {
          "$ref": "#/$defs/language",
          "description": "Use to indicate the language of the data item in the file."
        }
      },
      "description": "Describes a single data item or cell within an NCube Instance. It defines its location within the NCube by its coordinate (matrix) address which is its intersect point on each dimension. Allows for the specification of data item specific attributes, and identifies the physical location of each measure for the data item. May optionally indicate the language of the data contents."
    },
    "DataItemPType": {
      "type": "object",
      "properties": {
        "VariableReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Variable"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to a Variable describing the content of the data item."
        },
        "ProprietaryDataType": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Allows an override of the default data type, using the language of the proprietary software. A controlled vocabulary is recommended."
        },
        "ProprietaryOutputFormat": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Indicates the proprietary output format."
        },
        "ProprietaryInfo": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ProprietaryInfoType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Contains proprietary information specific to the data item. This is expressed as a set of key (name)-value pairs."
        }
      },
      "description": "Describes a single data item within the record, linking it to its description in a variable and providing information on its data type and any item specific proprietary information."
    },
    "DataItemTType": {
      "type": "object",
      "properties": {
        "DimensionRankValue": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/DimensionRankValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "A dimension describes the rank or order of the dimension within the NCube structure and provides the specific coordinate value of the dimension for the data item."
        },
        "AttachedAttributeT": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/AttachedAttributeTType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "This is an attribute attached to the specified Data Item. The content of the attribute can be provided as a single value or reference a location in the data store where the attribute value will be found. This may be in addition to attribute information described in the logical structure."
        },
        "MeasureT": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/MeasureTType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Identifies the specific measure of the cell by noting the order value of the measure within the MeasureDimension and provides information on the storage location of the cell value for the measure."
        },
        "Lang": {
          "$ref": "#/$defs/language",
          "description": "Use to indicate the language of the data item in the file."
        }
      },
      "description": "Describes a single data item or cell within an NCube Instance. It defines its location within the NCube by its coordinate (matrix) address which is its intersect point on each dimension. Allows for the specification of data item specific attributes, and identifies the physical location of each measure for the data item. May optionally indicate the language of the data contents."
    },
    "DataItemType": {
      "type": "object",
      "properties": {
        "VariableReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Variable"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to the Variable describing this data item."
        },
        "PhysicalLocation": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/PhysicalLocationType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Description of the physical location of the value of the object in the data file."
        }
      },
      "description": "Describes a single data item within the record, linking its description in a variable to its physical location in the stored record."
    },
    "DataSourceType": {
      "type": "object",
      "properties": {
        "SourceDescription": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the data source."
        },
        "SourceType": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CodeValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Brief classification of the data source. Supports the use of an external controlled vocabulary. May be repeated to represent different forms of classification. The DDI Alliance has provided a controlled vocabulary (DataSourceType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
        },
        "Origin": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/OriginType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "A citation or URI for the source of the data. Note that this is an external reference, and should not be used to point to DDI descriptions of the data, or to DDI-encoded data."
        },
        "SourceCharacteristic": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A significant characteristic of the data source that may affect understanding or collection of the data. This will include the level of documentation of the source data. For example: \u0027Legibility of data source affected due to water damage,\u0027 or \u0027solar flares during the data collection period may have affected the consistency of the data during the following period.\u0027"
        }
      },
      "description": "Describes the source of the data. This may be a population group, an environmental object, a registry, published or unpublished data source, etc. Describes and provides a classification of the source, a citation of the origin if applicable, and a listing of any characteristics of the data source that may affect understanding of the data."
    },
    "DateTimeDomainType": {
      "description": "A response domain capturing a date or time response for a question item. Contains the equivalent content of a DateTimeRepresentation including the format of the date field, a DateTypeCode, and restriction of content using a regular expression. Adds a set of elements available to all Response Domains; Label, Description, OutParameter, designation of response cardinality, and a declaration of an offset date for the data content. Has an equivalent DateTimeDomainReference which references a ManagedTextRepresentation.",
      "allOf": [
        {
          "$ref": "#/$defs/DateTimeRepresentationBaseType"
        },
        {
          "type": "object",
          "properties": {
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the domain."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the domain."
            },
            "OutParameter": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows for the response to be bound to one of the QuestionItem\u0027s OutParameters, so the collected information can be used elsewhere, for example as inputs to subsequent questions in an Instrument or to a GenerationInstruction. If multiple responses are possible, this would represent and ordered array of the responses."
            },
            "ResponseCardinality": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ResponseCardinalityType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows the designation of the minimum and maximum number of responses allowed for this response domain."
            },
            "ContentDateOffset": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ContentDateOffsetType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the difference between the date applied to the data as a whole and this specific item such as previous year\u0027s income or residence 5 years ago."
            }
          }
        }
      ]
    },
    "DateTimeRepresentationBaseType": {
      "description": "Structures the representation for any type of time format (including dates, etc.). Regardless of the format of the data the content may be treated as a date and or time and converted to ISO standard structure if sufficient information is supplied.",
      "allOf": [
        {
          "$ref": "#/$defs/RepresentationType"
        },
        {
          "type": "object",
          "properties": {
            "DateFieldFormat": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describes the format of the date field, in formats such as YYYY/MM or MM-DD-YY, etc. If this element is omitted, then the format is assumed to be the XML Schema format corresponding to the type attribute value."
            },
            "DateTypeCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This is a standard XML date type code and supports the use of an external controlled vocabulary. Examples are date, dateTime, gYearMonth, gYear, and duration. The DDI Alliance has provided a controlled vocabulary (DateType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "Range": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/RangeType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Indicates the high and low values (endpoints) of a non-numeric scale. This can be expressed as a value that matches the DateTime format. Repeatable in order to express as set of non-continuous values."
            },
            "RegExp": {
              "$ref": "#/$defs/string",
              "description": "The regular expression allows for further description of the allowable content of the data."
            }
          }
        }
      ]
    },
    "DateType": {
      "type": "object",
      "properties": {
        "SimpleDate": {
          "$ref": "#/$defs/cogsDate",
          "description": "A single point in time. If a duration is expressed as a SimpleDate it is defining a period of time without a designated Start or End date."
        },
        "HistoricalDate": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/HistoricalDateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A simple date expressed in a historical date format, including a specification of the date format and calendar used."
        },
        "StartDate": {
          "$ref": "#/$defs/cogsDate",
          "description": "Start of a date range. If there is a start date with no end date provided, this implies that the end date is unknown but that the date being recorded is not just a simple date but a range of unknown duration."
        },
        "HistoricalStartDate": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/HistoricalDateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A start date expressed in a historical date format, including a specification of the date format and calendar used."
        },
        "EndDate": {
          "$ref": "#/$defs/cogsDate",
          "description": "End of a date range with a known start date."
        },
        "HistoricalEndDate": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/HistoricalDateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "An end date expressed in a historical date format, including a specification of the date format and calendar used."
        },
        "Cycle": {
          "$ref": "#/$defs/int",
          "description": "Use to indicate occurrence of this range within a series of ranges as an integer identifying the cycle, i.e. the 4th wave of a data collection cycle would have 4."
        }
      },
      "description": "Provides the structure of a Date element, which allows a choice between single, simple dates (of BaseDateType) or date ranges. If the Date element contains a range, Cycle may be used to indicate occurrence of this range within a series of ranges as an integer identifying the cycle, i.e. the 4th wave of a data collection cycle would have 4. ISO-formatted dates are required for all standard date fields; a historically-formatted date may also be provided to reflect the specific content of a legacy document or common practice within an agency or for publication. All uses of DateType should be optional."
    },
    "DebriefingProcessType": {
      "type": "object",
      "properties": {
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the Debriefing Process."
        },
        "IsRequired": {
          "$ref": "#/$defs/boolean",
          "description": "If debriefing is required for this activity set isRequired to \u0022true\u0022."
        }
      },
      "description": "Describe the debriefing process. Specifies if debriefing is required."
    },
    "DefaultMissingValuesType": {
      "type": "object",
      "properties": {
        "MissingValuesReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "ManagedMissingValuesRepresentation"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to the appropriate ManagedMissingValuesRepresentation describing the default values."
        },
        "DefaultUsedNoDocumentation": {
          "$ref": "#/$defs/boolean",
          "description": "Use when it is known that a default missing values definition was use but there is NO documentation describing its content."
        }
      },
      "description": "Identifies the default missing value parameter for the this logical record by referencing a ManagedMissingValuesRepresentation or by stating that there is a default missing values parameter used but it is undocumented. Note that a conflicting DefaultMissingValues definition in a PhysicalInstance will override that found in the LogicalRecord."
    },
    "DefiningCharacteristicType": {
      "type": "object",
      "properties": {
        "Characteristic": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A characteristic which defines the area. These are often useful in terms of selection. For example a U.S. Block may be classified as Urban, Rural, or Mixed. The characteristic supports the use of a controlled vocabulary."
        },
        "GeographicTime": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The time period for which the characteristic is valid."
        }
      },
      "description": "Use to attach one or more characteristics to the parent object. The defining characteristic supports the use of a controlled vocabulary and may provide a time period for which the classification is valid."
    },
    "DelimiterType": {
      "type": "object",
      "properties": {
        "OtherValue": {
          "$ref": "#/$defs/string",
          "description": "When the value of Delimiter is \u0022other\u0022 provide the character used for delimiting values here. Spaces and binary values are not allowed."
        },
        "TreatConsecutiveDelimiterAsOne": {
          "$ref": "#/$defs/boolean",
          "description": "Defines the default value for the delimiter used to separate variables in a delimited record. The attribute treatConsecutiveDelimiterAsOne indicates how consecutive delimiters should be handed by the software."
        },
        "DelimiterTypeValue": {
          "$ref": "#/$defs/string",
          "enum": [
            "space",
            "tab",
            "comma",
            "semicolon",
            "colon",
            "pipe",
            "other"
          ],
          "description": ""
        }
      },
      "required": [
        "DelimiterTypeValue"
      ],
      "description": "Defines the delimiter used to separate variables in a delimited record. Valid values include, space, tab, comma, semicolon, colon, pipe, and other. If \u0022other\u0022 is used the characters used for separating (delimiting) objects should be entered in the attribute otherValue. Spaces and binary characters are not allowed. The attribute treatConsecutiveDelimiterAsOne indicates how consecutive delimiters should be handed by the software. The default value of \u0022false\u0022 indicates that each delimiter should be treated as a valid delimiter."
    },
    "DevelopmentObjectType": {
      "type": "object",
      "properties": {
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the development objects that are the intended objects of a Development Plan or specific objects of a Development Step."
        },
        "QuestionReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "QuestionBlock",
                      "QuestionGrid",
                      "QuestionItem"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Reference to the Question type that is the target of the development work. TypeOfObject should be QuestionItem, QuestionGrid, or QuestionBlock."
        },
        "MeasurementItemReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "MeasurementItem"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Reference to the Measurement that is the target of the development work. TypeOfObject should be Measurement."
        },
        "InstrumentReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Instrument"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Reference to the Instrument that is the target of the development work. TypeOfObject should be Instrument."
        },
        "ControlConstructReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ComputationItem",
                      "DevelopmentStep",
                      "IfThenElse",
                      "Loop",
                      "MeasurementConstruct",
                      "QuestionConstruct",
                      "RepeatUntil",
                      "RepeatWhile",
                      "SampleStep",
                      "SamplingStage",
                      "Sequence",
                      "Split",
                      "SplitJoin",
                      "StatementItem"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Reference to the ControlConstruct that is the target of the development work. TypeOfObject should reflect the type of ControlConstruct being referenced. Value should be IfThenElse, RepeatUntil, RepeatWhile, Loop, Sequence, ComputationItem, StatementItem, MeasurementConstruct, QuestionConstruct, Split, SplitJoin, SamplingStage, SampleStep, DevelopmentStep."
        }
      },
      "description": "A description of the development objects of a Development Implementation or Development Step. Supports a general description as well as specific references to allowed development objects."
    },
    "DeviationFromSampleDesignType": {
      "description": "Describes any deviations from the planned sample design. These may be for reasons of practicality, implementation issues, or other reasons. In addition to a narrative description allows for use of a brief term or controlled vocabulary term to classify the type of deviation.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfDeviationFromSampleDesign": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows brief identification of the deviation from the sample design with the option of using a controlled vocabulary."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Full description of deviation from the sample design."
            }
          }
        }
      ]
    },
    "DimensionIntersectType": {
      "type": "object",
      "properties": {
        "IncludedDimension": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/int"
          },
          "minItems": 0,
          "description": "List by repetition all dimensions intersecting at this value by Dimension Number."
        },
        "ForAllDimensions": {
          "$ref": "#/$defs/boolean",
          "description": "If different dimensions intersect at different values list each set in a separate DimensionIntersect and list each dimension included by an IncludeDimension."
        },
        "IntersectValue": {
          "$ref": "#/$defs/string",
          "description": "The value at which the dimensions intersect."
        }
      },
      "description": "Identifies the point at which the scales of a multidimensional scale intersect. May include all or a subset of dimensions intersecting at a given point. Repeat for multiple intersect points."
    },
    "DimensionRankValueType": {
      "type": "object",
      "properties": {
        "VariableReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Variable"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "References the Variable holding the dimension value. Use this instead of the value attribute when the value must be obtained from the data file at the location of the variable indicated in the reference."
        },
        "Value": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The value of this dimension for this particular data item."
        },
        "Rank": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Enter the rank (placement) order in which the value from this dimension appears in the coordinate address of any cell in the NCube matrix."
        }
      },
      "required": [
        "Rank"
      ],
      "description": "A dimension describes the rank or order of the dimension within the NCube structure and provides the specific coordinate value of the dimension for the data item. In the case where the value is found within the data file, it provides a reference to the variable containing the value."
    },
    "DimensionType": {
      "type": "object",
      "properties": {
        "VariableReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Variable"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Identifies the variable describing this dimension. The dimension uses a form of CodeRepresentation (representation uses a CodeList, GeographicStructure, GeographicLocation, etc.), or a fixed range of numeric values to define the labels and intersect points for the dimension. The data set will contain a measurement value for each cell in the NCube rather than specifying the code values of the intersect points on the dimensions. Example: NCube Sex by Age in Years where there are 24 Males Age 4 (Dimension 1 intersect value M, Dimension 2 intersect value 4 with data cell measurement value (count) 24.)"
        },
        "Rank": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "The rank order of this dimension (the order in which the value for this dimension will appear in the cell address)denoted with a 1-based indexing. Provides coordinate order (1,2,n) for the intersect point of this dimension within the cell address. For example, if the rank of this dimension is 2, the intersect point on this dimension will be the second value listed in the cell address."
        }
      },
      "required": [
        "Rank"
      ],
      "description": "A dimension is provided a rank and a reference to a variable that describes it. Cell locations are \u0022addressed\u0022 by the value of their intersect on each dimension provided in rank order."
    },
    "DistributionDomainType": {
      "description": "A response domain capturing a distribution response for a question item. Includes standard response domain elements; OutParameter, designation of response cardinality, and a declaration of an offset date for the data content, as well as the description of a distribution representation.",
      "allOf": [
        {
          "$ref": "#/$defs/DistributionRepresentationBaseType"
        },
        {
          "type": "object",
          "properties": {
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the domain."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the domain."
            },
            "OutParameter": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows for the response to be bound to one of the QuestionItem\u0027s OutParameters, so the collected information can be used elsewhere, for example as inputs to subsequent questions in an Instrument or to a GenerationInstruction. If multiple responses are possible, this would represent and ordered array of the responses."
            },
            "ResponseCardinality": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ResponseCardinalityType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows the designation of the minimum and maximum number of responses allowed for this response domain."
            },
            "ContentDateOffset": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ContentDateOffsetType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the difference between the date applied to the data as a whole and this specific item such as previous year\u0027s income or residence 5 years ago."
            }
          }
        }
      ]
    },
    "DistributionRepresentationBaseType": {
      "description": "Means of describing Distributions as a representation so that they can be used as a response domain questions. Primarily used as a response domain in a QuestionGrid. In addition to the base of objects of a representation the structure provides the total value to be distributed between the objects and the number of decimal positions allowed within a response.",
      "allOf": [
        {
          "$ref": "#/$defs/RepresentationType"
        },
        {
          "type": "object",
          "properties": {
            "DistributionValue": {
              "$ref": "#/$defs/decimal",
              "description": "Identifies the total value to be distributed among the designated objects."
            },
            "DecimalPositions": {
              "$ref": "#/$defs/int",
              "description": "Identifies the number of decimal points allowed for the expression of a response."
            }
          }
        }
      ]
    },
    "DomainSpecificValueType": {
      "type": "object",
      "properties": {
        "Value": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/ValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "The value of the target response domain to which the object should be attached."
        },
        "AttachmentDomain": {
          "$ref": "#/$defs/int",
          "description": "This is the value of the attribute \u0022attachmentBase\u0022 on the ResponseDomainInMixed to which the specified response domain will be attached. This is used to clarify attachment locations when more than two response domains are provided in a StructuredMixedResponseDomain."
        }
      },
      "description": "Identifies the value of the ResponseDomain to which the new ResponseDomain is attached by specifying its attachmentBase number of the target ResponseDomain in the attribute attachmentDomain. Specifies one or more values within the ResponseDomain to which the object is attached (i.e. single item or set)."
    },
    "DoubleNumberRangeValueType": {
      "type": "object",
      "properties": {
        "DoubleValue": {
          "$ref": "#/$defs/double",
          "description": ""
        },
        "IsInclusive": {
          "$ref": "#/$defs/boolean",
          "description": "Indicates that the value is included in the range. Set to false if the range includes numbers up to but no including the designated value."
        }
      },
      "description": "Describes a bounding value for a number range expressed as an xs:double."
    },
    "DynamicTextType": {
      "type": "object",
      "properties": {
        "TextContent": {
          "type": "array",
          "items": {
            "type": "object",
            "oneOf": [
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/ConditionalTextType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ConditionalTextType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/LiteralTextType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "LiteralTextType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "This is the head of a substitution group and is never used directly as an element name. Instead it is replaced with either LiteralText or ConditionalText."
        },
        "IsStructureRequired": {
          "$ref": "#/$defs/boolean",
          "description": "If textual structure (e.g. size, color, font, etc.) is required to understand the meaning of the content change value to \u0022true\u0022."
        },
        "AudienceLanguage": {
          "$ref": "#/$defs/language",
          "description": "Specifies the language of the intended audience. This is particularly important for clarifying the primary language of a mixed language textual string, for example when language testing and using a foreign word withing the question text."
        }
      },
      "description": "Structure supporting the use of dynamic text, where portions of the textual contend change depending on external information (pre-loaded data, response to an earlier query, environmental situations, etc.)."
    },
    "ElseIfTextType": {
      "type": "object",
      "properties": {
        "IfCondition": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CommandCodeType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The condition which must be met to trigger the Then clause, expressed as a Coding. The condition is an expression in the programming language used in the instrument."
        },
        "ThenResult": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ConditionalResultType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The conditional response which should be triggered if the associated condition is met."
        }
      },
      "description": "Use for multiple branching from a single point in the flow logic represented by the flow logic If, Then, ElseIf, Then, etc. This is a packaging element for an IfCondition and ThenConstructReference and not a control construct."
    },
    "ElseIfType": {
      "type": "object",
      "properties": {
        "IfCondition": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CommandCodeType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The condition which must be met to trigger the Then clause, expressed as a Coding. The condition is an expression in the programming language used in the instrument."
        },
        "ThenConstructReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Sequence"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to the control construct which should be triggered if the associated condition is met."
        }
      },
      "description": "Use for multiple branching from a single point in the flow logic represented by the flow logic If, Then, ElseIf, Then, etc. This is a packaging element for an IfCondition and ThenConstructReference and not a control construct."
    },
    "EmailType": {
      "type": "object",
      "properties": {
        "InternetEmail": {
          "$ref": "#/$defs/string",
          "pattern": "([\\.a-zA-Z0-9_\\-])\u002B@([a-zA-Z0-9_\\-])\u002B(([a-zA-Z0-9_\\-])*\\.([a-zA-Z0-9_\\-])\u002B)\u002B",
          "description": "The email address express as a string (restricted to the Internet format)."
        },
        "EmailTypeCode": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Code indicating the type of e-mail address. Supports the use of an external controlled vocabulary."
        },
        "EffectivePeriod": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Clarifies when the identification information is accurate."
        }
      },
      "description": "Email address type (Currently restricted to Internet format user@server.ext.)."
    },
    "EmbargoType": {
      "description": "Provides information about data that are not currently available because of policies established by the principal investigators and/or data producers. This item may be attached to specific levels of a study such as a specific variable by reference. Embargo provides a name, label and description of the embargo, the dates covered by the embargo, the rationale or reason for the embargo, a reference to the agency establishing the embargo, and a reference to the agency enforcing the embargo.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "EmbargoName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "The name or names by which the embargo is known. Repeat if different names are used for different purposes or different contexts. Language repetition is handled within the structure of the Embargo Name element."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A label or labels for the embargo element. Repeat for differences in content due to software or application constraints. Language repetition is handled within the structure of the label."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Describe the content and coverage of the embargo."
            },
            "Date": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DateType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Provides the end date of the embargo, which may take the form of a date range (complete or open ended). Note SimpleDate should not be used for an Embargo Date as an embargo is for a period of time."
            },
            "Rationale": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Indicates the reason for the embargo."
            },
            "AgencyOrganizationReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Individual",
                        "Organization"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to an organization or individual, defined in the organization scheme, responsible for the embargo."
            },
            "EnforcementAgencyOrganizationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Individual",
                          "Organization"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to an organization or individual, defined in the organization scheme, responsible for enforcing the embargo."
            }
          }
        }
      ]
    },
    "EvaluatorType": {
      "type": "object",
      "properties": {
        "EvaluatorReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Individual",
                    "Organization"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to an Organization or Individual involved in performing the evaluation."
        },
        "EvaluatorRole": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CodeValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Describes the role of the evaluator with optional use of a controlled vocabulary."
        }
      },
      "description": "Describes the type of evaluation, completion date, evaluation process and outcomes of the ExPost Evaluation. Allows identification of the Evaluator via reference to and organization or individual and provides for the optional use of a controlled vocabulary to define the specific role of the evaluator."
    },
    "ExPostEvaluationType": {
      "type": "object",
      "properties": {
        "TypeOfEvaluation": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CodeValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Brief identification of the type of evaluation. Supports the use of an external controlled vocabulary."
        },
        "Evaluator": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/EvaluatorType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Identifies the evaluator and specifies the role of the evaluator using an external controlled vocabulary."
        },
        "EvaluationProcess": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Describes the process of the Evaluation."
        },
        "Outcomes": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Describes the outcomes of the evaluation process."
        },
        "CompletionDate": {
          "$ref": "#/$defs/cogsDate",
          "description": "Identifies the date the evaluation was completed."
        }
      },
      "description": "Evaluation for the purpose of reviewing the study, data collection, data processing, or management processes. Results may feed into a revision process for future data collection or management. Identifies the type of evaluation undertaken, who did the evaluation, the evaluation process, outcomes and completion date."
    },
    "ExternalAidType": {
      "type": "object",
      "properties": {
        "OtherMaterialReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "OtherMaterial"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Description and link to the ExternalAid using the DDI Other Material structure."
        }
      },
      "description": "Description and link to the External Aid using the DDI Other Material structure."
    },
    "ExternalCategoryRepresentationBaseType": {
      "description": "Structures a response domain based on categorization that is described in an external non-DDI structure. Includes a UsageDescription that should provide information on how the external source is to be used.",
      "allOf": [
        {
          "$ref": "#/$defs/RepresentationType"
        },
        {
          "type": "object",
          "properties": {
            "ExternalCategoryReference": {
              "$ref": "#/$defs/anyURI",
              "description": "References an external, non DDI category. This is the element to use if the Code Scheme being used is not in DDI and cannot be used directly. It provides for both the reference and an explanation of how to use the information accurately within a DDI context."
            },
            "UsageDescription": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the use of the external category file."
            }
          }
        }
      ]
    },
    "ExternalInformationType": {
      "type": "object",
      "properties": {
        "OtherMaterialReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "OtherMaterial"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Description and link to the External Information using the DDI Other Material structure."
        }
      },
      "description": "Description and link to the External Information using the DDI Other Material structure."
    },
    "ExternalInterviewerInstructionType": {
      "type": "object",
      "properties": {
        "OtherMaterialReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "OtherMaterial"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Specification of an external interviewer instruction not structured in DDI. Uses the structure of OtherMaterial to provide a citation, description, and locator for the object. TypeOfOtherMaterial should be set to ExternalInterviewInstruction."
        },
        "InstructionAttachmentLocation": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/InstructionAttachmentLocationType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Allows attachment of an instruction to a specific item in a question structure. For example, to a Label, QuestionText, ResponseDomain, Response domain value, or grid cell."
        },
        "IsDisplayed": {
          "$ref": "#/$defs/boolean",
          "description": "If set to \u0022true\u0022 indicates that the instruction should always be displayed, not just upon need."
        }
      },
      "description": "Specification of an external interviewer instruction not structured in DDI. Uses the structure of OtherMaterial to provide a citation, description, and locator for the object."
    },
    "FilterVariableCategoryType": {
      "type": "object",
      "properties": {
        "FilterCategoryValue": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CategoryValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Provides the specific value of the variable being used as a filter. References a specific Code within the variable if using a CodeRepresentation. May alternately provide the Value of the Category."
        },
        "VariableCategory": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/VariableCategoryType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Category statistics for the specified value of the variable (when the filter variable contains the specified value). Repeat for each value of the variable."
        }
      },
      "description": "Category statistics for the variable when the filter variable contains the specified value."
    },
    "FilteredCategoryStatisticsType": {
      "type": "object",
      "properties": {
        "FilterVariableReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Variable"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to the variable used to filter the category level statistics. "
        },
        "FilterVariableCategory": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/FilterVariableCategoryType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Provides filtered category statistics for the specified filter variable category."
        }
      },
      "description": "Category statistics filtered by the value of a second variable. Essentially a cross tabulation of one variable by another. For example variable may be crossed with country as is done in the Eurobarometer when reporting category statistics. For example, the Eurobarometer may filter its category statistics by country as represented in a variable \u0022CountryCode\u0022."
    },
    "FixedCellValueType": {
      "type": "object",
      "properties": {
        "Value": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Identifies the value to which the cell(s) defined in GridAttachment should be fixed. Supports the use of meaningful leading or trailing spaces. Note that care should be taken to make sure this is a valid value within the response domain of the cell."
        },
        "GridAttachment": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/GridAttachmentType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Identifies the cell or cells in a grid to which the label is attached by a reference to a specific cell coordinate in a grid or by identifying a range of values along a dimension."
        }
      },
      "description": "Provides the ability to fix the value of a grid cell and defines the cell or cells. Designates the fixed value to be used and the location of the cell or cells within the grid."
    },
    "FixedIdentifierType": {
      "type": "object",
      "properties": {
        "VariableReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Variable"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Reference to a variable used as a fixed identifier either singly or in combination with additional reference variables."
        }
      },
      "description": "Reference to the variable containing the unique identifier. This may be a concatenated variable which indicates the combination of variable required to create a unique identification. If more than one variable reference is included the combination of the variable field contents must be unique and all variables are required for case identification."
    },
    "FormType": {
      "type": "object",
      "properties": {
        "FormNumber": {
          "$ref": "#/$defs/string",
          "description": "The number or other means of identifying the form."
        },
        "URI": {
          "$ref": "#/$defs/anyURI",
          "description": "The URN or URL of the form."
        },
        "Statement": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A statement regarding the use, coverage, and purpose of the form."
        },
        "IsRequired": {
          "$ref": "#/$defs/boolean",
          "description": "Set to \u0022true\u0022 if the form is required. Set to \u0022false\u0022 if the form is optional."
        }
      },
      "description": "A link to a form used by the metadata containing the form number, a statement regarding the contents of the form, a statement as to the mandatory nature of the form and a privacy level designation."
    },
    "FundingInformationType": {
      "type": "object",
      "properties": {
        "AgencyOrganizationReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Individual",
                      "Organization"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Reference to an organization or individual, defined in the organization scheme, that served as a funding source."
        },
        "FunderRole": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Role of the funding organization or individual. Supports the use of a controlled vocabulary."
        },
        "GrantNumber": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/string"
          },
          "minItems": 0,
          "description": "The identification code of the grant or other monetary award which provided funding for the described object."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Additional information regarding the role and actions of the this funding source."
        },
        "FundingDocumentReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "OtherMaterial"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Link to a document related to the funding such as application or funding announcement using the OtherMaterial structure."
        },
        "FundingPeriod": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Dates for which the funding is provided."
        }
      },
      "description": "Provides information about the individual, agency and/or grant(s) which funded the described entity. Lists a reference to the agency or individual as described in a DDI Organization Scheme, the role of the funder, the grant number(s) and a description of the funding activity."
    },
    "GenerationType": {
      "type": "object",
      "properties": {
        "ComponentReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Category"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Reference to a category used in the generation process."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the generation process."
        },
        "CommandCode": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CommandCodeType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Structured information used by a system to generate the category."
        },
        "OtherMaterialReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "OtherMaterial"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "External documentation required for creating the generation - for example, a chart or table for defining poverty."
        },
        "IsDerived": {
          "$ref": "#/$defs/boolean",
          "description": "If not a derivation process set this attribute to \u0022false\u0022."
        },
        "Qualification": {
          "$ref": "#/$defs/string",
          "description": "A qualification for the generation process expressed as a simple string."
        }
      },
      "description": "Description of the process used to generate the category content. Includes a reference to component parts, a description of the generation process, a structured command, and other materials that are needed in the generation process. The item may be designated as a derivation process (default value) and be qualified in some way by a qualification attribute."
    },
    "GeographicBoundaryType": {
      "type": "object",
      "properties": {
        "AreaCoverage": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/AreaCoverageType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Use to specify the area of land, water, total or other area coverage in terms of square miles/kilometers or other measures."
        },
        "BoundingBox": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/BoundingBoxType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A BoundingBox (North, South Latitude and East, West Longitude) of the LocationValue for the time period specified with the GeographicBoundary."
        },
        "BoundingPolygon": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/PolygonType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "A description of the boundaries of the polygon either in-line or by a reference to an external file containing the boundaries. Repeatable to describe non-contiguous areas such as islands or Native American Reservations in some parts of the United States."
        },
        "ExcludingPolygon": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/PolygonType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "A description of a the boundaries of a polygon internal to the bounding polygon which should be excluded. For example, for the bounding polygon describing the State of Brandenburg in Germany, the Excluding Polygon would describe the boundary of Berlin, creating hole within Brandenburg which is occupied by Berlin."
        },
        "GeographicTime": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A time for which the polygon is an accurate description of the area. This may be a range (without an end date if currently still valid) or a single date when the shape was know to be valid if a range is not available."
        }
      },
      "description": "A choice of a BoundingBox and/or a set of BoundingPolygons and ExcludingPolygons that describe an area for a specific time period."
    },
    "GeographicCoverageType": {
      "description": "Describes the geographic coverage of the data documented in a particular DDI module. If subordinate to another module, this description should be a sub-set of the parent module\u0027s geographic coverage. Contains a definition for a Bounding Box used for coordinate searches, a definition of the geographic coverage, a reference to a variable that describes the geographic structure, definition of the spatial object of the data, a reference to a GeographicStructure and GeographicLocation providing further details of the coverage, and specification of the geographic summary levels for which data are provided, the top and lowest levels of geographic identification provided.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "BoundingBox": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/BoundingBoxType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The Bounding Box is a \u0027rectangle, oriented to the x and y axes, which bounds a geographic feature or a geographic dataset. It is specified by two coordinates: xmin, ymin and xmax, ymax.\u0027 [FGDC]. In the DDI, it describes the full extent of the geographic coverage, and is designed to be used by systems that search for geography by coordinates. It is compatible with the description and structure found in FGDC and other geographic metadata structures."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A summary description of the geographic (spatial) coverage of the module. It may include information on all levels of spatial coverage, in addition to the overall coverage. This field can map to Dublin Core Coverage, which does not support structured strings. Therefore, if there is intent to map to Dublin Core, the text should not be marked up with XHTML."
            },
            "CountryCode": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CountryCodeType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Serves as head of a substitution group for specifying ISO 3166 Country Codes or use of unspecified text. Use of ISO 3166 Country codes strongly recommended. Repeat for each country. If"
            },
            "GeographyStructureVariableReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Variable"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "References a variable describing the geographic levels available in the data such as the variable \u0022Summary Level\u0022 in U.S. Census data. This reference is needed for assistance in programming."
            },
            "SpatialObject": {
              "$ref": "#/$defs/string",
              "enum": [
                "Point",
                "Polygon",
                "Line",
                "LinearRing"
              ],
              "description": "Contains information on the most discrete type of spatial representation to which data described by this module can be attached (point, line, polygon, linear ring). For example, a raw data file with an address attached to each case is \u0027point\u0027. When the microdata file is anonymized and the geographic information is for a state or other defined area, it is \u0027polygon\u0027. Some data, such as traffic or criminal incidence data may have a street range identification or \u0027line\u0027, and some such as communications data have a point with a radius or \u0027linear ring\u0027."
            },
            "GeographicStructureReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicStructure"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the detailed information found in a GeographicStructure. Allows for the exclusion of specified LevelValues."
            },
            "GeographicLevelReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/GeographicLevelType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Reference to specific LevelValue found in a GeographicStructure. Use when only a limited number of GeographicLevel are used from a GeographicStructure."
            },
            "GeographicLocationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicLocation"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to detailed listing of named locations within the data described by a GeographicLocation."
            },
            "LocationValueReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/LocationValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Reference to specific LocationValue found in a GeographicLocation. Use when only a limited number of LocationValue are used from a GeographicStructure."
            },
            "SummaryDataReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/GeographicLevelType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "May be repeated to reference each geography (geographic level) for which there is summary data. For example, person records may contain summary data on the State, County, or City in which they reside. In data collections where the individual case is a geographic location such as a County, data may be provided that summarizes State or National data. This is often true where data suppression at lower geographies makes it impossible to roll-up or aggregate the data to obtain values for the higher levels."
            },
            "HighestLevelReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/LevelReferenceType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Reference to the top or highest GeographicLevel."
            },
            "LowestLevelReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/LevelReferenceType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Reference to the bottom or lowest GeographicLevel."
            }
          }
        }
      ]
    },
    "GeographicDomainType": {
      "description": "Structures the response domain for a geographic point to ensure collection of relevant information. The point may be associated with a polygon (such as the centroid of the polygon) or a line (end or shape points of a line). Note that the common response domain objects (OutParameter, ResponseCardinality, and ContentDateOffset) are available at each of the response objects in the representation.",
      "allOf": [
        {
          "$ref": "#/$defs/GeographicRepresentationBaseType"
        },
        {
          "type": "object",
          "properties": {
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the domain."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the domain."
            }
          }
        }
      ]
    },
    "GeographicLevelType": {
      "description": "Describes a level within the GeographicStructure. In addition to a name and description, provides one or more GeographicLevelCodes by which it is identified with specified system, any coverage limitations, and parent position within a single hierarchy or if it is the result of layering multiple hierarchies, the lowest component level for each of the layering hierarchies. Allows for an indicator declaring that coverage of the parent level is or is not exhaustive.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "GeographicLevelName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the GeographicLevel."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the GeographicLevel."
            },
            "GeographicLevelCode": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A code and its authorization source for identifying the level within a specific system."
            },
            "CoverageLimitation": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Describes a limitation of the coverage such as all objects of a specific type that meet population size requirements (i.e., All Places with a population of 10,000 or more)."
            },
            "PrimaryComponentLevel": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/PrimaryComponentLevelType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides references to the base level elements that are used as building blocks for composed geographies. For example, Metropolitan areas that are composed of counties except in the New England States where they are composed of county subdivisions, or School Attendance Boundaries (SABINS) built from Census Blocks. This structure allows for specifying the basic building block for composed areas and any restrictions (coverage limitations). The field may be repeated to provide alternate information on the basic building blocks for areas outside of the coverage limitations described."
            },
            "ParentGeographicLevelReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/GeographicLevelType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Reference to a single containing (parent) geography."
            },
            "IsExhaustiveParentGeographicLevel": {
              "$ref": "#/$defs/boolean",
              "description": "Indicates whether the geographic level completely fills its parent level. Counties are exhaustive within States. Places are NOT exhaustive within States."
            },
            "GeographicLayerBaseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/GeographicLevelType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Use for geographic polygons that are the result of layering two or more geographic hierarchies where the polygon being described is the intersect of the layers. For example: State - County - County Subdivision - Place/Remainder - Tract [The portion of a tract that is within a single place (or non-place area) and a single county subdivision] This polygon is made by overlaying the following three geographic hierarchies: 1) State - Place, 2) State - County - Tract, and 3) State - County - Subdivision. The three GeographicLayerBase elements would point to Tract, Place, and County Subdivision."
            }
          }
        }
      ]
    },
    "GeographicLocationCodeDomainType": {
      "description": "A response domain capturing the name or code of a Geographic Location as a response for a question item. Includes standard response domain elements; OutParameter, designation of response cardinality, and a declaration of an offset date for the data content, as well as a description of a geographic location code represeanttion. Allows for capturing a limited segment of a complex geographic code.",
      "allOf": [
        {
          "$ref": "#/$defs/GeographicLocationCodeRepresentationBaseType"
        },
        {
          "type": "object",
          "properties": {
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the domain."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the domain."
            },
            "OutParameter": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows for the response to be bound to one of the QuestionItem\u0027s OutParameters, so the collected information can be used elsewhere, for example as inputs to subsequent questions in an Instrument or to a GenerationInstruction. If multiple responses are possible, this would represent and ordered array of the responses."
            },
            "ResponseCardinality": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ResponseCardinalityType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows the designation of the minimum and maximum number of responses allowed for this response domain."
            },
            "ContentDateOffset": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ContentDateOffsetType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the difference between the date applied to the data as a whole and this specific item such as previous year\u0027s income or residence 5 years ago."
            },
            "DisplayCode": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 (default value) the code value associated with the category label will be displayed. Set to \u0022false\u0022 if only the category label should not be displayed."
            }
          }
        }
      ]
    },
    "GeographicLocationCodeRepresentationBaseType": {
      "description": "Allows for the use of all or part of a GeographicLocation description to be used as a response domain or value representation by a question or variable. In addition to the basic objects of a representation it describes the Geographic Location values available for use by the question or variable.",
      "allOf": [
        {
          "$ref": "#/$defs/RepresentationType"
        },
        {
          "type": "object",
          "properties": {
            "IncludedGeographicLocationCodes": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/IncludedGeographicLocationCodesType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the Geographic Location codes included by the Authorized source of the code, the geographic location being used and the locations to exclude."
            },
            "LimitedCodeSegmentCaptured": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/LimitedCodeSegmentCapturedType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "When the code is a concatenation this structure allows you to limit the portion of the concatenated code that this object captures."
            }
          }
        }
      ]
    },
    "GeographicLocationIdentifierType": {
      "type": "object",
      "properties": {
        "GeographicCode": {
          "$ref": "#/$defs/string",
          "description": "Container for a standard geography code expressed as a string."
        },
        "AuthorizedSourceReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/AuthorizedSourceType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Reference to the AuthorizedSource description in GeographicLocation that provided this code."
        }
      },
      "description": "Describes the GeographicLocation as represented by a specific GeographicCode provided by an Authorized Source."
    },
    "GeographicRepresentationBaseType": {
      "description": "Structures the representation for a geographic point to ensure collection of relevant information using a single response domain structure. The point may be associated with a polygon (such as the centroid of the polygon) or a line (end or shape points of a line). The structure provides a description of the default values for the datum type, coordinate system used, the coordinate zone, error correction method, standard offset, the geographic object being positioned, the type of address match if used, the point format, and spatial primitive type. It provides response options for the coordinate pairs being captured, and alternate values for the offset, geo-referenced object and coordinate system if a different one is used to capture a specific response.",
      "allOf": [
        {
          "$ref": "#/$defs/RepresentationType"
        },
        {
          "type": "object",
          "properties": {
            "Datum": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The standard datum format used. Supports the use of a controlled vocabulary."
            },
            "CoordinateSystem": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The standard coordinate system used. Supports the use of a controlled vocabulary."
            },
            "CoordinateZone": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The standard coordinate zone being used. Supports the use of a controlled vocabulary."
            },
            "CoordinateSource": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The standard coordinate source being used. Supports the use of a controlled vocabulary."
            },
            "ErrorCorrection": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The standard method of error correction being used. Supports the use of a controlled vocabulary."
            },
            "Offset": {
              "$ref": "#/$defs/string",
              "description": "A definition of the standard offset used when taking a coordinate reading on the geo-referenced object."
            },
            "GeoreferencedObject": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The standard object for which the geographic coordinates are being captured. This could be a household, village centroid, etc. Supports the use of a controlled vocabulary."
            },
            "AddressMatchType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Use for coordinates obtained through address matching only. Identify the address matching method. Example: street segment match, ZIP code centroid, etc. Supports the use of a controlled vocabulary."
            },
            "CoordinatePairs": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CoordinatePairsType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Field to capture coordinate pairs as individual pairs or as an array of pairs."
            },
            "AlternateOffset": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/TextDomainType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "If unable to use the standard offset, allows entry of a non-standard offset figure."
            },
            "AlternateObject": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/TextDomainType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "If the default geo-referenced object is unavailable or cannot be measured, allows identification of an alternate object."
            },
            "AlternateCoordinateSystem": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/TextDomainType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Specifies the coordinate system used for a response if different from that stated in the response structure."
            },
            "PointFormat": {
              "$ref": "#/$defs/string",
              "enum": [
                "DecimalDegree",
                "DegreesMinutesSeconds",
                "DecimalMinutes",
                "Meters",
                "Feet"
              ],
              "description": "The type attribute is used by the documenter to describe the numeric response domain."
            },
            "SpatialPrimitive": {
              "$ref": "#/$defs/string",
              "enum": [
                "Point",
                "Polygon",
                "Line",
                "LinearRing"
              ],
              "description": "Indicates the spatial primitive object which the point references."
            }
          },
          "required": [
            "PointFormat",
            "SpatialPrimitive"
          ]
        }
      ]
    },
    "GeographicStructureCodeDomainType": {
      "description": "A response domain capturing a geographic structure code as a response for a question item. Includes standard response domain elements; OutParameter, designation of response cardinality, and a declaration of an offset date for the data content, as well as a description of a geographic structure code representation.",
      "allOf": [
        {
          "$ref": "#/$defs/GeographicStructureCodeRepresentationBaseType"
        },
        {
          "type": "object",
          "properties": {
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the domain."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the domain."
            },
            "OutParameter": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows for the response to be bound to one of the QuestionItem\u0027s OutParameters, so the collected information can be used elsewhere, for example as inputs to subsequent questions in an Instrument or to a GenerationInstruction. If multiple responses are possible, this would represent and ordered array of the responses."
            },
            "ResponseCardinality": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ResponseCardinalityType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows the designation of the minimum and maximum number of responses allowed for this response domain."
            },
            "ContentDateOffset": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ContentDateOffsetType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the difference between the date applied to the data as a whole and this specific item such as previous year\u0027s income or residence 5 years ago."
            },
            "DisplayCode": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 (default value) the code value associated with the category label will be displayed. Set to \u0022false\u0022 if only the category label should not be displayed."
            }
          }
        }
      ]
    },
    "GeographicStructureCodeRepresentationBaseType": {
      "description": "Allows for the use of all or part of a GeographicStructure description to be used as a response domain or value representation by a question or variable. In addition to the basic objects of a representation it describes the Geographic Structure values available for use by the question or variable.",
      "allOf": [
        {
          "$ref": "#/$defs/RepresentationType"
        },
        {
          "type": "object",
          "properties": {
            "IncludedGeographicStructureCodes": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/IncludedGeographicStructureCodesType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the Geographic Structure codes included by the Authorized source of the code, the Geographic Structure being used and the Structures to exclude."
            }
          }
        }
      ]
    },
    "GridAttachmentType": {
      "type": "object",
      "properties": {
        "SpecificCellCoordinate": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/string"
          },
          "minItems": 0,
          "description": "Defines a single cell by its matrix coordinate address. For example \u00221,3,2\u0022 for a 3 dimensional matrix where dimension rank-1 has a value of 1, dimension rank-2 has a value of 3, and dimension rank-3 has a value of 2."
        },
        "CellCoordinatesAsDefined": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CellCoordinatesAsDefinedType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Defines one or more cells by defining the applicable values of each dimension as \u0022all values\u0022, a \u0022specific value\u0022 or a range. For example in a simple 2 dimensional grid where dimension rank-1 is displayed as rows and dimension rank-2 as columns and the first column contains a NumericDomain; SelectDimension rank=\u00221\u0022 allValues=\u0022true\u0022 and SelectDimension rank=\u00222\u0022 specificValue=\u00221\u0022 would result in the NumericDomain being attached to the first column of the grid only."
        },
        "AllCells": {
          "$ref": "#/$defs/boolean",
          "description": "If the item should be attached to all the cells in the grid set this attribute to \u0022true\u0022."
        }
      },
      "description": "Identifies the cell or cells in a grid to which the item is attached by a reference to a specific cell coordinate in a grid or by identifying a range of values along a dimension."
    },
    "GridDimensionType": {
      "type": "object",
      "properties": {
        "CodeDomain": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeDomainType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "This includes a reference to a CodeList that is used for the labels contained in the dimension. CodeLists are used even when the code is not being displayed in order to use this information for creating the cell coordinate address."
        },
        "Roster": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/RosterType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A roster is an unlabeled list of numbered rows or columns depending upon orientation. The numbers may or may not be displayed but will be used as information for creating the cell coordinate address."
        },
        "CreateSummary": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CreateSummaryType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Note that this is generally usable only with single valid response domain in grid. More complex uses should be carefully documented using details in CommandCode and Input/output Parameters."
        },
        "Rank": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "The rank order of this dimension (the order in which the value for this dimension will appear in the cell address)denoted with a 1-based indexing. Provides coordinate order (1,2,n) for the intersect point of this dimension within the cell address. For example, if the rank of this dimension is 2, the intersect point on this dimension will be the second value listed in the cell address."
        },
        "DisplayCode": {
          "$ref": "#/$defs/boolean",
          "description": "If set to \u0022true\u0022 (default value) the code value associated with the category label will be displayed. Set to \u0022false\u0022 if only the category label should not be displayed."
        },
        "DisplayLabel": {
          "$ref": "#/$defs/boolean",
          "description": "If set to \u0022true\u0022 (default value) the label of the CodeList will be displayed. Set to \u0022false\u0022 to suppress this display."
        }
      },
      "required": [
        "Rank"
      ],
      "description": "Describes each dimension of the grid including dimension rank (for the purpose of identifying a cell address), a text for the dimension, and optional labels and codes used as column and row stubs. May also describe a roster (a set of unlabeled rows or columns depending upon display situation)."
    },
    "GridResponseDomainInMixedType": {
      "type": "object",
      "properties": {
        "ResponseDomain": {
          "type": "object",
          "oneOf": [
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CategoryDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CategoryDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CategoryRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CategoryRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CodeDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CodeDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CodeRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CodeRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CoordinatePairsType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CoordinatePairsType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/DateTimeDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "DateTimeDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/DateTimeRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "DateTimeRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/DistributionDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "DistributionDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/DistributionRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "DistributionRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/ExternalCategoryRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ExternalCategoryRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeographicDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicLocationCodeDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeographicLocationCodeDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicLocationCodeRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeographicLocationCodeRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeographicRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicStructureCodeDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeographicStructureCodeDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicStructureCodeRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeographicStructureCodeRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/LocationDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "LocationDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/LocationRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "LocationRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/NominalDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "NominalDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/NominalRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "NominalRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/NumericDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "NumericDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/NumericRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "NumericRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/RankingDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "RankingDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/RankingRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "RankingRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/ScaleDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ScaleDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/ScaleRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ScaleRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/TextDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "TextDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/TextRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "TextRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            }
          ],
          "unevaluatedProperties": false,
          "description": "This is a substitution head and can be replaced by any valid member of the substitution group for ResponseDomain."
        },
        "ResponseDomainReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "ManagedCategoryRepresentation",
                    "ManagedCodeRepresentation",
                    "ManagedDateTimeRepresentation",
                    "ManagedDistributionRepresentation",
                    "ManagedExternalCategoryRepresentation",
                    "ManagedGeographicLocationCodeRepresentation",
                    "ManagedGeographicRepresentation",
                    "ManagedGeographicStructureCodeRepresentation",
                    "ManagedLocationRepresentation",
                    "ManagedMissingValuesRepresentation",
                    "ManagedNominalRepresentation",
                    "ManagedNumericRepresentation",
                    "ManagedRankingRepresentation",
                    "ManagedScaleRepresentation",
                    "ManagedTextRepresentation"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "The inclusion of a response domain by reference (must be supported by a managed representation). An abstract element. May be substituted by any valid object of substitution type ResponseDomainReference."
        },
        "ResponseAttachmentLocation": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/AttachmentLocationType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Allows attachment of a secondary response domain to a specific item within another response domain used in the question grid. For example, attach a TextDomain to the value \u0022Other\u0022 using the TextDomain label (Please specify) as a label for the TextDomain."
        },
        "GridAttachment": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/GridAttachmentType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Identifies the cell or cells in a grid to which the item is attached by a reference to a specific cell coordinate in a grid or by identifying a range of values along a dimension."
        },
        "AttachmentBase": {
          "$ref": "#/$defs/int",
          "description": "If another response domain will be attached to the response domain listed withinResponseDomainInMixed provide a value in attachmentBase to allow for unique identification within this question grid. ResponseAttachmentLocation contains an attribute attachmentDomain which will provide a link from the domain that is being attached to the domain it is being attached to."
        }
      },
      "description": "Designates the response domain and the cells using the specified response domain within a QuestionGrid. Supports the use of ResponseAttachmentLocation and attachmentBase for defining specific relationships between response domains in a StructuredMixedGridResponseDomain. Functions similar to a ResponseDomainInMixed within a QuestionItem."
    },
    "GrossFileStructureType": {
      "description": "Includes information about the file structure, as well as other characteristics that are specific to the physical instance. Information includes place of production, processing checks to validate the content, processing status, the software used to create the data file, and check sums for the number of cases and overall record count.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "PlaceOfProduction": {
              "$ref": "#/$defs/string",
              "description": "Indicates the place where the physical instance was produced expressed as a simple string."
            },
            "ProcessingCheck": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Documents processing checks and other operations performed on the data file."
            },
            "ProcessingStatus": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Processing status of the data file. Supports the use of an external controlled vocabulary."
            },
            "CreationSoftware": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/SoftwareType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates the software that was used to create the data file."
            },
            "CaseQuantity": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "Number of cases or observations in the data file. Caution in using optional checksums is recommended. Conflict between checksums and the items being counted can cause problems with warning flags during processing. If using checksum to capture information for internal processing purposes, the use of automatically generated check sums is strongly urged."
            },
            "OverallRecordCount": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "Overall record count in the data file. Caution in using optional checksums is recommended. Conflict between checksums and the items being counted can cause problems with warning flags during processing. If using checksum to capture information for internal processing purposes, the use of automatically generated check sums is strongly urged."
            }
          }
        }
      ]
    },
    "GrossRecordStructureType": {
      "description": "The gross or macro level structures of the record structure including the link to the LogicalRecord and information on the number and ordering of each Physical Segment of the LogicalRecord as stored in the data file. Provides an attribute stating the number of physical segments with a default value of \u00221\u0022.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "LogicalRecordReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/LogicalRecordType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Reference to the LogicalRecord that describes the record type and intellectual content of the record within the physical data file."
            },
            "PhysicalRecordSegment": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/PhysicalRecordSegmentType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A description of each physical storage segment required to completely cover the logical record. A logical record may be stored in one or more segments housed hierarchically in a single file or in separate data files. All logical records have at least one segment."
            },
            "NumberOfPhysicalSegments": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "Number of physical records segments each logical record (case) is divided into. Express as an integer. Caution in using checksums is recommended. Conflict between checksums and the items being counted can cause problems with warning flags during processing. If using checksum to capture information for internal processing purposes, the use of automatically generated check sums is strongly urged."
            }
          }
        }
      ]
    },
    "HistoricalDateType": {
      "type": "object",
      "properties": {
        "NonISODate": {
          "$ref": "#/$defs/string",
          "description": "This is the date expressed in a non-ISO compliant structure. Primarily used to retain legacy content or to express non-Gregorian calender dates."
        },
        "HistoricalDateFormat": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Indicate the structure of the date provided in NonISODate. For example if the NonISODate contained 4/1/2000 the Historical Date Format would be mm/dd/yyyy. The use of a controlled vocabulary is strongly recommended to support interoperability."
        },
        "Calendar": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Specifies the type of calendar used (e.g., Gregorian, Julian, Jewish)."
        }
      },
      "description": "Used to preserve an historical date, formatted in a non-ISO fashion."
    },
    "IdentifiableType": {
      "type": "object",
      "properties": {
        "URN": {
          "$ref": "#/$defs/string",
          "pattern": "[Uu][Rr][Nn]:[Dd][Dd][Ii]:[a-zA-Z0-9\\-]{1,63}(\\.[a-zA-Z0-9\\-]{1,63})*:[A-Za-z0-9\\*@$\\-_]\u002B(\\.[A-Za-z0-9\\*@$\\-_]\u002B)?:[0-9]\u002B(\\.[0-9]\u002B)*",
          "description": "The URN of the entity matching the DDI URN pattern associated with the value of the attribute typeOfIdentifier (Canonical or Deprecated)."
        },
        "Agency": {
          "$ref": "#/$defs/string",
          "pattern": "[a-zA-Z0-9\\-]{1,63}(\\.[a-zA-Z0-9\\-]{1,63})*",
          "minLength": 1,
          "maxLength": 253,
          "description": "This is the registered agency code with optional sub-agencies separated by dots."
        },
        "ID": {
          "$ref": "#/$defs/string",
          "pattern": "[A-Za-z0-9\\*@$\\-_]\u002B(\\.[A-Za-z0-9\\*@$\\-_]\u002B)?",
          "description": "The ID of the object. This must conform to the allowed structure of the DDI Identifier and must be unique within the declared scope of uniqueness (Agency or Maintainable)."
        },
        "Version": {
          "$ref": "#/$defs/string",
          "pattern": "[0-9]\u002B(\\.[0-9]\u002B)*",
          "description": "The version number of the object. For the identifiable object this is the version number of its parent versionable at the point of creation or alteration of the non-administrative metadata of the identifiable. Versionable and Maintainable items increment their version number whenever the non-administrative metadata contained by the object changes."
        },
        "UserID": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/UserIDType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Allows for the specification of identifiers other than the specified DDI identification of the object. This may be a legacy ID from DDI-C, a system specific ID such as for a database or registry, or a non-DDI unique identifier. As the identifier is specific to a system the system must be identified with the UserID structure."
        },
        "UserAttributePair": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/StandardKeyValuePairType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "A system specific user defined property of the object expressed as a key/value pair. As this is specific to an individual system the use of controlled vocabularies for the key is strongly recommended."
        }
      },
      "required": [
        "URN",
        "Agency",
        "ID",
        "Version"
      ],
      "description": "Adds the attribute identifying this as an identifiable object as well as the MaintainableObject. All identifiable objects should provide their contextual information, the identity of their maintainable parent. The deprecated form of the URN contains all the information to identify and object and its context. A Canonical URN scoped to the Maintainable contains the ID of the Maintainable as part of its structure. To provide full contextual information use the MaintainableObject structure. The use of the Canonical URN scoped to the agency or the identification sequence alone requires the content of the MaintainableObject to provide full contextual information. All content of Identifiable is considered to be administrative metadata. Note that changes to the administrative metadata does not drive a change in the version of the parent objects. See DDI 3.2 Technical Documentation: Part I for further details."
    },
    "IdentificationPortionType": {
      "type": "object",
      "properties": {
        "GeographicLevelReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/GeographicLevelType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Reference to the Geographic Level to which this identification segment refers."
        },
        "StartPosition": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "The start position of the first character expressed as an integer."
        },
        "Length": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "The length of the segment expressed as an integer."
        }
      },
      "description": "Provides structural information for parsing the identification code structure of the Authorized Source into its separate parts."
    },
    "IdentifierParsingInformationType": {
      "type": "object",
      "properties": {
        "ParentIdentificationPortion": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/IdentificationPortionType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Identifies the parent portions of the code string as individual segments. Repeat for each parental segment."
        },
        "UniqueIdentificationPortion": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/IdentificationPortionType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Identifies the unique portion of the code string as a segment."
        },
        "ArrayBase": {
          "$ref": "#/$defs/int",
          "description": "The array base is the value of the designation for the first item in an array and is generally set to either 0 or 1. Unix based systems and most current programming systems use an array base of 0. Traditional codebooks normally set the array base at 1, for example the first data item in a fixed format ASCII file record begins at character 1."
        }
      },
      "description": "Provides structural information for parsing the identification code structure of the Authorized Source into its separate parts."
    },
    "IfThenElseTextType": {
      "type": "object",
      "properties": {
        "IfCondition": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CommandCodeType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The condition which must be met to trigger the Then clause, expressed as a CommandCode. The condition is an expression in the programming language used in the instrument."
        },
        "ThenResult": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ConditionalResultType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The conditional response which should be triggered if the associated condition is met."
        },
        "ElseIfText": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/ElseIfTextType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Use for multiple branching from a single point in the flow logic represented by the flow logic If, Then, ElseIf, Then, etc."
        },
        "ElseResult": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ConditionalResultType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The conditional response which should be triggered if the associated condition is not met."
        }
      },
      "description": "Describes an if-then-else decision type for conditional text. IF the stated condition is met, the THEN clause is triggered, otherwise the ELSE clause is triggered. Contains an IfCondition (the condition that must be met to trigger the Then clause), a ThenResult (indicating the ConditionalResult to invoke if the condition is met), an ElseResult (indicating the construct to invoke if the condition is not met), and an ElseIfText structure allowing the expression of multiple conditions to invoke multiple branching."
    },
    "ImageAreaType": {
      "type": "object",
      "properties": {
        "Shape": {
          "$ref": "#/$defs/string",
          "enum": [
            "Rectangle",
            "Circle",
            "Polygon"
          ],
          "description": "A fixed set of valid responses includes Rectangle, Circle, and Polygon."
        },
        "Coordinates": {
          "$ref": "#/$defs/string",
          "description": "A comma-delimited list of x,y coordinates, listed as a set of adjacent points for rectangles and polygons, and as a center-point and a radius for circles (x,y,r)."
        }
      },
      "description": "Defines the shape and area of an image used as part of a location representation. The shape is defined as a Rectangle, Circle, or Polygon and Coordinates provides the information required to define it."
    },
    "ImageType": {
      "type": "object",
      "properties": {
        "ImageLocation": {
          "$ref": "#/$defs/anyURI",
          "description": "A reference to the location of the image using a URI."
        },
        "TypeOfImage": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Brief description of the image type. Supports the use of an external controlled vocabulary."
        },
        "Dpi": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Provides the resolution of the image in dots per inch to assist in selecting the appropriate image for various uses."
        },
        "LanguageOfImage": {
          "$ref": "#/$defs/language",
          "description": "Language of image."
        }
      },
      "description": "A reference to an image, with a description of its properties and type."
    },
    "InParameterType": {
      "description": "A parameter that may accept content from outside its parent element. In addition to standard parameter content may provide the instructions for limiting the allowable array index.",
      "allOf": [
        {
          "$ref": "#/$defs/ParameterType"
        },
        {
          "type": "object",
          "properties": {
            "LimitArrayIndex": {
              "$ref": "#/$defs/string",
              "description": "When the InParameter represents an array of items, this attribute specifies the index identification of the items within the zero-based array which should be treated as input parameters. If not specified, the full array is treated as the input parameter."
            }
          }
        }
      ]
    },
    "IncludedCodeType": {
      "type": "object",
      "properties": {
        "CodeReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CodeType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Reference to the Code within the CodeList used by the representation. Repeat for including multiple values."
        },
        "Range": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/RangeType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Use when multiple values are included. This uses the unique Value provided for the Code as a means of identification. Provides the range of Values used by the representation. Repeat for non-contiguous values."
        }
      },
      "description": "Specifies the codes to include in the representation by providing the references to the included Codes or a range of Values from the Code."
    },
    "IncludedGeographicLocationCodesType": {
      "type": "object",
      "properties": {
        "AuthorizedSourceReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/AuthorizedSourceType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A reference to the Authorized Source of the value used by this representation. A GeographicLocation may have more than one Authorized Source included in the listing."
        },
        "GeographicLocationReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "GeographicLocation"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to the GeographicLocation used by this representation."
        },
        "ExcludedLocationValueReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/LocationValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "A reference to a location value that is excluded, not used by, this representation. May be repeated to exclude multiple location values."
        }
      },
      "description": "Specifies the Geographic Location Codes included in the representation by providing a reference to the authorized source of the code, the GeographicLocation used, and any excluded values."
    },
    "IncludedGeographicStructureCodesType": {
      "type": "object",
      "properties": {
        "AuthorizedSourceReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/AuthorizedSourceType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A reference to the Authorized Source of the value used by this representation. A GeographicStructure may have more than one Authorized Source included in the listing."
        },
        "GeographicStructureReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "GeographicStructure"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to the GeographicStructure used by this representation."
        },
        "ExcludedGeographicLevelReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/GeographicLevelType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "A reference to a Structure Level that is excluded, not used by, this representation. May be repeated to exclude multiple Structure values."
        }
      },
      "description": "Specifies the Geographic Structure Codes included in the representation by providing a reference to the authorized source of the code, the GeographicStructure used, and any excluded levels."
    },
    "IndividualIdentificationType": {
      "type": "object",
      "properties": {
        "IndividualName": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/IndividualNameType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "The name or names by which the individual is known. The legal or formal name of the individual should have the isFormal attribute set to true. The preferred name should be noted with the isPreferred attribute."
        },
        "DDIMaintenanceAgencyID": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/DDIMaintenanceAgencyIDType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Contains the official DDI ID of the maintenance agency as registered with the DDI registry by the parent organization or individual. A single organization or individual may have one or more DDI Maintenance Agency IDs registered within the DDI registry (i.e., an organization may have a DDI Maintenance Agency ID for each project managed by the organization) The structure of this string is described by Part I of the Technical Documentation and the content is registered within the DDI registry as a unique identifier."
        },
        "ResearcherID": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/ResearcherIDType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "This is a formally registered unique identifier within a specific system such as a scholars directory. It is used to disambiguate individuals of similar names."
        },
        "IndividualImage": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/PrivateImageType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Image of the individual with date and privacy information."
        }
      },
      "description": "Identifying information about the individual including name, DDI Maintenance Agency IDs, Researcher IDs, an image and an effective period for the information."
    },
    "IndividualLanguageType": {
      "type": "object",
      "properties": {
        "Language": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Specifies the language (and optionally the locale) of the individual. The language identifier is defined by IETF RFC 4646 or its successor. The base sub-tag is the ISO 639 2 or 3 digit language code."
        },
        "Read": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Indicates reading knowledge of the language specified. Supports an optional controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (LanguageProficiency) to support this element at http://www.ddialliance.org/controlled-vocabularies."
        },
        "Write": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Indicates writing knowledge of the language specified. Supports an optional controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (LanguageProficiency) to support this element at http://www.ddialliance.org/controlled-vocabularies."
        },
        "Speak": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Indicates speaking knowledge of the language specified. Supports an optional controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (LanguageProficiency) to support this element at http://www.ddialliance.org/controlled-vocabularies."
        },
        "EffectivePeriod": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Clarifies when the identification information is accurate."
        }
      },
      "description": "Use to specify the languages known by the individual in terms of their ability to  speak, read, and write the language. May be repeated to cover multiple languages. This information is useful for foreign contacts in determining the language of communication to use with this individual."
    },
    "IndividualNameType": {
      "type": "object",
      "properties": {
        "Prefix": {
          "$ref": "#/$defs/string",
          "description": "Title that precedes the name of the individual, such as Ms., or Dr."
        },
        "FirstGiven": {
          "$ref": "#/$defs/string",
          "description": "First (given) name of the individual"
        },
        "Middle": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/string"
          },
          "minItems": 0,
          "description": "Middle name or initial of the individual"
        },
        "LastFamily": {
          "$ref": "#/$defs/string",
          "description": "Last (family) name /surname of the individual"
        },
        "Suffix": {
          "$ref": "#/$defs/string",
          "description": "Title that follows the name of the individual, such as Esq."
        },
        "FullName": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "This provides a means of providing a full name as a single object for display or print such as identification badges etc. For example a person with the name of William Grace for official use may prefer a display name of Bill Grace on a name tag or other informal publication."
        },
        "EffectivePeriod": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Clarifies when the name information is accurate."
        },
        "Abbreviation": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "An abbreviation or acronym for the name. This It is assumed that if only a single language is provided that it may be used in any of the other languages within which the name itself is expressed."
        },
        "TypeOfIndividualName": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The type of individual name provided. the use of a controlled vocabulary is strongly recommended. At minimum his should include, e.g. PreviousFormalName, Nickname (or CommonName), Other."
        },
        "Sex": {
          "$ref": "#/$defs/string",
          "enum": [
            "M",
            "F",
            "N"
          ],
          "description": "Sex allows for the specification of male, female or neutral. The purpose of providing this information is to assist others in the appropriate use of pronouns when addressing the individual. Note that many countries/languages may offer a neutral pronoun form."
        },
        "IsPreferred": {
          "$ref": "#/$defs/boolean",
          "description": "If more than one name for the object is provided, use the isPreferred attribute to indicate which is the preferred name content. All other names should be set to isPreferred=\u0022false\u0022."
        },
        "Context": {
          "$ref": "#/$defs/string",
          "description": "A name may be specific to a particular context, i.e. common usage, business, social, etc.. Identify the context related to the specified name."
        },
        "IsFormal": {
          "$ref": "#/$defs/boolean",
          "description": "The legal or formal name of the individual should have the isFormal attribute set to true. To avoid confusion only one individual name should have the isFormal attribute set to true. Use the TypeOfIndividualName to further differentiate the type and applied usage when multiple names are provided."
        }
      },
      "description": "The name of an individual broken out into its component parts of prefix, first/given name, middle name, last/family/surname, and suffix. The preferred compilation of the name parts may also be provided. The legal or formal name of the individual should have the isFormal attribute set to true. The preferred name should be noted with the isPreferred attribute. The attribute sex provides information to assist in the appropriate use of pronouns."
    },
    "InstantMessagingType": {
      "type": "object",
      "properties": {
        "IMIdentification": {
          "$ref": "#/$defs/string",
          "description": "Indicates Instant messaging account identification"
        },
        "TypeOfInstantMessaging": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Indicates type of Instant messaging account used. Supports the use of a controlled vocabulary."
        },
        "EffectivePeriod": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Clarifies when the identification information is accurate."
        },
        "Privacy": {
          "$ref": "#/$defs/string",
          "enum": [
            "public",
            "restricted",
            "private"
          ],
          "description": "A basic set of privacy codes for the parent element. These may be stricter than the general access restrictions for the overall metadata. If available codes are insufficient this may also contain any string."
        },
        "IsPreferred": {
          "$ref": "#/$defs/boolean",
          "description": "Set to \u0022true\u0022 if this is the preferred address for instant messaging."
        }
      },
      "description": "Indicates type of Instant messaging account identification"
    },
    "InstructionAttachmentLocationType": {
      "type": "object",
      "properties": {
        "AttachmentLocation": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/AttachmentLocationType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Allows attachment of an instruction to a specific item in a code or category scheme. For example, attach a Definition to a specific Code/Category the value."
        },
        "GridAttachment": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/GridAttachmentType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Identifies the cell or cells in a grid to which the instruction is attached by a reference to a specific cell coordinate in a grid or by identifying a range of values along a dimension."
        },
        "AttachToLabel": {
          "$ref": "#/$defs/boolean",
          "description": "Attach the instruction to the Question Label."
        },
        "AttachToQuestionText": {
          "$ref": "#/$defs/boolean",
          "description": "Attach the instruction to the QuestionText."
        }
      },
      "description": "Allows attachment of an instruction to a specific item in a question structure. For example, to a Label, QuestionText, ResponseDomain, Response domain value, or grid cell."
    },
    "InternationalCodeValueType": {
      "type": "object",
      "properties": {
        "MultilingualStringValue": {
          "$ref": "#/$defs/langString",
          "description": "The language string or code term as it appears in the controlled vocabulary"
        },
        "ControlledVocabularyID": {
          "$ref": "#/$defs/string",
          "description": "The ID of the code controlled vocabulary that the content was taken from."
        },
        "ControlledVocabularyName": {
          "$ref": "#/$defs/string",
          "description": "The name of the controlledVocabulary."
        },
        "ControlledVocabularyAgencyName": {
          "$ref": "#/$defs/string",
          "description": "The name of the agency maintaining the controlledVocabulary."
        },
        "ControlledVocabularyVersionID": {
          "$ref": "#/$defs/string",
          "description": "The version number of the controlledVocabulary."
        },
        "OtherValue": {
          "$ref": "#/$defs/string",
          "description": "If the value of the string is \u0022Other\u0022 or the equivalent from the controlledVocabulary, this attribute can provide a more specific value not found in the codelist."
        },
        "ControlledVocabularyURN": {
          "$ref": "#/$defs/string",
          "description": "The URN of the codelist."
        },
        "ControlledVocabularySchemeURN": {
          "$ref": "#/$defs/string",
          "description": "If maintained within a scheme, the URN of the scheme containing the controlledVocabulary."
        }
      },
      "description": "Allows for string content which may be taken from an externally maintained controlled vocabulary. If the content is from a controlled vocabulary provide the code value, as well as a reference to the code list from which the value is taken. This differs from a CodeValue only by the provision of a language-location specification. DDI uses the International CodeValue in cases where controlled vocabularies are assumed to be highly language specific, such as nationally maintained subject headings, thesauri, or keywords derived from the content of documents. The ability to identify language is especially important when supporting searches by external language-specific search engines. Provide as many of the identifying attributes as needed to adequately identify the controlled vocabulary."
    },
    "InternationalIdentifierType": {
      "type": "object",
      "properties": {
        "IdentifierContent": {
          "$ref": "#/$defs/string",
          "description": "An identifier as it should be listed for identification purposes."
        },
        "ManagingAgency": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The identification of the Agency which assigns and manages the identifier, i.e., ISBN, ISSN, DOI, etc."
        }
      },
      "description": "An identifier whose scope of uniqueness is broader than the local archive. Common forms of an international identifier are ISBN, ISSN, DOI or similar designator. Provides both the value of the identifier and the agency who manages it."
    },
    "ItemMapType": {
      "description": "Maps a Source and one or more Target items of the same type within the Source and Target Schemes identified.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "SourceItemReference": {
              "$ref": "#/$defs/Reference",
              "description": "A reference to the source object in the source scheme already identified. TypeOfObject dependent on object of comparison."
            },
            "TargetItemReference": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Reference"
              },
              "minItems": 0,
              "description": "A reference the target object or objects in the target scheme already identified. TypeOfObject dependent on object of comparison. Note that if multiple target items are identified the correspondence between the source and ALL target items must be identical."
            },
            "Correspondence": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CorrespondenceType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describe the level of similarity and difference between the Source and the Target objects."
            },
            "RelatedMapReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ItemMapType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Identifies related maps for example an ItemMap of two questions may point to the CodeMap defining the comparison of the two response domains."
            },
            "Alias": {
              "$ref": "#/$defs/string",
              "description": "Allows for an alias to be assigned to the correspondence between two items, so that it can be referred to with a single name, that would include both related items."
            }
          }
        }
      ]
    },
    "ItemSetType": {
      "type": "object",
      "properties": {
        "ItemValue": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/ItemValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Each value in the data set linked to it\u0027s variable and record identification."
        }
      },
      "description": "Storage format for random order item variables. Each ItemValue references it\u0027s defining variable, it\u0027s record identifier, and the it\u0027s value."
    },
    "ItemType": {
      "type": "object",
      "properties": {
        "Citation": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CitationType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A citation for the item. May additionally be rendered in native qualified Dublin Core (dc and dcterms)."
        },
        "LocationInArchive": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Describes the location of the item within the archive."
        },
        "CallNumber": {
          "$ref": "#/$defs/string",
          "description": "The name, code, or number used by the archive to uniquely identify the item within the archive."
        },
        "URI": {
          "$ref": "#/$defs/anyURI",
          "description": "The URL or URN for the item."
        },
        "ItemFormat": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Describes the item\u0027s format."
        },
        "Media": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Describes the medium, or media, for the item."
        },
        "StudyClass": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/StudyClassType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "An archive specific classification for the item. This may be a topical classification, a classification of intended processing levels, or information on the processing status."
        },
        "Access": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/AccessType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Access restriction information applying to the item. If none are specified the default restrictions of the archive or parent collection or item apply."
        },
        "OriginalArchiveOrganizationReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Organization"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "The original archive for the described item, expressed as a reference to an organization listed in the organization scheme."
        },
        "AvailabilityStatus": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A statement of availability for the object. This is a positive statement (as opposed to access restrictions) which may be used for publication or other purposes."
        },
        "DataFileQuantity": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "The number of data files in the described item, expressed as an integer. This is a check sum and should be updated as the contents of the collection changes. The use of this element is best restricted to completed collections where change in the number of objects is not dynamic."
        },
        "CollectionCompleteness": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Describes the completeness of the collection for the item and its related data files and sub-items. Note coverage gaps as well as unique content . This statement may be used for publication or other purposes."
        },
        "Item": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/ItemType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Allows for the nesting of Item descriptions with a item."
        }
      },
      "description": "Describes individual items held or distributed by the archive in connection with a study, group of studies, or resource packages. What constitutes an item is determined by the archive. Provides identification information on the item within the context of the archive including citation, a statement on its location, call number (internal identifier), URI, format, media type, and source. The item is classified by a study class designation, information on access restrictions, and availability status. Content information on the number of data files associated with the item, the completeness of the collection of objects represented by this item as well as descriptions of nested items are provided."
    },
    "ItemValueType": {
      "type": "object",
      "properties": {
        "VariableReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Variable"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to the variable describing the item."
        },
        "RecordReference": {
          "$ref": "#/$defs/string",
          "description": "The value of the record identifier or key. This is the value found in the item linked to the variable identified by the DataSet in the IdentifyingVariableReference."
        },
        "Value": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/ValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "The value of the item for the specified variable and record."
        }
      },
      "description": "Each value in the data set linked to it\u0027s variable and record identification."
    },
    "KindOfDataType": {
      "description": "Describes, with a string or a term from a controlled vocabulary, the kind of data documented in the logical product(s) of a study unit. Examples include survey data, census/enumeration data, administrative data, measurement data, assessment data, demographic data, voting data, etc.",
      "allOf": [
        {
          "$ref": "#/$defs/CodeValueType"
        },
        {
          "type": "object",
          "properties": {
            "Type": {
              "$ref": "#/$defs/string",
              "enum": [
                "Qualitative",
                "Quantitative",
                "Mixed"
              ],
              "description": "Provides a description of the types of data described by the KindOfData element."
            }
          }
        }
      ]
    },
    "LanguageAbilitySoughtType": {
      "type": "object",
      "properties": {
        "MinimumLanguageAbility": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/IndividualLanguageType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Identifies the language and the individuals ability to read, write, and speak the designated language using a controlled vocabulary."
        },
        "PreferredLanguageAbility": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/IndividualLanguageType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Identifies the language and the individuals ability to read, write, and speak the designated language using a controlled vocabulary."
        }
      },
      "description": "Describes both minimum and preferred language abilities sought for the translation work as a set of source and target language requirements."
    },
    "LevelContextType": {
      "type": "object",
      "properties": {
        "LevelNumber": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "The number associated with the Level Context. Levels are numbered consecutively starting with Level 1 at the highest (most aggregated) Level."
        },
        "ClassificationLevelReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "ClassificationLevel"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "The structure of a Statistical Classification is defined by its Levels (classification level). Include here links to the relevant Level. Allows for in-line entry of a Classification Level."
        },
        "ClassificationItemReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ClassificationItem"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "A Statistical Classification is composed of categories structured in one or more Levels. Each category is represented by a Classification Item, which defines the content and the borders of the category. Allows for in-line entry of a Classification Item."
        }
      },
      "description": "Level Context provides the depth of a Level within a Statistical Classification together with its membership. Both depth and membership can be specified per Statistical Classification."
    },
    "LevelReferenceType": {
      "type": "object",
      "properties": {
        "GeographicLevelReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/GeographicLevelType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Reference to the Geographic Level as described in the GeographicStructure. TypeOfObject should be set to GeographicLevel."
        },
        "GeographicLevelName": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Name of a geographic level."
        }
      },
      "description": "Contains a Reference to a GeographicLevel if available and a name for the level. Only one reference can be provided but multiple name provided."
    },
    "LevelType": {
      "type": "object",
      "properties": {
        "LevelName": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Name of a level in a code scheme. This should be short and explicit, such as Major Industrial Groups (2 digit SIC Codes) or NUTS 1."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the code Level."
        },
        "CategoryRelationship": {
          "$ref": "#/$defs/string",
          "enum": [
            "Nominal",
            "Ordinal",
            "Interval",
            "Ratio",
            "Continuous"
          ],
          "description": "Describes the relationships among categories at that respective level. Possible values are either Nominal, Ordinal, or Interval. Note that different levels may have different types of relationships within the same hierarchy. For example, Level 1 items may be ordinal and Level 2 (the children of Level 1 items) may be nominal."
        },
        "IntervalIncrement": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/BasicIncrementType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Identifies the interval between each value of the codes at this level. Used only for codes with interval relationship."
        },
        "LevelNumber": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Designated identifier for the level; generally increases as the level of indention for nesting increases."
        }
      },
      "required": [
        "LevelNumber"
      ],
      "description": "Used to describe the levels of the code list hierarchy. The level describes the nesting structure of a hierarchical coding structure. A level could have data attached to it (summary of its children) or no data attached to it (the equivalent of creating a category group in 2.0 and earlier versions Note that the attribute levelNumber is used for referencing specific codes to their level identifier. Although Code Lists can be physically nested, the use of a Level description and the level number on a specific code is needed to specify subsets of the CodeList for use in CodeRepresentations by level specification. Provides a name, description and level number. Specifies the relationship between the categories at that level and interval value if the relationship has the value of Interval."
    },
    "LifecycleEventType": {
      "description": "Documents an event in the life cycle of a study or group of studies. A life cycle event can be any event which is judged to be significant enough to document by the agency maintaining the documentation for a particular set of data. The element EventType indicates the type of event, using a typology meaningful to the documenter.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A label for the LifecycleEvent."
            },
            "EventType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates the type of LifecycleEvent, using a typology meaningful to the documenter. Supports the use of a controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (LifecycleEventType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "Date": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DateType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The date or date range of the LifecycleEvent."
            },
            "AgencyOrganizationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Individual",
                          "Organization"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to an organization or individual, defined in the organization scheme, responsible for the life cycle event."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the event such as what the event included, its importance, or other significant information."
            },
            "Relationship": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/RelationshipType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Allows linking a lifecycle event to one or more sections of metadata. If no relationship is noted the lifecycle event relates to its full parent StudyUnit, Group, or Resource Package."
            }
          }
        }
      ]
    },
    "LifecycleInformationType": {
      "type": "object",
      "properties": {
        "LifecycleEvent": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/LifecycleEventType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Documents an event in the life cycle of a study or group of studies. A life cycle event can be any event which is judged to be significant enough to document by the agency maintaining the documentation for a particular set of data."
        }
      },
      "description": "Allows a listing of events in the life cycle of a data set or collection. Identification, date, agency, and descriptive information are provided for each event. Note that the agency that documents a lifecycle event is not necessarily the same agency as the one that performed the operation being documented as a lifecycle event."
    },
    "LimitedCodeSegmentCapturedType": {
      "type": "object",
      "properties": {
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the content and purpose of the segment used."
        },
        "ArrayBase": {
          "$ref": "#/$defs/int",
          "description": "The array base is the value of the designation for the first item in an array and is generally set to either 0 or 1. Unix based systems and most current programming systems use an array base of 0. Traditional codebooks normally set the array base at 1, for example the first data item in a fixed format ASCII file record begins at character 1."
        },
        "StartPosition": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "The start position of the first character expressed as an integer."
        },
        "Length": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "The length of the segment expressed as an integer."
        }
      },
      "description": "When the code is a concatenation this structure allows you to limit the portion of the concatenated code that this object captures. Provides an description of the segment, declares the array base used, the start position of the segment and its length."
    },
    "LineParameterType": {
      "type": "object",
      "properties": {
        "StartLine": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Number of lines from beginning of the document."
        },
        "StartOffset": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Number of characters from start of the line specified in StartLine."
        },
        "EndLine": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Number of lines from beginning of the document."
        },
        "EndOffset": {
          "$ref": "#/$defs/int",
          "description": "Number of characters from the start of the line specified in EndLine."
        }
      },
      "description": "Specification of the line and offset for the beginning and end of the segment."
    },
    "LinkingMapType": {
      "type": "object",
      "properties": {
        "LocalObjectReference_IdentifiableType": {
          "type": "object",
          "oneOf": [
            {
              "allOf": [
                {
                  "$ref": "#/$defs/AccessType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "AccessType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/ActionToMinimizeLossesType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ActionToMinimizeLossesType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/AggregationVariablesType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "AggregationVariablesType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/AttributeType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "AttributeType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/AuthorizedSourceType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "AuthorizedSourceType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CodeType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CodeType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CollectionEventType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CollectionEventType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CollectionSituationType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CollectionSituationType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CoordinateRegionType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CoordinateRegionType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/DataCollectionMethodologyType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "DataCollectionMethodologyType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/DeviationFromSampleDesignType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "DeviationFromSampleDesignType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/EmbargoType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "EmbargoType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicCoverageType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeographicCoverageType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicLevelType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeographicLevelType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GrossFileStructureType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GrossFileStructureType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GrossRecordStructureType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GrossRecordStructureType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/InParameterType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "InParameterType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/ItemMapType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ItemMapType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/LifecycleEventType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "LifecycleEventType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/LocationValueType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "LocationValueType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/LogicalRecordType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "LogicalRecordType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/MeasureDefinitionType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "MeasureDefinitionType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/ModeOfCollectionType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ModeOfCollectionType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ParameterType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/PhysicalRecordSegmentType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "PhysicalRecordSegmentType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/RecordRelationshipType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "RecordRelationshipType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/SamplingProcedureType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "SamplingProcedureType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/StandardWeightType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "StandardWeightType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/TemporalCoverageType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "TemporalCoverageType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/TimeMethodType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "TimeMethodType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/TopicalCoverageType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "TopicalCoverageType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            }
          ],
          "unevaluatedProperties": false,
          "description": "A reference to the local object that is to be related to a depository object. If the relationship action is set to delete then no local object needs to be designated."
        },
        "LocalObjectReference_Versionable": {
          "$ref": "#/$defs/Reference",
          "description": "A reference to the local object that is to be related to a depository object. If the relationship action is set to delete then no local object needs to be designated."
        },
        "DepositoryObjectReference_IdentifiableType": {
          "type": "object",
          "oneOf": [
            {
              "allOf": [
                {
                  "$ref": "#/$defs/AccessType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "AccessType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/ActionToMinimizeLossesType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ActionToMinimizeLossesType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/AggregationVariablesType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "AggregationVariablesType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/AttributeType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "AttributeType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/AuthorizedSourceType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "AuthorizedSourceType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CodeType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CodeType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CollectionEventType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CollectionEventType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CollectionSituationType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CollectionSituationType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CoordinateRegionType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CoordinateRegionType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/DataCollectionMethodologyType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "DataCollectionMethodologyType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/DeviationFromSampleDesignType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "DeviationFromSampleDesignType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/EmbargoType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "EmbargoType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicCoverageType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeographicCoverageType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicLevelType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeographicLevelType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GrossFileStructureType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GrossFileStructureType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GrossRecordStructureType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GrossRecordStructureType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/InParameterType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "InParameterType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/ItemMapType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ItemMapType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/LifecycleEventType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "LifecycleEventType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/LocationValueType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "LocationValueType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/LogicalRecordType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "LogicalRecordType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/MeasureDefinitionType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "MeasureDefinitionType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/ModeOfCollectionType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ModeOfCollectionType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ParameterType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/PhysicalRecordSegmentType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "PhysicalRecordSegmentType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/RecordRelationshipType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "RecordRelationshipType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/SamplingProcedureType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "SamplingProcedureType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/StandardWeightType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "StandardWeightType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/TemporalCoverageType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "TemporalCoverageType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/TimeMethodType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "TimeMethodType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/TopicalCoverageType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "TopicalCoverageType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            }
          ],
          "unevaluatedProperties": false,
          "description": "A reference to the deposited object."
        },
        "DepositoryObjectReference_Versionable": {
          "$ref": "#/$defs/Reference",
          "description": "A reference to the deposited object."
        },
        "RelationshipAction": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Provides a structured means of stating if the local object overrides (replaces) the depository object, adds information to the deposited object, deletes the content of the depository object without replacing it. or restricts access the deposited object by attaching an embargo or access restriction to it. Supports the use of a controlled vocabulary."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the link such as the reason for adding or changing local content."
        }
      },
      "description": "Provides a link from a local object to a deposited object via reference and designates if the added material should Override, act as AddedContent, or DeleteContent in the original deposited material. A description of the link or reason for new material may be provided."
    },
    "LiteralTextType": {
      "description": "Literal (static) text to be used in the instrument using the StructuredString structure plus an attribute allowing for the specification of white space to be preserved.",
      "allOf": [
        {
          "$ref": "#/$defs/TextContentType"
        },
        {
          "type": "object",
          "properties": {
            "Text": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "The value of the static text string."
            }
          }
        }
      ]
    },
    "LocalAddedContentType": {
      "type": "object",
      "properties": {
        "ContentLinkingMap": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ContentLinkingMapType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Contains a stack of links from the LocalAddedContent to the Depository content and provides instructions regarding the relationship between the local added content and the deposited content."
        },
        "LocalStudyUnitContentReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "StudyUnit"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Local Content using the StudyUnit structure."
        },
        "LocalGroupContentReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Group"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Local Content using the Group structure."
        },
        "LocalResourcePackageContentReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ResourcePackage"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Local Content using the ResourcePackage structure."
        }
      },
      "description": "Allows a depository to provide locally created value added material and processing information in the appropriate packaging structure and to designate the relationship of added material to the original by means of a content map. The content maps indicates if the added material should Override, act as AddedContent, or DeleteContent in the original deposited material. The material is expressed in the structure of either a StudyUnit, Group, or ResourcePackage within a local content structure."
    },
    "LocationDomainType": {
      "description": "A response domain capturing a location response (mark on an image, recording, or object) for a question. Includes standard response domain elements; OutParameter, designation of response cardinality, and a declaration of an offset date for the data content.",
      "allOf": [
        {
          "$ref": "#/$defs/LocationRepresentationBaseType"
        },
        {
          "type": "object",
          "properties": {
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the domain."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the domain."
            },
            "OutParameter": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows for the response to be bound to one of the QuestionItem\u0027s OutParameters, so the collected information can be used elsewhere, for example as inputs to subsequent questions in an Instrument or to a GenerationInstruction. If multiple responses are possible, this would represent and ordered array of the responses."
            },
            "ResponseCardinality": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ResponseCardinalityType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows the designation of the minimum and maximum number of responses allowed for this response domain."
            },
            "ContentDateOffset": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ContentDateOffsetType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the difference between the date applied to the data as a whole and this specific item such as previous year\u0027s income or residence 5 years ago."
            }
          }
        }
      ]
    },
    "LocationRepresentationBaseType": {
      "description": "Means of describing the Location of an action and the action itself within a repesentation so that they can be used by questions as a response domain. In addition to the basic objects of the representation, the structure briefly describes the object type upon which the action is to take place and the action to take (where an how to mark the object).",
      "allOf": [
        {
          "$ref": "#/$defs/RepresentationType"
        },
        {
          "type": "object",
          "properties": {
            "Object": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The type of object on which the action takes place such as an image, audio tape, etc. Allows for the use of a controlled vocabulary."
            },
            "Action": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ActionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes the region of an image, recording, or text where an action where a specified action is performed and the type of action taken (i.e., Mark an \u0022X\u0022 where the actor should be standing on the picture of the stage.)."
            }
          }
        }
      ]
    },
    "LocationValueBundleType": {
      "type": "object",
      "properties": {
        "LocationValueReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/LocationValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Reference to the LocationValue of an included area."
        },
        "GeographicTime": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The time period for which the LocationValues listed are a valid set."
        }
      },
      "description": "A stack of LocationValueReferences to each of the locations bundled together for a specific purpose Includes a GeographicTime to allow for repetition for change over time."
    },
    "LocationValueType": {
      "description": "A location of the specified geographic level providing information on its name, identification codes, temporal and spatial coverage as expressed by bounding and excluding polygon descriptions or references.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "LocationValueName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the Location."
            },
            "GeographicLocationIdentifier": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/GeographicLocationIdentifierType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A unique identifier for the geographic location. Repeat for multiple identifiers from other authorized sources."
            },
            "DefiningCharacteristic": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DefiningCharacteristicType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Use to attach one or more characteristics which define the area. These are often useful in terms of selection. For example a U.S. Block may be classified as Urban, Rural, or Mixed. The defining characteristic supports the use of a controlled vocabulary and may provide a time period for which the characteristic is valid."
            },
            "ComponentParts": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/LocationValueBundleType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A stack of LocationValueReferences to each of the locations of the specified PrimaryComponentLevel type that make up the Component Area. Includes a GeographicTime to allow for repetition for change over time. Repeat this object for different GeographicTime."
            },
            "ImmediateParentLocation": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/LocationValueBundleType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides a reference to a location or locations that define the immediate parent of described LocationValue within the specified Geographic Structure Hierarchy as well as the GeographicTime of the relationship. Contains multiple LocationValueReferences for layered hierarchies, providing a pointer to the immediate parent in each hierarchy in the layers. Example 1 - Single Hierarchy: Country-State, where the ImmediateParentLocationValue of the State would reference the Country LocationValue. Example 2 - Layered Hierarchy: Country-State-County-Place-Tract (portion) (the portion of a Tract within a Place) Hierarchy 1: Country-State-County-Tract, ImmediateParentLocationValue County; Hierarchy 2: Country-State-Place-Tract (portion) ImmediateParentLocationValue Place. Repeat object to provide information on change in ImmediateParent over time."
            },
            "GeographicTime": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DateType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The time period for which the description (names and codes) are valid. Use a date range when start and end periods are known (or the location description is still valid). If the range is unknown indicate a single date for which you know the description is valid. This will allow others to relate it to a fuller date range if external information become available."
            },
            "GeographicBoundary": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/GeographicBoundaryType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A choice of a BoundingBox and/or a set of BoundingPolygons and ExcludingPolygons that describe an area for a specific time period. Repeat the GeographicBoundary for changes in the geographic footprint of the LocationValue or when providing references to BoundingPolygons from different sources."
            },
            "SupersedesLocationValue": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/LocationValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides a reference to the LocationValue or Values that the current LocationValue supersedes fully. For example, if the LocationValue was the State of North Dakota as defined in 1890 it would supersede the LocationValue for Dakota Territory (1861-1889) as a description of \u0022part\u0022 of that Territory."
            },
            "SupersedesPartialLocationValue": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/LocationValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides a reference to the LocationValue or Values that the current LocationValue supersedes partially. For example, if the LocationValue was the State of North Dakota as defined in 1890 it would supersede the LocationValue for Dakota Territory (1861-1889) as a description of \u0022part\u0022 of that Territory."
            },
            "PrecedesLocationValue": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/LocationValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides a reference to the LocationValue or Values that the current LocationValue immediately precedes fully. For example, if the LocationValue was the Dakota Territory (1861-1889) preceded the State of North Dakota and the State of South Dakota as defined in 1890. The Dakota Territory provided \u0022part\u0022 of its area in the creation of each new LocationValue."
            },
            "PrecedesPartialLocationValue": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/LocationValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides a reference to the LocationValue or Values that the current LocationValue immediately precedes partially. For example, if the LocationValue was the Dakota Territory (1861-1889) preceded the State of North Dakota and the State of South Dakota as defined in 1890. The Dakota Territory provided \u0022part\u0022 of its area in the creation of each new LocationValue."
            }
          }
        }
      ]
    },
    "LogicalRecordType": {
      "description": "A logical record is a description of all of the elements (variables or NCubes) related to a single case or analysis unit. Required to link a description of a physical record structure to its logical record. In addition to the standard name, label, and description, the structure identifies the variable designating its record type, describes case identification within the record type, indicates support for multiple storage segments, and defines a default set of missing values used by the record. In a data set with multiple records repeat to describe each logical record, such as a household, family, person, or event, record. A LogicalRecord is required to link a description of a physical record structure to its logical record.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "LogicalRecordName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the LogicalRecord."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the LogicalRecord."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the LogicalRecord."
            },
            "VariableValueReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/VariableValueReferenceType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A reference the variable containing the record type locator and the value being used. Files with single record types or which store records in different files may not have a record type locator. If this element is used set the attribute hasLocator to \u0022true\u0022."
            },
            "SupportForMultipleSegments": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/VariableValueReferenceType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Information concerning support for breaking the logical record into segments for storage purposes. Some files may be broken into record segments for storage but lack variables to support identification of specific segments. In this case segments are identified by their physical order within the storage file."
            },
            "CaseIdentification": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CaseIdentificationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes the information needed to identify an individual case within a record type. This may be the variable or concatenated variable used to identify a unique case of a particular record type. Often referred to as a unique key. There may be more than one means of identifying a record. For example a US Census Summary File has a LogicalRecordIdentifier that is unique to the original file within which it was published. A specific geography has a set of fields that uniquely identify it."
            },
            "VariablesInRecord": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/VariablesInRecordType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "List of all variables used in the record, either directly or as found in a defined VariableGroup; note that a variable can be used in multiple records. The variables in the logical record can be noted by inclusion or exclusion to facilitate listing. The attribute allVariablesInLogicalProduct, when set to \u0027true\u0027, includes all variables in the LogicalProduct. VariableSchemeReference can then be used to exclude individual Variables schemes or include schemes from other logical products. In the same way VariableReference can be used to exclude specific variables from the previously defined variable set or include variables not already included. The simplest LogicalProduct descriptions with a single LogicalRecord can be described using only the attribute allVariablesInLogicalProduct with a value of true."
            },
            "NCubesInRecord": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/NCubesInRecordType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "List of all NCubes used in the record, either directly or as found in a defined NCubeGroup; note that an NCube can be used in multiple records. The NCubes in the logical record can be noted by inclusion or exclusion to facilitate listing. The attribute allNCubesInLogicalProduct, when set to \u0027true\u0027, includes all NCubes in the LogicalProduct. NCubeSchemeReference can then be used to exclude individual NCubes schemes or include schemes from other logical products. In the same way NCubeReference can be used to exclude specific variables from the previously defined variable set or include variables not already included. The simplest LogicalProduct descriptions with a single LogicalRecord can be described using only the attribute allNCubesInLogicalProduct with a value of true."
            },
            "DefaultMissingValues": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DefaultMissingValuesType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the default missing value parameter for the this logical record by referencing a ManagedMissingValuesRepresentation or by stating that there is a default missing values parameter used but it is undocumented. Note that a conflicting DefaultMissingValues definition in a PhysicalInstance will override that found in the LogicalRecord."
            },
            "HasLocator": {
              "$ref": "#/$defs/boolean",
              "description": "If \u0022true\u0022 indicates that the record type has a field which identifies its record type. In logical structures with a single record type there is generally no identifier. Most multi-record files will have a variable that identifies the record type."
            },
            "VariableQuantity": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "Number of variables in the logical record. Caution in using optional checksums is recommended. Conflict between checksums and the items being counted can cause problems with warning flags during processing. If using checksum to capture information for internal processing purposes, the use of automatically generated check sums is strongly urged."
            }
          }
        }
      ]
    },
    "MeasureDefinitionType": {
      "description": "Defines the structure and type of measure captured within the cells. This may be repeated to describe multiple measure for the cells (i.e., count, percent of universe, dimensional percent, index, text, suppression flag, etc.). Includes a reference to the defining variable and an optional aggregation definition for use in defining content relying on the use of independent and dependent variables (such as the percentage of a specific dimension (like a row or column percent on a table).",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "VariableReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Variable"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A reference to the variable that defines the measure of the NCube."
            },
            "AggregationDefinition": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/AggregationDefinitionType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the independent (denominator) and dependent (numerator) dimensions for calculating aggregate measures such as percent. When two or more independent or dependent dimensions are listed here, the value is defined as the intersection of the listed dimensions."
            }
          }
        }
      ]
    },
    "MeasureDimensionType": {
      "type": "object",
      "properties": {
        "NCubeMeasureDefinitionReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/MeasureDefinitionType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "This is a reference to a MeasureDefinition as described in the parent NCube logical structure. The reference has an additional attribute orderValue which defines the position of the referenced MeasureDefinition along the MeasureDimension so that it can be used as part of the cell address. The default value is \u00221\u0022. Additional MeasureDefinitions should have incremental values (2,3,4,...)"
        }
      },
      "description": "This element defines the structure of a measure dimension for the NCube Instance. A value along the MeasureDimension is defined by a stack of references to one or more MeasureDefinitions found in the logical description of the NCube with each containing an attribute of orderValue which provides its value for use in the cell address (similar to the use of a CodeRepresentation of a Variable used as a conceptual dimension. This allows measures (whether one or several) to be handled in the same way as the conceptual dimension of the NCube in declaring a cell address. It is assumed that the value of the MeasureDimension is the last value in the address array. For example, for an NCube with 3 conceptual dimensions of rank 1 = Sex, rank 2 = Age, and rank 3 = Educational Attainment, plus a MeasureDimension. The cell address of 1,4,2,2 would indicate Code value of 1 for Sex, 4 for Age, 2 for Educational Attainment, and 2 for MeasureDimension. For systems translating to SDMX or an OLap structure DDI assumes that the MeasureDefinitionReference with the orderValue=\u00221\u0022 is the equivalent of the PrimaryMeasure."
    },
    "MeasureDimensionValueType": {
      "type": "object",
      "properties": {
        "DimensionCellValue": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "The value of the dimension used to determine the cell address."
        },
        "ArrayOrder": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Oder within the array. Note that this attribute assumes an array base of 0. The array order assumes that the measures will always be displayed in the same order and that sparse content (a missing value in the array) will be clear between two delimiters in this array. (For example 1,1,1 or 1,,1)"
        }
      },
      "description": "Specifies the orderValue of the Measure in the MeasureDimension described in the NCubeInstance along with its arrayOrder if multiple measures are provided as an array in a single storage location."
    },
    "MeasureIType": {
      "type": "object",
      "properties": {
        "MeasureDimensionValue": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/MeasureDimensionValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Specifies the orderValue of the Measure in the MeasureDimension described in the NCubeInstance along with its arrayOrder if multiple measures are provided as an array in a single storage location."
        },
        "Value": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Value of the Measure expressed as a single value or ordered array."
        }
      },
      "description": "Identifies the specific measure of the cell designating the order value of the Measure within the MeasureDimension and the value of the measure. It is recommended to repeat Measure to define each measure definition and value separately. When Value contains multiple measures expressed as an ordered array list each measure in the array as a MeasureDimensionValue with its specified arrayOrder within a single Measure definition."
    },
    "MeasureTType": {
      "type": "object",
      "properties": {
        "MeasureDimensionValue": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/MeasureDimensionValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Specifies the orderValue of the Measure in the MeasureDimension described in the NCubeInstance along with its arrayOrder if multiple measures are provided as an array in a single storage location."
        },
        "PhysicalTableLocation": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/PhysicalTableLocationType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Description of the physical location of the measure value(s) in the data file."
        }
      },
      "description": "Identifies the specific measure of the cell designating the order value of the Measure within the MeasureDimension and provides information on the storage location of the value for the measure. When individual measures are stored in separately identifiable locations repeat Measure to define each measure and storage location. When multiple measures are stored as an ordered array in a single location list each  in the array as a MeasureDimensionValue with its specified arrayOrder within a single Measure definition."
    },
    "MeasureType": {
      "type": "object",
      "properties": {
        "MeasureDefinitionReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/MeasureDefinitionType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Reference to the MeasureDefinition in NCube."
        },
        "PhysicalLocation": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/PhysicalLocationType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Description of the physical location of the measure value in the data file."
        }
      },
      "description": "Identifies the specific measure of the cell by reference and provides information on the storage location of the value for the measure. When individual measures are stored in separately identifiable locations repeat Measure to define each measure and storage location. When multiple measures are stored as an ordered array in a single location list each measure in the array as a MeasureReference with its specified arrayOrder within a single Measure definition."
    },
    "MetadataQualityType": {
      "type": "object",
      "properties": {
        "TypeOfMetadataQuality": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A brief statement of the metadata quality being measured. Supports the use of an external controlled vocabulary. Use of a controlled vocabulary is strongly recommended."
        },
        "MeasurePurpose": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The purpose of the type of metadata quality measure and its value."
        },
        "MeasureValue": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A value representing the measurement of this set of metadata within the context of the TypeOfMetadataQuality indicated. Supports the use of an external controlled vocabulary."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A textual description of the quality of this set of metadata which expands on or is provided in lieu of other objects within MetadataQuality."
        }
      },
      "description": "An assessment of the quality of the metadata within the Maintainable object, e.g. the quality of the transcription, completeness, editing status, etc. It indicates the type of metadata quality being assesed, the purpose of providing the measure, and either a value for the quality from a controlled vocabulary and/or a description of the value."
    },
    "MethodOfAdministrationType": {
      "type": "object",
      "properties": {
        "TypeOfAdministrationMethod": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Specifies the type of administration method  used. Supports the use of a controlled vocabulary."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Description of the administration method."
        }
      },
      "description": "Describes the method of pretest administration using a controlled vocabulary and description."
    },
    "ModeOfCollectionType": {
      "description": "Describes the mode of collection, i.e., paper questionnaire, observation, web delivered questionnaire, computer assisted interview, automated data harvesting, etc. In addition to the narrative description allows for the use of a brief term or item from a controlled vocabulary to classify the mode used. If multiple modes are used repeat the element.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfModeOfCollection": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows brief identification of the mode used with the option of using a controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (ModeOfCollection) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Full description of the mode of collection."
            }
          }
        }
      ]
    },
    "ModeOfPretestCollectionType": {
      "type": "object",
      "properties": {
        "TypeOfPretestCollectionMode": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Specifies the type of data collection mode used (i.e. interview, self-completed form, observation). Supports the use of a controlled vocabulary."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Description of mode of data collection for the pretest."
        },
        "MethodOfDelivery": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Method of delivery for the pretest mode (i.e., mail, hand-delivery, etc.). Supports the use of a controlled vocabulary."
        },
        "IsPrimary": {
          "$ref": "#/$defs/boolean",
          "description": "A value of true indicates that this is the primary mode of data collection."
        },
        "IsAudioFormatAvailable": {
          "$ref": "#/$defs/boolean",
          "description": "A value of true indicates that an audio format of the question text is available."
        },
        "IsRecordedInterview": {
          "$ref": "#/$defs/boolean",
          "description": "A value of true indicates that the interview is recorded."
        }
      },
      "description": "Describes available aids for translation typed by a controlled vocabulary and a description."
    },
    "NCubesInRecordType": {
      "type": "object",
      "properties": {
        "VariablesInRecord": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/VariablesInRecordType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Use VariablesInRecord to describe any variables in the record that are external to the NCube such as case identifiers."
        },
        "NCubeSchemeReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "NCubeScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Reference to an NCubeScheme whose members are included in the logical record. Note that individual items may be excluded from the scheme if not used by the logical record."
        },
        "NCubeReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "NCube"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Reference to an NCube to include in the logical record. This may be used to supplement the contents of an included NCubeScheme or to list all the variables individually."
        },
        "AllNCubesInLogicalProduct": {
          "$ref": "#/$defs/boolean",
          "description": "When the value is true, then the logical record contains all listed NCubes in the logical product module."
        }
      },
      "description": "Identifies the NCubes and any variables in the record external to NCube structures such as case identification variables that are contained in the logical record by indicating that all NCubes contained in the logical product are included, inclusion of a NCubeScheme to include, or listing individual NCubes to include. When the attribute allNCubesInLogicalProduct is set to \u0022false\u0022 use the NCubeSchemeReference (which allows for exclusions) and NCubeReference to specify the included variables. A nested VariablesInRecord structure is used to include non-NCube variables in the record."
    },
    "NominalDomainType": {
      "description": "A response domain capturing a nominal (check off) response for a question grid response. Includes standard response domain elements; OutParameter, designation of response cardinality, and a declaration of an offset date for the data content.",
      "allOf": [
        {
          "$ref": "#/$defs/NominalRepresentationBaseType"
        },
        {
          "type": "object",
          "properties": {
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the domain."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the domain."
            },
            "OutParameter": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows for the response to be bound to one of the QuestionItem\u0027s OutParameters, so the collected information can be used elsewhere, for example as inputs to subsequent questions in an Instrument or to a GenerationInstruction. If multiple responses are possible, this would represent and ordered array of the responses."
            },
            "ResponseCardinality": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ResponseCardinalityType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows the designation of the minimum and maximum number of responses allowed for this response domain."
            },
            "ContentDateOffset": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ContentDateOffsetType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the difference between the date applied to the data as a whole and this specific item such as previous year\u0027s income or residence 5 years ago."
            }
          }
        }
      ]
    },
    "NominalRepresentationBaseType": {
      "description": "A means of capturing the features of a nominal (marked/unmarked) response domain. Note that this is not the same as a code or category list with a yes/no set of responses. This representation is generally used in QuestionGrids when defining the response domain of a grid cell. In addition to the basic objects of a representation, the structure defines the allowed content of the mark using a regular expression.",
      "allOf": [
        {
          "$ref": "#/$defs/RepresentationType"
        },
        {
          "type": "object",
          "properties": {
            "RegExp": {
              "$ref": "#/$defs/string",
              "description": "The regular expression allows for further description of the allowable content of the data."
            }
          }
        }
      ]
    },
    "NotUsedType": {
      "type": "object",
      "properties": {
        "StringValue": {
          "$ref": "#/$defs/string",
          "description": ""
        },
        "Xpath": {
          "$ref": "#/$defs/string",
          "description": "Contains an XPath which points to an element or attribute in DDI instances which is not used by the profile. All subelements of an unused element are assumed to be included unless explicitly addressed by the profile. The number of supported repetitions may be included in the XPath expression."
        }
      },
      "required": [
        "Xpath"
      ],
      "description": "Identifies DDI objects expressed as an XPath that are not supported by the system or agency using this profile."
    },
    "NoteType": {
      "type": "object",
      "properties": {
        "TypeOfNote": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Specifies the type of note. Supports the use of a controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (TypeOfNote) to support this element at http://www.ddialliance.org/controlled-vocabularies."
        },
        "NoteSubject": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The subject of the note."
        },
        "Relationship": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/RelationshipType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Reference to one or more identifiable objects which the note is related to."
        },
        "Responsibility": {
          "$ref": "#/$defs/string",
          "description": "The person or agency responsible for adding the note."
        },
        "Header": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A brief label or heading for the note contents."
        },
        "NoteContent": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The content of the note. Note should contain content except when it is a production flag that is fully explained by its \u0022type\u0022. If the note provides system specific information in a structured way using XHTML formating, DDI strongly recommends the use of local extensions or the Key/Value pair structure in ProprietaryInfo whenever possible."
        },
        "ProprietaryInfo": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ProprietaryInfoType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A set of actions related to the object as described by a set of name-value pairs. This would commonly be used in a case where additional information needs to be recorded regarding the content of a new element or attribute that has not yet been added to the schema, for example when a bug for a missing object has been filed and the user wishes to record the content prior to correction in the schema. Ideally this should be handled by local extensions of the schema as described in Part 2 of the formal documentation. However, the structure in Note allows for an unanticipated need for an extension at run time by providing a means of capturing system specific information in a structured way."
        },
        "Lang": {
          "$ref": "#/$defs/language",
          "description": "Indicates the language of content. Note that xml:lang allows for a simple 2 or 3 character language code or a language code extended by a country code , for example en-au for English as used in Australia."
        }
      },
      "description": "A note related to one or more identifiable objects. Note is designed to be an inherent part of the DDI. (Unlike XML comments or other types of system-level annotations, which may be removed during processing.) DDI recommends placing the note within the maintainable object containing the objects this note relates to in order to assist tracking of note items within a study. Each note may indicate who is responsible for the note, its type using a controlled vocabulary, the subject of the note, a head and note content, a set of key/value pairs and language specification for the overall note. In addition each note must be related to one or more identifiable objects."
    },
    "NumberRangeType": {
      "type": "object",
      "properties": {
        "Label": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A display label for the number range."
        },
        "Low": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/NumberRangeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The lower bound of the range expressed in the data type xs:decimal. If not present, then there is no lower bound."
        },
        "LowDouble": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DoubleNumberRangeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The lower bound of the range expressed in the data type xs:double. If not present, then there is no lower bound."
        },
        "High": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/NumberRangeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The upper bound of the range in the data type xs:decimal. If not present, then there is no upper bound."
        },
        "HighDouble": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DoubleNumberRangeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The upper bound of the range in the data type xs:double. If not present, then there is no upper bound."
        },
        "TopCode": {
          "$ref": "#/$defs/decimal",
          "description": "Indicates that any response equal to or greater than this value has been coded as the top-code value. Expressed in the data type xs:decimal."
        },
        "TopCodeDouble": {
          "$ref": "#/$defs/double",
          "description": "Indicates that any response equal to or greater than this value has been coded as the top-code value. Expressed in the data type xs:decimal."
        },
        "BottomCode": {
          "$ref": "#/$defs/decimal",
          "description": "Indicates that any response equal to or less than this value has been coded as the bottom-code value. Expressed in the data type xs:double."
        },
        "BottomCodeDouble": {
          "$ref": "#/$defs/double",
          "description": "Indicates that any response equal to or less than this value has been coded as the bottom-code value. Expressed in the data type xs:double."
        },
        "RegExp": {
          "$ref": "#/$defs/string",
          "description": "Regular expression defining the allowed syntax of the number."
        }
      },
      "description": "Structures a numeric range. Low and High values are designated. The structure identifies Low values that should be treated as bottom coded (Stated value and bellow, High values that should be treated as top coded (stated value and higher), and provides a regular expression to further define the valid content of the range."
    },
    "NumberRangeValueType": {
      "type": "object",
      "properties": {
        "DecimalValue": {
          "$ref": "#/$defs/decimal",
          "description": ""
        },
        "IsInclusive": {
          "$ref": "#/$defs/boolean",
          "description": "Indicates that the value is included in the range. Set to false if the range includes numbers up to but no including the designated value."
        }
      },
      "description": "Describes a bounding value for a number range expressed as an xs:demical."
    },
    "NumericDomainType": {
      "description": "A response domain capturing a numeric response (the intent is to analyze the response as a number) for a question. Contains the equivalent content of a NumericRepresentation including the numeric range, numeric type code, format, scale, decimal position, and interval. Adds a set of elements available to all Response Domains; Label, Description, OutParameter, designation of response cardinality, and a declaration of an offset date for the data content. Has an equivalent NumericDomainReference which references a ManagedNumericRepresentation.",
      "allOf": [
        {
          "$ref": "#/$defs/NumericRepresentationBaseType"
        },
        {
          "type": "object",
          "properties": {
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the domain."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the domain."
            },
            "OutParameter": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows for the response to be bound to one of the QuestionItem\u0027s OutParameters, so the collected information can be used elsewhere, for example as inputs to subsequent questions in an Instrument or to a GenerationInstruction. If multiple responses are possible, this would represent and ordered array of the responses."
            },
            "ResponseCardinality": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ResponseCardinalityType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows the designation of the minimum and maximum number of responses allowed for this response domain."
            },
            "ContentDateOffset": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ContentDateOffsetType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the difference between the date applied to the data as a whole and this specific item such as previous year\u0027s income or residence 5 years ago."
            }
          }
        }
      ]
    },
    "NumericRepresentationBaseType": {
      "description": "Defines the representation for a numeric response. May be a range or specific value, or a list of ranges.",
      "allOf": [
        {
          "$ref": "#/$defs/RepresentationType"
        },
        {
          "type": "object",
          "properties": {
            "NumberRange": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/NumberRangeType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Defines the valid number range or number values for the representation."
            },
            "NumericTypeCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identification of the numeric type such as integer, decimal, etc. supports the use of an external controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (NumericType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "Format": {
              "$ref": "#/$defs/string",
              "description": "A format for number expressed as a string."
            },
            "Scale": {
              "$ref": "#/$defs/int",
              "description": "The scale of the number expressed as an integer (for example a number expressed in 100\u0027s, 5 = 500 would have a scale of 100)."
            },
            "DecimalPositions": {
              "$ref": "#/$defs/int",
              "description": "The number of decimal positions expressed as an integer (precision of the number)."
            },
            "Interval_IntervalType": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "The interval between valid responses expressed as an integer."
            },
            "Accuracy": {
              "$ref": "#/$defs/decimal",
              "description": "The level to which a number is considered to be accurate. Expressed as a decimal. "
            }
          }
        }
      ]
    },
    "OperationType": {
      "type": "object",
      "properties": {
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the operation."
        },
        "AgencyOrganizationReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Individual",
                      "Organization"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "A reference to an organization or individual responsible for the operation."
        }
      },
      "description": "A generic operation description used as a type by specified operations. Describes the operation and identifies the organization or individual responsible for performing it."
    },
    "OrganizationIdentificationType": {
      "type": "object",
      "properties": {
        "OrganizationName": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/OrganizationNameType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Names by which the organization is known. Use the attribute isFormal=\u0022true\u0022 to designate the legal or formal name of the Organization. The preferred name should be noted with the isPreferred attribute. Names may be typed with TypeOfOrganizationName to indicate their appropriate usage."
        },
        "DDIMaintenanceAgencyID": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/DDIMaintenanceAgencyIDType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Contains the official DDI ID of the maintenance agency as registered with the DDI registry by the parent organization or individual. A single organization or individual may have one or more DDI Maintenance Agency IDs registered within the DDI registry (i.e., an organization may have a DDI Maintenance Agency ID for each project managed by the organization) The structure of this string is described by Part I of the Technical Documentation and the content is registered within the DDI registry as a unique identifier."
        },
        "OrganizationImage": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/PrivateImageType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Provides an external link to images associated with the individual."
        }
      },
      "description": "Means of identifying an organization. The structure contains a repeatable OrganizationName. At minimum enter the current legal or formal name setting the attribute isFormal to \u0022true\u0022. Additional OrganizationNames may be provided that have a) a specific contextual usage, or b) are of specific types (e.g. PreviousFormalName). The DDI Maintenance Agency ID and and organization images, such as a building picture or logo are found in OrganizationIdentification. Images and names can be individually date stamped."
    },
    "OrganizationNameType": {
      "type": "object",
      "properties": {
        "MultilingualStringValue": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A name for the Organization."
        },
        "Abbreviation": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "An abbreviation or acronym for the name. This It is assumed that if only a single language is provided that it may be used in any of the other languages within which the name itself is expressed."
        },
        "TypeOfOrganizationName": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The type of organization name provided. the use of a controlled vocabulary is strongly recommended. At minimum this should include, e.g. PreviousFormalName, Nickname (or CommonName), Other."
        },
        "EffectivePeriod": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The time period for which this name is accurate and in use."
        },
        "IsFormal": {
          "$ref": "#/$defs/boolean",
          "description": "The legal or formal name of the organization should have the isFormal attribute set to true. To avoid confusion only one organization name should have the isFormal attribute set to true. Use the TypeOfOrganizationName to further differentiate the type and applied usage when multiple names are provided."
        },
        "IsPreferred": {
          "$ref": "#/$defs/boolean",
          "description": "If more than one name for the object is provided, use the isPreferred attribute to indicate which is the preferred name content. All other names should be set to isPreferred=\u0022false\u0022."
        },
        "Context": {
          "$ref": "#/$defs/string",
          "description": "A name may be specific to a particular context, i.e., a type of software, or a section of a registry. Identify the context related to the specified name."
        }
      },
      "description": "Names by which the organization is known. Use the attribute isFormal=\u0022true\u0022 to designate the legal or formal name of the Organization. The preferred name should be noted with the isPreferred attribute. Names may be typed with TypeOfOrganizationName to indicate their appropriate usage."
    },
    "OriginType": {
      "type": "object",
      "properties": {
        "Citation": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CitationType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Citation for the data source."
        },
        "OriginLocation": {
          "$ref": "#/$defs/anyURI",
          "description": "A URN or URL for the data source."
        }
      },
      "description": "A citation or URI for the source of the data. Note that this is an external reference, and should not be used to point to DDI descriptions of the data, or to DDI-encoded data."
    },
    "ParameterType": {
      "description": "A parameter is a structure that specifically identifies a source of input or output information so that it can be use pragmatically.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "ParameterName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the Parameter."
            },
            "Alias": {
              "$ref": "#/$defs/string",
              "description": "If the content of the parameter is being used in a generic set of code as an alias for the value of an object in a formula (for example source code for a statistical program) enter that name here. This provides a link from the identified parameter to the alias in the code."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the Parameter."
            },
            "ValueRepresentation": {
              "type": "object",
              "oneOf": [
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CategoryDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CategoryDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CategoryRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CategoryRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CodeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CodeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CodeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CodeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CoordinatePairsType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CoordinatePairsType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DateTimeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DateTimeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DateTimeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DateTimeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DistributionDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DistributionDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DistributionRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DistributionRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/ExternalCategoryRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "ExternalCategoryRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicLocationCodeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicLocationCodeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicLocationCodeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicLocationCodeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicStructureCodeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicStructureCodeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicStructureCodeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicStructureCodeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/LocationDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "LocationDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/LocationRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "LocationRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NominalDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NominalDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NominalRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NominalRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NumericDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NumericDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NumericRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NumericRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/RankingDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "RankingDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/RankingRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "RankingRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/ScaleDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "ScaleDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/ScaleRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "ScaleRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/TextDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "TextDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/TextRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "TextRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                }
              ],
              "unevaluatedProperties": false,
              "description": "If the content of the parameter contains representational content, such as codes, provide the representation here. ValueRepresentation is the abstract head of a substitution group and may be replaced with any valid substitution for ValueRepresentation. Inclusion of the ValueRepresentation is recommended if you will be sharing data with others as it provides information on the structure of what they can expect to receive when the parameter is processed."
            },
            "ValueRepresentationReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ManagedCategoryRepresentation",
                        "ManagedCodeRepresentation",
                        "ManagedDateTimeRepresentation",
                        "ManagedDistributionRepresentation",
                        "ManagedExternalCategoryRepresentation",
                        "ManagedGeographicLocationCodeRepresentation",
                        "ManagedGeographicRepresentation",
                        "ManagedGeographicStructureCodeRepresentation",
                        "ManagedLocationRepresentation",
                        "ManagedMissingValuesRepresentation",
                        "ManagedNominalRepresentation",
                        "ManagedNumericRepresentation",
                        "ManagedRankingRepresentation",
                        "ManagedScaleRepresentation",
                        "ManagedTextRepresentation"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Allows for the use of a ManagedRepresentation by reference. ValueRepresentationReference is the abstract head of a substitution group and may be replaced with any valid substitution for ValueRepresentationReference."
            },
            "DefaultValue": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Provides a default value for the parameter if there is no value provided by the object it is bound to or the process that was intended to produce a value."
            },
            "IsArray": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the parameter is a delimited array rather than a single object and should be processed as such."
            }
          }
        }
      ]
    },
    "PhysicalLocationType": {
      "type": "object",
      "properties": {
        "StorageFormat": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "An explicit definition of the data storage format. This field is necessary in the case of some numeric data formats where the format definition would allow real values, but the values are integer values. Supports the use of an external controlled vocabulary. Use of a controlled vocabulary is strongly recommended."
        },
        "Delimiter": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DelimiterType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Defines the delimiter used to separate variables in a delimited record. The attribute treatConsecutiveDelimiterAsOne indicates how consecutive delimiters should be handed by the software."
        },
        "StartPosition": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Position of the first character of the data item in fixed format file."
        },
        "ArrayPosition": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Array number of the data item for delimited files."
        },
        "EndPosition": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Position of the last character of the data item in fixed format. Must be specified if a value for Width is not provided."
        },
        "Width": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Data item width for fixed format file, maximum width for delimited file. Must be specified if a value for EndPosition is not provided."
        },
        "DecimalPositions": {
          "$ref": "#/$defs/int",
          "description": "Number of decimal places for data with an implied decimal separator. Another expression is the decimal scaling factor (SAS). Default: 0."
        },
        "DecimalSeparator": {
          "$ref": "#/$defs/string",
          "maxLength": 1,
          "description": "The character used to separate the integer and the fraction part of a number (if an explicit separator is used in the data). Allowed values are: None (default), Dot, Comma, Other. On the basis of the data definition in DDI documents, data processing tools could compute the necessary precision width on the basis of the format width and the existence of separators. Appropriate data types could be used, i.e. float or double, short or long. The decimal separator definition only makes sense with some XML Schema primitives."
        },
        "DigitGroupSeparator": {
          "$ref": "#/$defs/string",
          "maxLength": 1,
          "description": "The character used to separate groups of digits (if an explicit separator is used in the data). Allowed values are: None (default), Dot, Comma, Other. The decimal separator definition makes only sense with some XML Schema primitives."
        },
        "LanguageOfData": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/language"
          },
          "minItems": 0,
          "description": "Language of the data file expressed as a list of language codes."
        },
        "LocaleOfData": {
          "$ref": "#/$defs/string",
          "description": "A two-character ISO country code, to supplement the LanguageOfData value."
        }
      },
      "description": "Description of the physical location of the value of the object in the data file. Includes information about the data item location and its data type/format if other than the default."
    },
    "PhysicalRecordSegmentType": {
      "description": "A description of the physical record segment as found in the data store. A logical record may be stored in one or more segments housed hierarchically in a single file or in separate data files. All logical records have at least one segment. Identifies the Key variable identifying the segment if the identifier exists in the record, a file name identifier if the segment identification is expressed as part of the file name (used when each segment is stored in a separate file), the order of this segment in relation to other physical segments as part of the logical record, and a flag indicating whether or not the physical segment contains a key.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "KeyVariableReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Variable"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the Unique key variable for segment identification."
            },
            "KeyVariableValue": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Value of the variable for this segment."
            },
            "FileNameIdentification": {
              "$ref": "#/$defs/string",
              "description": "If the file containing this segment has a standard section of its file name, include it here. For example a segment number. For example, in the files 2000SF10001.csv and 2000SF10002.csv the last 4 digits contain the segment number. There is no standard means of specifying this information in a machine-actionable way. This statement is informational but in some legacy files may be the only location where the segment identification is found."
            },
            "SegmentOrder": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "Indicates the position of this physical record segment within the logical record expressed as an integer."
            },
            "HasSegmentKey": {
              "$ref": "#/$defs/boolean",
              "description": "Set to true if there is a variable identifying the segment order. If true a segment key should be declared in a KeyVariableReference. Set to false if there are multiple segments and the identification of a particular segment is based on the order of the records within the file."
            }
          }
        }
      ]
    },
    "PhysicalTableLocationType": {
      "description": "The location of the data item within a two-dimensional (spreadsheet) storage format.",
      "allOf": [
        {
          "$ref": "#/$defs/PhysicalLocationType"
        },
        {
          "type": "object",
          "properties": {
            "ColumnNumber": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "Column in which data item is found. This is an integer defined in relationship to a specified \u0022first\u0022 column NOT the column identifier found in the spreadsheet. Begin numbering columns from the upper left corner of the table as defined in TopLeftTableAnchor attribute \u0022column\u0022."
            },
            "RowSequence": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "A single case may be represented on a single row or a series of rows, particularly when multiple measures are used. This element designates the row, with the assumption that there is a single row per case unless otherwise stated."
            }
          }
        }
      ]
    },
    "PointType": {
      "type": "object",
      "properties": {
        "XCoordinate": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/SpatialCoordinateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "An X coordinate (latitudinal equivalent) value and format expressed using the Spatial Coordinate structure."
        },
        "YCoordinate": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/SpatialCoordinateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A Y coordinate (longitudinal equivalent) value and format expressed using the Spatial Coordinate structure."
        }
      },
      "description": "A geographic point consisting of an X and Y coordinate. Each coordinate value is expressed separately providing its value and format."
    },
    "PolygonType": {
      "type": "object",
      "properties": {
        "ExternalURI": {
          "$ref": "#/$defs/anyURI",
          "description": "Note that ExternalURI points to the boundary file location."
        },
        "PolygonLinkCode": {
          "$ref": "#/$defs/string",
          "description": "The PolygonLinkCode is the identifier of the specific polygon within the file. For example in an NHGIS file the LinkCodeForPolygon for Tract 101.01 in Hennepin County in Minnesota is 2700530010101."
        },
        "ShapeFileFormat": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The format of the shape file existing at the location indicated by the sibling ExternalURI element."
        },
        "Point": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/PointType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "A geographic point defined by a latitude and longitude. A minimum of 4 points is required as the first and last point should be identical in order to close the polygon. Note that a triangle has three sides and requires 3 unique points plus a fourth point replicating the first point in order to close the polygon."
        }
      },
      "description": "A closed plane figure bounded by three or more line segments, representing a geographic area. Contains either the URI of the file containing the polygon, a specific link code for the shape within the file, and a file format, or a minimum of 4 points to describe the polygon in-line. Note that the first and last point must be identical in order to close the polygon. A triangle has 4 points. A geographic time designating the time period that the shape is valid should be included. If the date range is unknown use a SingleDate indicating a date that the shape was known to be valid."
    },
    "PopulationSizeType": {
      "type": "object",
      "properties": {
        "PrimaryPopulation": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/SizeType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The sample size of the primary or full population included in this sample. Consists of an integer value and specification of the sample unit."
        },
        "SecondaryPopulation": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/SizeType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "The sample size of any secondary or sub-populations included in this sample. Consists of an integer value and specification of the sample unit."
        }
      },
      "description": "The target value of the sample size for the primary and any secondary or sub-population."
    },
    "PopulationType": {
      "type": "object",
      "properties": {
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A textual description of the population."
        },
        "UniverseReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Universe"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "A reference to a structured Universe description."
        },
        "PopulationReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Population"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "A reference to a structured Population description."
        }
      },
      "description": "Describe the population through a combination of textual description and reference to a structured Universe. If multiple universes are referenced, the overall universe is the intersect of the set of universes referenced."
    },
    "PretestAdministrationType": {
      "type": "object",
      "properties": {
        "MethodOfAdministration": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/MethodOfAdministrationType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Describes the method of pretest administration using a controlled vocabulary and description."
        },
        "ModeOfPretestCollection": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/ModeOfPretestCollectionType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Describes the mode of collection used in the pretest. Repeat of multiple modes of collection were used. Indicate the primary mode using isPrimary attribute if applicable."
        },
        "AdditionalDataCollection": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/AdditionalDataCollectionType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Description of the method and mode of data collection in administering the pretest. Notes any additional data collected in the administration of the pretest."
        }
      },
      "description": "Description of the method and mode of data collection in administering the pretest. Notes any additional data collected in the administration of the pretest."
    },
    "PrimaryComponentLevelType": {
      "type": "object",
      "properties": {
        "GeographicLevelReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/GeographicLevelType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Reference to the Geographic Level used as the basic building block to a composite area. Use the largest level that is consistently used in full (i.e. Use a State rather than the sub-level County if a State is always a member of the composed unit in its entirety."
        },
        "CoverageLimitation": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Describes a limitation of the coverage such as all Metropolitan Areas EXCEPT those in New England States."
        }
      },
      "description": "Provides references to the base level elements that are used as building blocks for composed geographies. For example, Metropolitan areas that are composed of counties except in the New England States where they are composed of county subdivisions, or School Attendance Boundaries (SABINS) built from Census Blocks. This structure allows for specifying the basic building block for composed areas and any restrictions (coverage limitations)."
    },
    "PrivateImageType": {
      "description": "References an image using the standard Image description. In addition to the standard attributes provides an effective date (period), the type of image, and a privacy ranking.",
      "allOf": [
        {
          "$ref": "#/$defs/ImageType"
        },
        {
          "type": "object",
          "properties": {
            "EffectivePeriod": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DateType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The period for which this image is effective/valid."
            },
            "Privacy": {
              "$ref": "#/$defs/string",
              "enum": [
                "public",
                "restricted",
                "private"
              ],
              "description": "A basic set of privacy codes for the parent element. These may be stricter than the general access restrictions for the overall metadata. If available codes are insufficient this may also contain any string."
            }
          }
        }
      ]
    },
    "ProprietaryInfoType": {
      "type": "object",
      "properties": {
        "ProprietaryProperty": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/StandardKeyValuePairType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "A structure that supports the use of a standard key value pair. Note that this information is often not interoperable and is provided to support the use of the metadata within specific systems."
        }
      },
      "description": "Contains information proprietary to the software package which produced the data file. This is expressed as a set of key(name)-value pairs."
    },
    "PublicationType": {
      "type": "object",
      "properties": {
        "OtherMaterialReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "OtherMaterial"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Description and link to the Publication using the DDI Other Material structure."
        }
      },
      "description": "Description and link to the Publication using the DDI Other Material structure."
    },
    "PublisherType": {
      "type": "object",
      "properties": {
        "PublisherName": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/BibliographicNameType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Full name of the publisher. Language equivalents should be expressed within the International String structure."
        },
        "PublisherRole": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CodeValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "The role of the publisher as publisher, distributor, etc."
        },
        "PublisherReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Individual",
                    "Organization"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to a publisher as described within a DDI Organization Scheme."
        }
      },
      "description": "Holds the name of the publisher with their role and/or a reference to the publisher as described within a DDI Organization scheme. Repeat this element for multiple publishers."
    },
    "QuestionSequenceType": {
      "description": "Describes the ordering of questions when not otherwise indicated. Extends the standard sequencing information to indicate how and if StimulusMaterial should be treated in the resequencing.",
      "allOf": [
        {
          "$ref": "#/$defs/SpecificSequenceType"
        },
        {
          "type": "object",
          "properties": {
            "HandlingOfStimulusMaterial": {
              "$ref": "#/$defs/string",
              "enum": [
                "include",
                "preceding",
                "following",
                "within"
              ],
              "description": "Clarifies how stimulus material is to be handled within the resequencing using a controlled vocabulary. Options: \u0022include\u0022=Include StimulusMaterial in resequencing without restriction; \u0022preceding\u0022=Attach each StimulusMaterial to the preceding question; \u0022following\u0022=Attach each StimulusMaterial to the question following it; and the default value of \u0022within\u0022=Resequencing occurs within each set of questions as delimited by StimulusMaterial"
            }
          }
        }
      ]
    },
    "RangeType": {
      "type": "object",
      "properties": {
        "Label": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A display label for the text range."
        },
        "CollationAlgorithm": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The algorithm used to determine the sort order of the text content. This includes whether the text is left to right, right to left, handling of spaces an capitalization, and ordering of text characters. Supports the use of a controlled vocabulary."
        },
        "RangeUnit": {
          "$ref": "#/$defs/string",
          "description": "Specifies the units in the range."
        },
        "MinimumValue": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/RangeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Minimum value in the range."
        },
        "MaximumValue": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/RangeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Maximum value in the range."
        }
      },
      "description": "Indicates the range of items expressed as a string, such as an alphabetic range."
    },
    "RangeValueType": {
      "description": "Describes a bounding value of a string.",
      "allOf": [
        {
          "$ref": "#/$defs/ValueType"
        },
        {
          "type": "object",
          "properties": {
            "Included": {
              "$ref": "#/$defs/boolean",
              "description": "Set to \u0022true\u0022 if the value is included in the range."
            }
          },
          "required": [
            "Included"
          ]
        }
      ]
    },
    "RankingDomainType": {
      "description": "A response domain capturing a ranking response which supports a \u0022ranking\u0022 of categories. Generally used within a QuestionGrid. Includes standard response domain elements; OutParameter, designation of response cardinality, and a declaration of an offset date for the data content, as well as content for a Nominal Representation.",
      "allOf": [
        {
          "$ref": "#/$defs/RankingRepresentationBaseType"
        },
        {
          "type": "object",
          "properties": {
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the domain."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the domain."
            },
            "OutParameter": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows for the response to be bound to one of the QuestionItem\u0027s OutParameters, so the collected information can be used elsewhere, for example as inputs to subsequent questions in an Instrument or to a GenerationInstruction. If multiple responses are possible, this would represent and ordered array of the responses."
            },
            "ResponseCardinality": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ResponseCardinalityType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows the designation of the minimum and maximum number of responses allowed for this response domain."
            },
            "ContentDateOffset": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ContentDateOffsetType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the difference between the date applied to the data as a whole and this specific item such as previous year\u0027s income or residence 5 years ago."
            }
          }
        }
      ]
    },
    "RankingRangeType": {
      "description": "Describes the range of values used in the ranking system using Range and sets the number of times a single value can be repeated.",
      "allOf": [
        {
          "$ref": "#/$defs/RangeType"
        },
        {
          "type": "object",
          "properties": {
            "MaximumRepetitionOfSingleValue": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "Allows values to be expressed more than once, for example if respondent can specify a \u0022tie\u0022 by repeating a single value."
            }
          }
        }
      ]
    },
    "RankingRepresentationBaseType": {
      "description": "A means of capturing the representation of Ranking to be used as a response domain used by a question. In addition to the basic objects of the representation, the structure defines the range used for ranking including the number of times an individual value may be repeated.",
      "allOf": [
        {
          "$ref": "#/$defs/RepresentationType"
        },
        {
          "type": "object",
          "properties": {
            "RankingRange": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/RankingRangeType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The allowed values expressed using Range (allows for non-numeric values). In addition, defines the number of times a value may be used in expressing a ranking."
            }
          }
        }
      ]
    },
    "RecommendedStaffRequirementsType": {
      "type": "object",
      "properties": {
        "StaffClass": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Specify the class of the staff participating in the activity. Supports the use of a controlled vocabulary."
        },
        "ParticipantRequirements": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Describe any special or specific requirements for participating staff."
        },
        "RecruitmentProcess": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Describe the process to be used for staff recruitment in this class."
        }
      },
      "description": "Specify requirements for type of staffing needed to complete activity including the class of staff participating in the activity, requirements for those participants, and the recruitment process."
    },
    "RecordRelationshipType": {
      "description": "Describes the relationship between records of different types or of the same type within a longitudinal study. Identifies the key and linking value relationships. All relationships are pairwise. Multiple pairwise relationships maybe needed to clarify all record relationships within a logical product or data set. In addition to the standard name, label, and description, the structure identifies the pair of logical records for which the relationship is defined as SourceLogicalRecord and TargetLogicalRecord, describes the link between these two records and indicates the relationship of the of the source record to the target record.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "RecordRelationshipName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the RecordRelationship."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the RecordRelationship."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the RecordRelationship."
            },
            "SourceLogicalRecordReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/LogicalRecordType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A reference to the Logical Record acting as the Source Record. All relationship information is from the source to the target. If the relationship is not unidirectional (i.e., sibling) simply assign one record as the source and the other as the target."
            },
            "TargetLogicalRecordReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/LogicalRecordType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A reference to the Logical Record acting as the Target Record."
            },
            "SourceTargetLink": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/SourceTargetLinkType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Each SourceTargetLink provides a pair of variables which act as all or part of a link between the source and the target records. Repeat if more than one set of variables is required to make the link."
            },
            "RelationToTarget": {
              "$ref": "#/$defs/string",
              "enum": [
                "Parent",
                "Child",
                "Sibling",
                "Unknown"
              ],
              "description": "Indicates the relationship of the source to the target. The value describes the role of the source in the relationship. This is a restricted list of Parent, Child, Sibling, Unknown."
            }
          }
        }
      ]
    },
    "RecordSetType": {
      "type": "object",
      "properties": {
        "VariableOrder": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/VariableOrderType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Provides the sequence of variables representing the order of storage within each record."
        },
        "Record": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/RecordType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "For each record, contains the values for the items in order by the specified variable sequence."
        }
      },
      "description": "Storage format arranged record by record. A RecordSet requires a list of variables to appear in a specified order. Provides a consistent order for the variables and a set of values for each record displayed in variable order."
    },
    "RecordType": {
      "type": "object",
      "properties": {
        "Value": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/ValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "An individual item value."
        }
      },
      "description": "For each record, contains the values for the items in order by the specified variable sequence."
    },
    "ReferenceDateType": {
      "description": "The date that the data reference such as at the point of collection, a previous year or date, etc. This is expressed as a date (singular or range) and may have specific subjects associated with it. For example if only income and labor force status relate to the previous year and all other data related to the point of collection.",
      "allOf": [
        {
          "$ref": "#/$defs/DateType"
        },
        {
          "type": "object",
          "properties": {
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If the date is for a subset of data only such as a referent date for residence 5 years ago, use Subject to specify the coverage of the data this date applies to. May be repeated to reflect multiple subjects."
            }
          }
        }
      ]
    },
    "RelatedValueType": {
      "description": "The characteristic value expressed as a string with an indicator of the specific relationship of the variable value to the characteristic value. The default is \u0022Equal\u0022. The value may be defined as containing no content (blank) by setting the attribute valueIsBlank to \u0022true\u0022.",
      "allOf": [
        {
          "$ref": "#/$defs/ValueType"
        },
        {
          "type": "object",
          "properties": {
            "Type": {
              "$ref": "#/$defs/string",
              "enum": [
                "GreaterThan",
                "LessThan",
                "Equal",
                "GreaterThanOrEqual",
                "LessThanOrEqual",
                "NotEqual"
              ],
              "description": "Indicates value type as \u0022GreaterThan\u0022, LessThan\u0022, \u0022Equal\u0022, \u0022GreaterThanOrEqual\u0022, \u0022LessThanOrEqual\u0022, or \u0022NotEqual\u0022."
            },
            "ValueIsBlank": {
              "$ref": "#/$defs/boolean",
              "description": "Set to \u0022true\u0022 if the value of the conditional variable is blank."
            }
          }
        }
      ]
    },
    "RelationshipType": {
      "type": "object",
      "properties": {
        "RelatedToReference_IdentifiableType": {
          "type": "object",
          "oneOf": [
            {
              "allOf": [
                {
                  "$ref": "#/$defs/AccessType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "AccessType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/ActionToMinimizeLossesType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ActionToMinimizeLossesType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/AggregationVariablesType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "AggregationVariablesType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/AttributeType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "AttributeType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/AuthorizedSourceType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "AuthorizedSourceType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CodeType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CodeType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CollectionEventType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CollectionEventType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CollectionSituationType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CollectionSituationType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CoordinateRegionType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CoordinateRegionType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/DataCollectionMethodologyType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "DataCollectionMethodologyType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/DeviationFromSampleDesignType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "DeviationFromSampleDesignType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/EmbargoType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "EmbargoType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicCoverageType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeographicCoverageType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicLevelType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeographicLevelType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GrossFileStructureType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GrossFileStructureType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GrossRecordStructureType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GrossRecordStructureType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/InParameterType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "InParameterType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/ItemMapType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ItemMapType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/LifecycleEventType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "LifecycleEventType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/LocationValueType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "LocationValueType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/LogicalRecordType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "LogicalRecordType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/MeasureDefinitionType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "MeasureDefinitionType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/ModeOfCollectionType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ModeOfCollectionType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ParameterType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/PhysicalRecordSegmentType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "PhysicalRecordSegmentType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/RecordRelationshipType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "RecordRelationshipType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/SamplingProcedureType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "SamplingProcedureType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/StandardWeightType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "StandardWeightType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/TemporalCoverageType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "TemporalCoverageType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/TimeMethodType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "TimeMethodType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/TopicalCoverageType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "TopicalCoverageType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            }
          ],
          "unevaluatedProperties": false,
          "description": "Reference to the item within the DDI Instance to which this item is related."
        },
        "RelatedToReference_Versionable": {
          "$ref": "#/$defs/Reference",
          "description": "Reference to the item within the DDI Instance to which this item is related."
        },
        "RelationshipDescription": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the nature of the relationship between the parent element of the relationship item and the DDI object to which it is related."
        },
        "TypeOfRelationship": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Describes how the resource is related to the item. Supports the use of an external controlled vocabulary."
        }
      },
      "description": "Relationship specification between this item and the item to which it is related. Provides a reference to any identifiable object and a description of the relationship."
    },
    "RepresentationType": {
      "type": "object",
      "properties": {
        "RecommendedDataType": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "This field provides the recommended treatment of the data within an application. The value should come from a controlled vocabulary - recommended values include the set found in W3C XML Schema Part 2, but excluding string sub-types, QNAME, and NOTATION. The DDI Alliance has provided a controlled vocabulary (DataType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
        },
        "GenericOutputFormat": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "This field provides a recommended generic treatment of the data for display by an application. The value should come from a controlled vocabulary."
        },
        "MeasurementUnit": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Records the measurement unit, for example, \u0027km\u0027, \u0027miles\u0027, etc. Supports the use of a controlled vocabulary."
        },
        "MissingValue": {
          "$ref": "#/$defs/string",
          "description": "List the values used to represent missing data. Use of MissingValuesReference is preferred. If this content does not match the values provided in the MissingValuesReference, the content of the MissingValuesReference overrides the content of this attribute."
        },
        "BlankIsMissingValue": {
          "$ref": "#/$defs/boolean",
          "description": "When value is true a blank or empty variable content should be treated as a missing value.  Use of MissingValuesReference is preferred."
        },
        "ClassificationLevelCode": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Indicates the type of relationship, nominal, ordinal, interval, ratio, or continuous. Use where appropriate for the representation type."
        }
      },
      "description": "Abstract type for the head of a substitution group for a variable representation or a question response domain. If specific values are used to denote missing values, these can be indicated as a space-delimited list in the missingValue attribute. If the missing value is indicated by a blank, this should be indicated by setting the value of blankIsMissingValue to true."
    },
    "RequiredResourcePackagesType": {
      "type": "object",
      "properties": {
        "ResourcePackageReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ResourcePackage"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "References a resource package used by the module."
        }
      },
      "description": "Specifies by reference the ResourcePackages required to resolve the module."
    },
    "RequirementsAssessmentType": {
      "type": "object",
      "properties": {
        "TypeOfRequirementsAssessment": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Identifies the type of requirement being assessed such as staffing, funding, source materials, etc. Supports the use of an external controlled vocabulary."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the Requirements Assessment."
        },
        "IsSatisfied": {
          "$ref": "#/$defs/boolean",
          "description": "A boolean statement of whether the requirement was satisfied or not. A value of \u0022true\u0022 indicates that the minimum requirement was satisfied. Note any specific information in the Description."
        }
      },
      "description": "Description of whether specific requirements for the activities providing these results were met."
    },
    "ResearcherIDType": {
      "type": "object",
      "properties": {
        "TypeOfID": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Brief description of the ID type. Supports the use of an external controlled vocabulary."
        },
        "ResearcherIdentification": {
          "$ref": "#/$defs/string",
          "description": "The value of the researcher ID."
        },
        "URI": {
          "$ref": "#/$defs/anyURI",
          "description": "The URI (URN or URL) of the of the researcher ID."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the purpose and use of the researcher ID."
        },
        "EffectivePeriod": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Clarifies when the identification information is accurate."
        }
      },
      "description": "Captures an individuals assigned researcher ID within a specified system. Includes the type or researcher ID provided, the ID, a URI of the location or link, and a description of the researcher ID provided. E.g., Rajiv Agrwal, type=researcherID, ID=A-8725-2008), URI=www.researcherid.com/rid/A-8725-2008 which brings you to the researchers page."
    },
    "ResourcePackageArchiveType": {
      "type": "object",
      "properties": {
        "ArchiveReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Archive"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Allows for in-line entry of an Archive related to the creation and maintenance of the ResourcePackage."
        }
      },
      "description": "This is archive information specific to the creation, maintenance, and archiving of the ResourcePackage provided either in-line or by reference. This packaging element differentiates this \u0022Archive\u0022 from one being published as a product within a ResourcePackage."
    },
    "ResponseCardinalityType": {
      "type": "object",
      "properties": {
        "MinimumResponses": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Minimum number of responses accepted expressed and an integer."
        },
        "MaximumResponses": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Maximum number of responses accepted expressed and an integer."
        }
      },
      "description": "Indicates the minimum and maximum number of occurrences of a response within the given parameters."
    },
    "ResponseDomainInMixedType": {
      "type": "object",
      "properties": {
        "ResponseDomain": {
          "type": "array",
          "items": {
            "type": "object",
            "oneOf": [
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/CategoryDomainType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CategoryDomainType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/CategoryRepresentationBaseType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CategoryRepresentationBaseType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeDomainType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CodeDomainType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeRepresentationBaseType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CodeRepresentationBaseType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/CoordinatePairsType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CoordinatePairsType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/DateTimeDomainType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DateTimeDomainType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/DateTimeRepresentationBaseType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DateTimeRepresentationBaseType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/DistributionDomainType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DistributionDomainType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/DistributionRepresentationBaseType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DistributionRepresentationBaseType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/ExternalCategoryRepresentationBaseType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ExternalCategoryRepresentationBaseType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/GeographicDomainType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicDomainType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/GeographicLocationCodeDomainType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicLocationCodeDomainType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/GeographicLocationCodeRepresentationBaseType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicLocationCodeRepresentationBaseType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/GeographicRepresentationBaseType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicRepresentationBaseType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/GeographicStructureCodeDomainType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicStructureCodeDomainType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/GeographicStructureCodeRepresentationBaseType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicStructureCodeRepresentationBaseType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/LocationDomainType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "LocationDomainType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/LocationRepresentationBaseType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "LocationRepresentationBaseType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/NominalDomainType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "NominalDomainType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/NominalRepresentationBaseType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "NominalRepresentationBaseType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/NumericDomainType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "NumericDomainType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/NumericRepresentationBaseType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "NumericRepresentationBaseType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/RankingDomainType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RankingDomainType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/RankingRepresentationBaseType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RankingRepresentationBaseType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/ScaleDomainType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ScaleDomainType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/ScaleRepresentationBaseType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ScaleRepresentationBaseType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/TextDomainType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "TextDomainType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              {
                "allOf": [
                  {
                    "$ref": "#/$defs/TextRepresentationBaseType"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "TextRepresentationBaseType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "The response domain being used. An abstract element. May be substituted by any valid object of substitution type ResponseDomain."
        },
        "ResponseDomainReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "ManagedCategoryRepresentation",
                      "ManagedCodeRepresentation",
                      "ManagedDateTimeRepresentation",
                      "ManagedDistributionRepresentation",
                      "ManagedExternalCategoryRepresentation",
                      "ManagedGeographicLocationCodeRepresentation",
                      "ManagedGeographicRepresentation",
                      "ManagedGeographicStructureCodeRepresentation",
                      "ManagedLocationRepresentation",
                      "ManagedMissingValuesRepresentation",
                      "ManagedNominalRepresentation",
                      "ManagedNumericRepresentation",
                      "ManagedRankingRepresentation",
                      "ManagedScaleRepresentation",
                      "ManagedTextRepresentation"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "The inclusion of a response domain by reference (must be supported by a managed representation). An abstract element. May be substituted by any valid object of substitution type ResponseDomainReference."
        },
        "AttachmentLocation": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/AttachmentLocationType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Allows attachment of a secondary response domain to a specific item within another response domain used in the question. For example, attach a TextDomain to the value \u0022Other\u0022 using the TextDomain label (Please specify) as a label for the TextDomain."
        },
        "AttachmentBase": {
          "$ref": "#/$defs/int",
          "description": "If another response domain will be attached to the response domain listed withinResponseDomainInMixed provide a value in attachmentBase to allow for unique identification within this question. AttachmentLocation contains an attribute attachmentDomain which will provide a link from the domain that is being attached to the domain it is being attached to."
        }
      },
      "description": "A structure that provides both the response domain and information on how it should be attached, or related, to other specified response domains in the question. If no AttachmentLocation information is provided it is assumed that multiple response domains or response text occurs in sequence."
    },
    "ResponseRateType": {
      "type": "object",
      "properties": {
        "SampleSize": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "The size of the sample from whom data was requested."
        },
        "NumberOfResponses": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "The number of responses within the specified sample."
        },
        "SpecificResponseRate": {
          "$ref": "#/$defs/decimal",
          "description": "The specific rate of response expressed as a percent."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the rate of response including any information pertinent to understanding the specified rate of response."
        }
      },
      "description": "A specific rate of response and/or a description of the rate of response for a specific processing event that includes data appraisal."
    },
    "ResponseTextSetType": {
      "type": "object",
      "properties": {
        "ResponseText": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/DynamicTextType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Text closely related to the content of the ResponseDomain(s), in general, text required to make sense of the related response domain. Note that when using ResponseText, the full ResponseText must be repeated for multi-language versions of the content. Different languages may handle the dynamic portions in different locations and/or with different content. Therefore languages cannot be mixed within a dynamic text except when the full text itself has multiple language sections, for example, a foreign language term in a text. The DisplayText may also be repeated to provide a dynamic and plain text version of the display. This allows for accurate rendering of the ResponseText in a non-dynamic environment like print."
        }
      },
      "description": "Provides a means of bundling multiple language versions of the same intended dynamic text together. This wrapper serves to differentiate between a case where multiple language content for a single ResponseText are provided and when two differing sets of ResponseText are in immediate sequence (with no intervening question). Each of the repetitions of ResponseText within this wrapper are assumed to be multi-language equivalents."
    },
    "RestrictionProcessType": {
      "type": "object",
      "properties": {
        "ProcessingInstructionReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "GeneralInstruction",
                    "GenerationInstruction"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to a ProcessingInstruction containing the process instructions for restricting a level of coverage."
        },
        "CommandCode": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CommandCodeType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The process instructions for restricting a level of coverage expressed as a command code."
        }
      },
      "description": "Allows for a specific machine actionable description of the restriction process using a ProcessingInstructionReference, if one currently exists, or through a CommandCode. In the case of a physical instance, the RestrictionProcess would be the same as a case, record or variable selection process."
    },
    "ResultDetailType": {
      "type": "object",
      "properties": {
        "TypeOfResult": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Identifies the specific type of result. Supports the use of an external controlled vocabulary."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the Results Detail."
        },
        "ResultsDate": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The date or date range of obtaining results from the development work."
        },
        "RequirementsAssessment": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/RequirementsAssessmentType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Description of whether specific requirements for the activities providing these results were met."
        }
      },
      "description": "Details of specific results of the development plan and process. May refer to specific development activities or DevelopmentSteps within a DevelopmentProcess."
    },
    "RoleType": {
      "type": "object",
      "properties": {
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Description of the role played by the Target Object in relationship to the Source Object."
        },
        "Keyword": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/InternationalCodeValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Keyword used to classify the role of the organization or individual in relationship to the Source Object"
        },
        "EffectivePeriod": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/DateType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Time period when this role is/was valid."
        },
        "AdditionalInformation": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Any information not captured by the other descriptive objects. The privacy code may be set to indicate access restriction to this information."
        },
        "Privacy": {
          "$ref": "#/$defs/string",
          "enum": [
            "public",
            "restricted",
            "private"
          ],
          "description": "A basic set of privacy codes for the parent element. These may be stricter than the general access restrictions for the overall metadata. If available codes are insufficient this may also contain any string."
        }
      },
      "description": "Describes the role of Target Individual or Organization in relation to the Source Object. Provides a description and classification of the role, the period for which the role was valid, and any additional information relevent to the role."
    },
    "RosterType": {
      "type": "object",
      "properties": {
        "Label": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A display label for the Roster."
        },
        "ConditionForContinuation": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CommandCodeType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Provides the condition for continuing to add another iteration to the Roster. This may be a human readable condition and/or a machine-actionable command."
        },
        "BaseCodeValue": {
          "$ref": "#/$defs/int",
          "description": "A base value for the first item on the Roster (normally 0 or 1 but can be set to any value especially when the use of a roster extends an enumerated list expressed as an integer."
        },
        "CodeIterationValue": {
          "$ref": "#/$defs/int",
          "description": "The value added to the last used value to create the iteration value for the current row or column expressed as an integer."
        },
        "MinimumRequired": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "The minimum number of rows or columns required expressed as an integer."
        },
        "MaximumAllowed": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "The maximum number of rows or columns allowed expressed as an integer. Leaving this attribute with no value implies that the maximum allowed is unbounded."
        }
      },
      "required": [
        "BaseCodeValue",
        "CodeIterationValue"
      ],
      "description": "A roster is an unlabeled list of numbered rows or columns depending upon orientation. The numbers may or may not be displayed but will be used as information for creating the cell coordinate address. The Roster defines the numbering used for the coordinate system, sets a minimum and maximum number of values, and provides the condition for continuation. The Roster label is used in the same way as the label of the CodeDomain, providing a dimension level header or label."
    },
    "SamplingProcedureType": {
      "description": "Describes a sampling procedure. If multiple sampling procedures were used repeat this element for each.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfSamplingProcedure": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic means of classifying a SamplingProcedure. Supports the use of an external controlled vocabulary."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Full description of the sampling procedure. Supports structured content and multiple language content."
            },
            "SamplingPlanReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "SamplingPlan"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to sample plan which describes a process for achieving the sample. TypeOfObject should be SamplingPlan."
            },
            "SampleReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Sample"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to sample created using sampling procedure. TypeOfObject should be Sample."
            }
          }
        }
      ]
    },
    "ScaleDimensionType": {
      "type": "object",
      "properties": {
        "Label": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A display label for the scale."
        },
        "NumberRange": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/NumberRangeType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Indicates the high and low values (endpoints) of a numeric scale."
        },
        "Range": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/RangeType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Indicates the high and low values (endpoints) of a non-numeric scale."
        },
        "Anchor": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/AnchorType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Allows for the attachment of a category label at any anchor point."
        },
        "MarkedIncrement": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/BasicIncrementType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Identifies the frequency for increment markers (with or without value attachments)."
        },
        "ValueIncrement": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/BasicIncrementType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Identifies the frequency for value labels on marked or unmarked increments."
        },
        "DimensionNumber": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "A number used to identify this dimension when describing its intersect point with one or more dimensions in the same scale representation. The dimension is denoted with a 1-based indexing. Dimension in the scale are numbered (1,2,n)."
        },
        "DegreeSlopeFromHorizontal": {
          "$ref": "#/$defs/int",
          "description": "A horizontal line is described as a 0 (zero) slope. Expressed as the number of degrees positive (right end angle above the horizontal line) or degrees positive (right end descending below the horizontal line). "
        }
      },
      "description": "Defines a dimension of a scale providing it with a label, a numeric or character based range, the attachment of a category label at one or more of the scale values, the frequency of increment markers, and the frequency of value labels on marked or unmarked increments."
    },
    "ScaleDomainType": {
      "description": "A response domain capturing a scale response which describes a 1..n dimensional scale of various display types for a question item. Includes standard response domain elements; OutParameter, designation of response cardinality, and a declaration of an offset date for the data content. May be replaced by a ScaleRepresentationRefererence.",
      "allOf": [
        {
          "$ref": "#/$defs/ScaleRepresentationBaseType"
        },
        {
          "type": "object",
          "properties": {
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the domain."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the domain."
            },
            "OutParameter": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows for the response to be bound to one of the QuestionItem\u0027s OutParameters, so the collected information can be used elsewhere, for example as inputs to subsequent questions in an Instrument or to a GenerationInstruction. If multiple responses are possible, this would represent and ordered array of the responses."
            },
            "ResponseCardinality": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ResponseCardinalityType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows the designation of the minimum and maximum number of responses allowed for this response domain."
            },
            "ContentDateOffset": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ContentDateOffsetType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the difference between the date applied to the data as a whole and this specific item such as previous year\u0027s income or residence 5 years ago."
            }
          }
        }
      ]
    },
    "ScaleRepresentationBaseType": {
      "description": "A means of capturing the structure of Scale for use as a question response domain or variable value representation. In addition to the basic objects of the representation, the structure defines the dimensions of the scale, an intersect for a multi-dimensional scale, and display layout.",
      "allOf": [
        {
          "$ref": "#/$defs/RepresentationType"
        },
        {
          "type": "object",
          "properties": {
            "ScaleDimension": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ScaleDimensionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A description of a dimension of the scale. Note that most scales will have only one dimension."
            },
            "DimensionIntersect": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DimensionIntersectType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Identifies the point at which the scales of a multidimensional scale intersect."
            },
            "DisplayLayout": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Defines they layout such as containing a drawn scale line, a list of values only, an outline (the boundaries of the area defined by 2 or more intersecting scales such as a diamond of opposites), or some other layout design. Allows for the use of a controlled vocabulary."
            }
          }
        }
      ]
    },
    "SegmentType": {
      "type": "object",
      "properties": {
        "Textual": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/TextualType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Defines the segment of textual content used by the parent object. Can identify a set of lines and or characters used to define the segment."
        },
        "Audio": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/AudioType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Describes the type and length of the audio segment."
        },
        "Video": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/VideoType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Describes the type and length of the video segment."
        },
        "XML": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/string"
          },
          "minItems": 0,
          "description": "An X-Pointer expression identifying a node in the XML document."
        },
        "ImageArea": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/ImageAreaType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Defines the shape and area of an image used as part of a location representation. The shape is defined as a Rectangle, Circle, or Polygon and Coordinates provides the information required to define it."
        }
      },
      "description": "A structure used to express explicit segments or regions within different types of external materials (Textual, Audio, Video, XML, and Image). Provides the appropriate start, stop, or region definitions for each type."
    },
    "SelectDimensionType": {
      "type": "object",
      "properties": {
        "Rank": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "The rank value of the dimension for which the selection criteria apply."
        },
        "AllValues": {
          "$ref": "#/$defs/boolean",
          "description": "If set to \u0022true\u0022 applies to the full set of dimension values. If set to \u0022false\u0022 use specificValue, rangeMinimum and rangeMaximum as appropriate to define the subset of values needed."
        },
        "SpecificValue": {
          "$ref": "#/$defs/string",
          "description": "May contain a single value or a delimited array of values."
        },
        "RangeMinimum": {
          "$ref": "#/$defs/string",
          "description": "The inclusive minimum value of the range. Use when the values or subset of values are ordered and contiguous and may be expressed as a range."
        },
        "RangeMaximum": {
          "$ref": "#/$defs/string",
          "description": "The inclusive maximum value of the range. Use when the values or subset of values are ordered and contiguous and may be expressed as a range."
        }
      },
      "required": [
        "Rank"
      ],
      "description": "For each dimension in the grid define the applicable values as \u0022all values\u0022, a \u0022specific value\u0022 or a range. If a rangeMinimum or rangeMaximum is provided without the other, the assumption is unbounded for the object not included."
    },
    "SeriesStatementType": {
      "type": "object",
      "properties": {
        "SeriesRepositoryLocation": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/anyURI"
          },
          "minItems": 0,
          "description": "Location of the repository containing the series. This may be repeated for multiple repository locations."
        },
        "SeriesName": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The full name of the series. The structure supports the use of multiple language versions of the content. If the name varies depending upon the context or is known by multiple names, this element may be repeated."
        },
        "SeriesAbbreviation": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CodeValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Abbreviation of the series name. Repeat for multiple abbreviations for the SAME series Name."
        },
        "SeriesDescription": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Describe the purpose of coverage of the series."
        }
      },
      "description": "Series statement contains information about the series to which a study unit or group of study units belongs. You may point to the URL of a series repository and then use the SeriesName field to indicate the series itself as identified in that repository. Fields also exist for describing the series and providing abbreviations."
    },
    "SimilarConceptType": {
      "type": "object",
      "properties": {
        "SimilarConceptReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Concept"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to a concept with a similar definition."
        },
        "Difference": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Description of the difference between the two concepts. "
        }
      },
      "description": "A reference to a concept with similar meaning and a description of their differences. Formal comparison is done using a ConceptMap. The similar concept structure allows specification of similar concepts to address cases where confusion may affect the appropriate use of the concept."
    },
    "SizeType": {
      "type": "object",
      "properties": {
        "UnitTypeReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "UnitType"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to an existing UnitType using the Reference structure. TypeOfObject should be set to UnitType."
        },
        "NumberOfUnits": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Indicate the number of units of the UnitType specified."
        }
      },
      "description": "Consists of an integer value and specification of the unit. The unit may be specified using a controlled vocabulary."
    },
    "SoftwareType": {
      "type": "object",
      "properties": {
        "SoftwareName": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "The name of the software package, including its producer."
        },
        "SoftwarePackage": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A coded value from a controlled vocabulary, describing the software package. The DDI Alliance has provided a controlled vocabulary (SoftwarePackage) to support this element at http://www.ddialliance.org/controlled-vocabularies."
        },
        "SoftwareVersion": {
          "$ref": "#/$defs/string",
          "description": "The version of the software package. Defaults to \u00271.0\u0027."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the content and purpose of the software."
        },
        "Date": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Supported date of the software package with, at minimum, a release date if known."
        },
        "Function": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CodeValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Identifies the functions handled by this software. Repeat for multiple functions. It may be advisable to note only those functions used in the specific usage of the software."
        },
        "Lang": {
          "$ref": "#/$defs/language",
          "description": "Language (human language) of the software package."
        }
      },
      "description": "Describes a specific software package, which may be commercially available or custom-made."
    },
    "SourceObjectType": {
      "type": "object",
      "properties": {
        "OrganizationReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Organization"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to an Organization described in DDI."
        },
        "IndividualReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Individual"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to an Individual described in DDI."
        },
        "RelationshipCode": {
          "$ref": "#/$defs/string",
          "enum": [
            "Parent",
            "Child",
            "Sibling"
          ],
          "description": "A specification of the relationship of the Source to the Target in terms of Parent (superior), Child (subordinate), or Sibling (on par)."
        }
      },
      "description": "Identifies the Source organization or individual in the relationship. References either an Organization or an Individual and specifies their relationship in terms of parent, child, or sibling."
    },
    "SourceRepresentationType": {
      "type": "object",
      "properties": {
        "ManagedRepresentationReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "ManagedCategoryRepresentation",
                    "ManagedCodeRepresentation",
                    "ManagedDateTimeRepresentation",
                    "ManagedDistributionRepresentation",
                    "ManagedExternalCategoryRepresentation",
                    "ManagedGeographicLocationCodeRepresentation",
                    "ManagedGeographicRepresentation",
                    "ManagedGeographicStructureCodeRepresentation",
                    "ManagedLocationRepresentation",
                    "ManagedMissingValuesRepresentation",
                    "ManagedNominalRepresentation",
                    "ManagedNumericRepresentation",
                    "ManagedRankingRepresentation",
                    "ManagedScaleRepresentation",
                    "ManagedTextRepresentation"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Substitution group head for referencing Managed Representations. For example, ManagedTextRepresentationReference, ManagedNumericRepresentationReference, etc."
        },
        "CategorySchemeReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "CategoryScheme"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to a CategoryScheme as the managed component of a representation."
        },
        "CodeListReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "CodeList"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to a CodeList as the managed component of a representation."
        },
        "GeographicStructureReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "GeographicStructure"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to a GeographicStructure as the managed component of a representation."
        },
        "GeographicLocationReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "GeographicLocation"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to a GeographicLocation as the managed component of a representation."
        },
        "ConceptReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Concept"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to a Concept which provides a context for the representation, e.g. Age for a numeric representation."
        }
      },
      "description": "Provides a reference to the managed content of a representation which may be a ManagedRepresentation or a specific CodeList, GeographicRepresentation, or GeographicLocation. Allows for the optional reference to a Concept when context is important. For example, a ManagedNumericRepresentation within the context of Age."
    },
    "SourceTargetLinkType": {
      "type": "object",
      "properties": {
        "SourceLinkVariableReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Variable"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to the variable in the Source Record containing the value that is equal to the value in the identified variable in the Target Record."
        },
        "TargetLinkVariableReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Variable"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to the variable in the Target Record containing the value that is equal to the value in the identified variable in the Source Record."
        }
      },
      "description": "Contains a set of variables, one from the source record and one from the target record used as all or part of a link between the source and target records."
    },
    "SpatialCoordinateType": {
      "type": "object",
      "properties": {
        "CoordinateValue": {
          "$ref": "#/$defs/string",
          "description": "The value of the coordinate expressed as a string."
        },
        "CoordinateType": {
          "$ref": "#/$defs/string",
          "enum": [
            "DecimalDegree",
            "DegreesMinutesSeconds",
            "DecimalMinutes",
            "Meters",
            "Feet"
          ],
          "description": "Identifies the type of point coordinate system using a controlled vocabulary. Point formats include decimal degree, degrees minutes seconds, decimal minutes, meters, and feet."
        }
      },
      "required": [
        "CoordinateType"
      ],
      "description": "Lists the value and format type for the coordinate value. Note that this is a single value (X coordinate or Y coordinate) rather than a coordinate pair."
    },
    "SpecificSequenceType": {
      "type": "object",
      "properties": {
        "ItemSequenceType": {
          "$ref": "#/$defs/string",
          "enum": [
            "InOrderOfAppearance",
            "Random",
            "Rotate",
            "Other"
          ],
          "description": "Identifies the type of sequence to use. Values include InOrderOfAppearance, Random, Rotate, and Other."
        },
        "AlternateSequenceType": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CommandCodeType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Information on the command used to generate an alternative means of determining sequence changes. If used, the ItemSequenceType should be \u0022Other\u0022."
        }
      },
      "description": "Describes the ordering of items when not otherwise indicated. There are a set number of values for ItemSequenceType, but also a provision for describing an alternate ordering using a command language."
    },
    "StandardKeyValuePairType": {
      "type": "object",
      "properties": {
        "AttributeKey": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "This key (sometimes referred to as a name) expressed as a string. Supports the use of an external controlled vocabulary which is the recommended approach."
        },
        "AttributeValue": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The value assigned to the named Key expressed as a string. Supports the use of an external controlled vocabulary."
        }
      },
      "description": "A basic data representation for computing systems and applications expressed as a tuple (attribute key, value). Attribute keys may or may not be unique."
    },
    "StandardUsedType": {
      "type": "object",
      "properties": {
        "OtherMaterialReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "OtherMaterial"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Description and link to the StandardUsed using the DDI Other Material structure."
        }
      },
      "description": "Provide the citation and location of the published standard using the OtherMaterialType."
    },
    "StandardWeightType": {
      "description": "Provides an identified value for a standard weight expressed as an xs:float. This object may be referenced by a variable or statistic and used as a weight for analysis.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "StandardWeightValue": {
              "$ref": "#/$defs/float",
              "description": "Provides the standard weight used for weighted analysis of data expressed as an xs:float. This element is referenced by the variable and/or statistics calculated using the standard weight."
            }
          }
        }
      ]
    },
    "StatisticDoubleType": {
      "type": "object",
      "properties": {
        "DoubleValue": {
          "$ref": "#/$defs/double",
          "description": ""
        },
        "IsWeighted": {
          "$ref": "#/$defs/boolean",
          "description": "Set to \u0022true\u0022 if the statistic is weighted using the weight designated in VariableStatistics."
        },
        "ComputationBase": {
          "$ref": "#/$defs/string",
          "enum": [
            "total",
            "validOnly",
            "missingOnly"
          ],
          "description": "Defines the cases included in determining the statistic. The options are total=all cases, valid and missing (invalid); validOnly=Only valid values, missing (invalid) are not included in the calculation; missingOnly=Only missing (invalid) cases included in the calculation."
        }
      },
      "description": "The value (expressed as a double) of the statistics and whether it is weighted and/or includes missing values."
    },
    "StatisticType": {
      "type": "object",
      "properties": {
        "DecimalValue": {
          "$ref": "#/$defs/decimal",
          "description": ""
        },
        "IsWeighted": {
          "$ref": "#/$defs/boolean",
          "description": "Set to \u0022true\u0022 if the statistic is weighted using the weight designated in VariableStatistics."
        },
        "ComputationBase": {
          "$ref": "#/$defs/string",
          "enum": [
            "total",
            "validOnly",
            "missingOnly"
          ],
          "description": "Defines the cases included in determining the statistic. The options are total=all cases, valid and missing (invalid); validOnly=Only valid values, missing (invalid) are not included in the calculation; missingOnly=Only missing (invalid) cases included in the calculation."
        }
      },
      "description": "The value (expressed as a decimal) of the statistics and whether it is weighted and/or includes missing values."
    },
    "StatisticalDataLocationType": {
      "type": "object",
      "properties": {
        "PhysicalInstanceReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "PhysicalInstance"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "References a physical instance containing the statistics inline or that identifies the data file which contains the statistics."
        },
        "IsInline": {
          "$ref": "#/$defs/boolean",
          "description": "Set to \u0022true\u0022 if the summary/category statistics are found inline in the referenced physical instance. Set to \u0022false\u0022 if they are in the data file associated with the physical instance."
        }
      },
      "required": [
        "IsInline"
      ],
      "description": "References a PhysicalInstance module that describes a data file containing the summary and/or category statistics OR contains the statistics in-line.  For example, when the same data are stored as an ASCII file and as an ORACLE file, the summary and category statistics would only be listed in one of the physical instance files, and referenced in the other(s)."
    },
    "StatisticalSummaryType": {
      "type": "object",
      "properties": {
        "StatisticalDataLocation": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/StatisticalDataLocationType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Reference to a PhysicalInstance that describes a data file containing the summary and/or category statistics OR contains the statistics in-line as in the case of the same data stored as an ASCII file and as an ORACLE file where the summary and category statistics are listed only in one of the physical instance files."
        },
        "VariableStatisticsReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "VariableStatistics"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "One or more statistical measures that describe the responses to a particular variable. Include both variable and category level statistics."
        }
      },
      "description": "Provides a statistical summary of the data in the related file as a set of variable level and category level statistics. May refer to a set of statistics provided in another physical instance (for example if the same data is held in multiple storage formats) or if the summary statistics are held as a separate data set."
    },
    "StimulusMaterialType": {
      "type": "object",
      "properties": {
        "OtherMaterialReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "OtherMaterial"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Description and link to the StimulusMaterial using the DDI Other Material structure."
        }
      },
      "description": "Description and link to the StimulusMaterial using the DDI Other Material structure."
    },
    "StratificationRationaleType": {
      "type": "object",
      "properties": {
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A full description of the purpose for stratifying your sample frame prior to sampling"
        },
        "UniverseReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Universe"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Reference each sub universe which defines a strata of the population. For example if you are stratifying on gender there would be 2 Universe references, one to Males and one to Females."
        },
        "PopulationReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Population"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Reference to each population that defines a stratum of the population being sampled. For example, when stratifying by gender, separate Population references may identify males and females in the United States in January 2026."
        }
      },
      "description": "Describe the purpose for stratifying your sample frame prior to sampling."
    },
    "StratificationType": {
      "type": "object",
      "properties": {
        "StratificationRationale": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/StratificationRationaleType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Describe the purpose for stratifying your sample frame prior to sampling."
        },
        "AllocationMethod": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Method to determine how the sample should be allocated/distributed (Source: US Census Metadata Standard document)"
        },
        "StrataNumber": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Assign a number to the strata being described"
        }
      },
      "required": [
        "StrataNumber"
      ],
      "description": "Describe all stratifications here. Note that each stratified group will be sampled using the same sampling plan. For example stratifying a state by ZIP Code areas in each of 5 mean income quintiles and then doing a random sample of the households in set of ZIP Codes. Allows for oversampling of identified subpopulations. Example: urban/rural, gender, state, marital status. Might be defined at the SamplngScheme level."
    },
    "StructuredMixedGridResponseDomainType": {
      "type": "object",
      "properties": {
        "GridResponseDomainInMixed": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/GridResponseDomainInMixedType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Identifies a response type found in the grid and defines the cell or cells that contain it."
        },
        "NoDataByDefinition": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/GridAttachmentType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Identifies the cell or cells in the grid that by definition contain no response domains. These cells MAY contain a label."
        }
      },
      "description": "Contains a mixture of response domains for the grid cells. Each response domain can be attached to a specific region of the grid, for example a single column or row. It is assumed that each cell will contain either a resonse domain or be declared as containing No Data By Definition. Any cell may also contain an internal label."
    },
    "StructuredMixedResponseDomainType": {
      "type": "object",
      "properties": {
        "ResponseTextSet": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/ResponseTextSetType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Text closely related to the content of the ResponseDomain(s), in general, text required to make sense of the related response domain. ResponseTextSet provides a means of bundling multiple language versions of ResponseText together. This wrapper serves to differentiate between a case where multiple language content for a single ResponseText are provided and when two differing sets of ResponseText are in immediate sequence (with no intervening question).  Note that when using ResponseText, the full ResponseText must be repeated for multi-language versions of the content within the same ResponseTextSet."
        },
        "ResponseDomainInMixed": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/ResponseDomainInMixedType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "A structure that provides both the response domain and information on how it should be attached, or related, to other specified response domains in the question."
        }
      },
      "description": "A structure to allow for mixing multiple response domains in a single question. These may also include intervening text statements that are tightly bound to a response domain. A common example is the use of a CodeDomain and a TextDomain where the TextDomain is associated with the value with the label \u0022Other\u0022 in the CodeDomain. ResponseDomains should be chosen that do NOT duplicate responses such as CodeLists with overlapping codes. Be aware that certain instruments may collect responses in such a way that confusion between a code response and text response may be possible. The process of resolving such conflicts should be addressed in the data processing instructions. There is an assumption that if a text or numeric response duplicates a coded response to a question, that the value is that of the coded category. At least one ResponseDomain must be provided."
    },
    "StudyClassType": {
      "type": "object",
      "properties": {
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the purpose in classifying the object and how it conforms to the classification."
        },
        "ClassType": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A term used to classify the study class. As these are archive specific, DDI strongly recommends the use of a controlled vocabulary."
        }
      },
      "description": "An archive specific classification. This may be a topical classification, a classification of intended processing levels, or information on the processing status. Consists of a description of the study class and a term used to specify the class type."
    },
    "SummaryStatisticType": {
      "type": "object",
      "properties": {
        "TypeOfSummaryStatistic": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Type of summary statistic, such as count, mean, mode, median, etc. Supports the use of an external controlled vocabulary. DDI strongly recommends the use of a controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (SummaryStatisticType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
        },
        "Statistic": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/StatisticType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The value (expressed as a decimal) of the statistics and whether it is weighted and/or includes missing values."
        },
        "StatisticDouble": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/StatisticDoubleType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The value (expressed as a double) of the statistics and whether it is weighted and/or includes missing values."
        }
      },
      "description": "Describes a summary statistic for a variable."
    },
    "TargetObjectType": {
      "type": "object",
      "properties": {
        "OrganizationReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Organization"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to an Organization described in DDI."
        },
        "IndividualReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Individual"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to an Individual described in DDI."
        },
        "Role": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/RoleType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Describes the role of Target Individual or Organization in relation to the Source Object."
        }
      },
      "description": "Identifies the Target organization or individual in the relationship. References either an Organiztion or an Individual and specifies the role of the Target in relationship to the Source. Multiple roles for specified periods may be identified."
    },
    "TargetRepresentationType": {
      "type": "object",
      "properties": {
        "ManagedRepresentationReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "ManagedCategoryRepresentation",
                    "ManagedCodeRepresentation",
                    "ManagedDateTimeRepresentation",
                    "ManagedDistributionRepresentation",
                    "ManagedExternalCategoryRepresentation",
                    "ManagedGeographicLocationCodeRepresentation",
                    "ManagedGeographicRepresentation",
                    "ManagedGeographicStructureCodeRepresentation",
                    "ManagedLocationRepresentation",
                    "ManagedMissingValuesRepresentation",
                    "ManagedNominalRepresentation",
                    "ManagedNumericRepresentation",
                    "ManagedRankingRepresentation",
                    "ManagedScaleRepresentation",
                    "ManagedTextRepresentation"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Substitution group head for referencing Managed Representations. For example, ManagedTextRepresentationReference, ManagedNumericRepresentationReference, etc."
        },
        "CategorySchemeReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "CategoryScheme"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to a CategoryScheme as the managed component of a representation."
        },
        "CodeListReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "CodeList"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to a CodeList as the managed component of a representation."
        },
        "CodeSubsetInformation": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeSubsetInformationType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Allows further specification of the codes to use from the CodeList."
        },
        "IncludedGeographicStructureCodes": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/IncludedGeographicStructureCodesType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Identifies the Geographic Structure codes included by the Authorized source of the code, the geographic location being used and the locations to exclude."
        },
        "IncludedGeographicLocationCodes": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/IncludedGeographicLocationCodesType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Identifies the Geographic Location codes included by the Authorized source of the code, the geographic location being used and the locations to exclude."
        }
      },
      "description": "Provides a reference to a codified representation. Supports the ability to limit code coverage as appropriate for the coding structure referenced."
    },
    "TargetSampleSizeType": {
      "type": "object",
      "properties": {
        "StrataNumber": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "Indicate specific strata if the sample frame has been stratified prior to sampling within the specified stage."
        },
        "DesiredSampleSize": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/SizeType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The number and type of sample units."
        },
        "SampleSizeFormulaReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "GeneralInstruction",
                    "GenerationInstruction"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to the General or GenerationInstruction containing the formula or instruction used to determine sample size. The basic Reference structure is extended to allow for the use of Binding to link specific source parameters to the InParameter of the instruction at the point of use. If there is a conflict between a Binding in the instruction of a specific source to an InParameter and the Binding information provided in the ProcessingInstructionReference, the Binding information in the reference overrides that found in the instruction. TypeOfObject should be set to GeneralInstruction or GenerationInstruction."
        }
      },
      "description": "The desired sample size for this particular sample plan express in relation to its strata number if relevant. Provides means of expressing the formula used for determining the sample size."
    },
    "TelephoneType": {
      "type": "object",
      "properties": {
        "TelephoneNumber": {
          "$ref": "#/$defs/string",
          "description": "The telephone number including country code if appropriate."
        },
        "TypeOfTelephone": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Indicates type of telephone number provided (home, fax, office, cell, etc.). Supports the use of a controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (TypeOfTelephone) to support this element at http://www.ddialliance.org/controlled-vocabularies."
        },
        "EffectivePeriod": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Clarifies when the identification information is accurate."
        },
        "Privacy": {
          "$ref": "#/$defs/string",
          "enum": [
            "public",
            "restricted",
            "private"
          ],
          "description": "A basic set of privacy codes for the parent element. These may be stricter than the general access restrictions for the overall metadata. If available codes are insufficient this may also contain any string."
        },
        "IsPreferred": {
          "$ref": "#/$defs/boolean",
          "description": "Set to \u0022true\u0022 if this is the preferred telephone number for contact."
        }
      },
      "description": "Details of a telephone number including the number, type of number, a privacy setting and an indication of whether this is the preferred contact number."
    },
    "TemporalCoverageType": {
      "description": "Describes the temporal coverage of the data described in a particular DDI module. A date may have a subject attached to it if the referent date has limited application.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "ReferenceDate": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ReferenceDateType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "The time period to which the data refer. This item reflects the time period covered by the data, not dates in the life cycle of a study or collection."
            }
          }
        }
      ]
    },
    "TextContentType": {
      "type": "object",
      "properties": {
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the content and purpose of the text segment."
        }
      },
      "description": "Abstract type existing as the head of a substitution group. May be replaced by any valid member of the substitution group TextContent. Provides the common element Description to all members using TextContent as an extension base."
    },
    "TextDomainType": {
      "description": "A response domain capturing a textual response. Contains the equivalent content of a TextRepresentation including the length of the text and restriction of content using a regular expression. Adds a set of elements available to all Response Domains; Label, Description, OutParameter, designation of response cardinality, and a declaration of an offset date for the data content. Has an equivalent TextDomainReference which references a ManagedTextRepresentation.",
      "allOf": [
        {
          "$ref": "#/$defs/TextRepresentationBaseType"
        },
        {
          "type": "object",
          "properties": {
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the domain."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the domain."
            },
            "OutParameter": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows for the response to be bound to one of the QuestionItem\u0027s OutParameters, so the collected information can be used elsewhere, for example as inputs to subsequent questions in an Instrument or to a GenerationInstruction. If multiple responses are possible, this would represent and ordered array of the responses."
            },
            "ResponseCardinality": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ResponseCardinalityType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows the designation of the minimum and maximum number of responses allowed for this response domain."
            },
            "ContentDateOffset": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ContentDateOffsetType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the difference between the date applied to the data as a whole and this specific item such as previous year\u0027s income or residence 5 years ago."
            }
          }
        }
      ]
    },
    "TextRepresentationBaseType": {
      "description": "Structures a textual representation. MinLength and maxlength attributes are inclusive integers describing the number of permitted characters. The regExp attribute holds a regular expression describing the valid contents of the string.",
      "allOf": [
        {
          "$ref": "#/$defs/RepresentationType"
        },
        {
          "type": "object",
          "properties": {
            "MaxLength": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "The maximum number of characters allowed."
            },
            "MinLength": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "The minimum number of characters allowed."
            },
            "RegExp": {
              "$ref": "#/$defs/string",
              "description": "A regular expression limiting the allowed characters or character order of the content."
            }
          }
        }
      ]
    },
    "TextualType": {
      "type": "object",
      "properties": {
        "LineParameter": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/LineParameterType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Specification of the line and offset for the beginning and end of the segment."
        },
        "CharacterParameter": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CharacterParameterType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Specification of the character offset for the beginning and end of the segment."
        }
      },
      "description": "Defines the segment of textual content used by the parent object. Can identify a set of lines and or characters used to define the segment."
    },
    "TimeMethodType": {
      "description": "Describes the time method or time dimension of the data collection. This may cover specific timing issues such as when a data collection instrument is fielded (time of year, month, week, day), intended repetition, length of data collection period etc. In addition to the descriptive narrative supports the use of a brief term or external controlled vocabulary to classify the methodology used.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfTimeMethod": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows brief identification of time method used with the option of using a controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (TimeMethod) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Full description of the data time method used."
            }
          }
        }
      ]
    },
    "TopLeftTableAnchorType": {
      "type": "object",
      "properties": {
        "Column": {
          "$ref": "#/$defs/string",
          "description": "The column identifier expressed as a string."
        },
        "Row": {
          "$ref": "#/$defs/nonNegativeInteger",
          "description": "The row number expressed as an integer."
        }
      },
      "required": [
        "Column",
        "Row"
      ],
      "description": "Notes the column and row position of the top left corner of the data table in the spreadsheet."
    },
    "TopicalCoverageType": {
      "description": "Describes the topical coverage of the module using Subject and Keyword. Note that upper level modules should include all the members of lower level modules. Subjects are members of structured classification systems such as formal subject headings in libraries or topical thesauri. Keywords are generally unstructured and reflect the terminology found in the document and other related (broader or similar) terms.",
      "allOf": [
        {
          "$ref": "#/$defs/IdentifiableType"
        },
        {
          "type": "object",
          "properties": {
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A subject or list of subjects that indicate the topical coverage of the data described in a particular module/section. Uses and InternationalCodeValue and may indicate the language of the code used."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A keyword that indicates the topical coverage of the data described in a particular module/section. Uses and InternationalCodeValue and may indicate the language of the code used."
            }
          }
        }
      ]
    },
    "TranslationAidResourceType": {
      "type": "object",
      "properties": {
        "OtherMaterialReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "OtherMaterial"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Description and link to the complexType using the DDI Other Material structure."
        }
      },
      "description": "Provides a reference to the translation aid resource using the structure of OtherMaterial."
    },
    "TranslationAidType": {
      "type": "object",
      "properties": {
        "TypeOfTranslationAid": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Specifies the type of translation aid available. Supports the use of a controlled vocabulary."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Description of the translation aid."
        },
        "TranslationAidResource": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/TranslationAidResourceType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Provides a reference to the translation aid resource using the structure of OtherMaterial."
        }
      },
      "description": "Describes available aids for translation typed by a controlled vocabulary and supporting a description and resource identification where appropriate. This may include items such as the availability of an interpreter, key word material, etc."
    },
    "TranslationMethodType": {
      "type": "object",
      "properties": {
        "TypeOfTranslationMethod": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Specifies the type of translation method used. Supports the use of a controlled vocabulary."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Description of the translation method."
        }
      },
      "description": "Describes both minimum and preferred language abilities sought for the translation work as a set of source and target language requirements."
    },
    "TranslationRequirementsType": {
      "type": "object",
      "properties": {
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the Translation Requirements."
        },
        "IsOral": {
          "$ref": "#/$defs/boolean",
          "description": "Indicates if the translation is an oral translation."
        },
        "IsWritten": {
          "$ref": "#/$defs/boolean",
          "description": "Indicates if the translation is a written translation."
        }
      },
      "description": "Provides a detailed description of the requirements for an acceptable translation and indicate if the translation should be oral and/or written."
    },
    "TranslationType": {
      "type": "object",
      "properties": {
        "Language": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CodeValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Uses the more generic Language element found in a Citation. Allows for use of an external controlled vocabulary."
        },
        "I18nText": {
          "$ref": "#/$defs/string",
          "description": "Value of the language identifier used."
        },
        "I18nCatalog": {
          "$ref": "#/$defs/string",
          "description": "Identifies the l18n catalog used."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Description of the translation process of the data and metadata."
        },
        "Lang": {
          "$ref": "#/$defs/language",
          "description": "Language of the tag content."
        }
      },
      "description": "Provides the language of translation as well as a description of translation for the contents of the DDI Instance."
    },
    "TranslatorRequirementsType": {
      "type": "object",
      "properties": {
        "TranslationSourceLanguageAbility": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/LanguageAbilitySoughtType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Describes both minimum and preferred language abilities sought for the translation work for the source language."
        },
        "TranslationTargetLanguageAbility": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/LanguageAbilitySoughtType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Describes both minimum and preferred language abilities sought for the translation work for the target language."
        }
      },
      "description": "Describes both minimum and preferred language abilities sought for the translation work as a set of source and target language requirements."
    },
    "URIType": {
      "type": "object",
      "properties": {
        "AnyURIValue": {
          "$ref": "#/$defs/anyURI",
          "description": ""
        },
        "IsPublic": {
          "$ref": "#/$defs/boolean",
          "description": "Set to \u0022true\u0022 (default value) if this file is publicly available. This does not imply that there are not restrictions to access. Set to \u0022false\u0022 if this is not publicly available, such as a backup copy, an internal processing data file, etc."
        }
      },
      "description": "A URN or URL for a file with a flag to indicate if it is a public copy."
    },
    "URLType": {
      "type": "object",
      "properties": {
        "AnyURIValue": {
          "$ref": "#/$defs/anyURI",
          "description": ""
        },
        "Privacy": {
          "$ref": "#/$defs/string",
          "enum": [
            "public",
            "restricted",
            "private"
          ],
          "description": "A basic set of privacy codes for the parent element. These may be stricter than the general access restrictions for the overall metadata. If available codes are insufficient this may also contain any string."
        },
        "IsPreferred": {
          "$ref": "#/$defs/boolean",
          "description": "Set to \u0022true\u0022 if this is the preferred URL."
        }
      },
      "description": "A web site URL"
    },
    "UnfilteredCategoryStatisticsType": {
      "type": "object",
      "properties": {
        "VariableCategory": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/VariableCategoryType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "A structure that is repeated for each category value for which one or more statistics are recorded. Each VariableCategory has one category value and any number of associated statistics."
        }
      },
      "description": "The unfiltered values of any number of statistics by category value representing the full response distribution of the variable."
    },
    "UsageGuideType": {
      "type": "object",
      "properties": {
        "UsageExample": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Provide relevant illustrations of the use of the weights described produced in the weighting process."
        },
        "UsageRestrictions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Note specific rules or restrictions for use."
        },
        "UsageRecommendations": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Recommend best practices for the use of the weights described produced in the weighting process."
        },
        "CommandCode": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CommandCodeType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Use CommandCode content to describe and/or specify code for using weights. Allows specification of input variables using parameters and binding as well description, code snippets or a link to external code."
        }
      },
      "description": "A guide to the appropriate usage of the weights generated by the processing event."
    },
    "UsedType": {
      "type": "object",
      "properties": {
        "AlternateName": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Provides an alternate name for the element, for presentation purposes (not for use in the XML instance)."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the content and purpose of the object."
        },
        "Instructions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Instructions for the use of the object within the context of the profile."
        },
        "DefaultValue": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "This field provides a default value for the specified element or attribute if it holds simple content, and the value must be a valid one per the DDI schemas. This assumes that the value is not specified in the DDI instance itself, which would override the default. The value should also be provided as part of the XPath expression supplied for the field."
        },
        "IsRequired": {
          "$ref": "#/$defs/boolean",
          "description": "If true indicates that an element described as optional in DDI is required by the profile."
        },
        "Xpath": {
          "$ref": "#/$defs/string",
          "description": "Contains an XPath which points to an element or attribute in DDI instances which is used by the profile. All subelements of a used element are assumed to be supported unless explicitly addressed by the profile. The number of supported repetitions may be included in the XPath expression."
        },
        "LimitMaxOccurs": {
          "$ref": "#/$defs/string",
          "description": "This field allows for limiting the maximum occurrences of this field. If the number is greater than the maxOccurs value in DDI it will be ignored and the DDI specification will remain in use."
        },
        "FixedValue": {
          "$ref": "#/$defs/boolean",
          "description": "This field, if set to true, provides an indication that the default value supplied in the fixedValue attribute is the only one which is allowed for the profile - other values will be overridden with the default (a warning should be issued to the creator of the instance); the value must be a valid one per the DDI schemas."
        }
      },
      "required": [
        "Xpath"
      ],
      "description": "Specifies a DDI object and all its sub-objects supported by the DDIProfile. May specify an alternate local name and description of an object, instructions for its use, and set limits on its allowed usage."
    },
    "UserIDType": {
      "type": "object",
      "properties": {
        "StringValue": {
          "$ref": "#/$defs/string",
          "description": ""
        },
        "TypeOfUserID": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "This is a required attribute containing the local user identification system that maintains and defines the UserID."
        },
        "UserIDVersion": {
          "$ref": "#/$defs/string",
          "description": "The UserID may designate the version number of the UserID. This is important in cases where the DDI identification system and the UserID system use different structures to record version numbers or if there is a difference between the DDI version number and the UserID\u0027s version number."
        },
        "TypeOfUserVersion": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "This is the name of the versioning scheme as defined by the user\u0027s system, in cases where the user\u0027s system employs more than one versioning scheme. It is specific to the system identified by the typeOfUserID attribute"
        }
      },
      "required": [
        "TypeOfUserID"
      ],
      "description": "A user provided identifier that is locally unique within its specific type. The required type attribute points to the local user identification system that defines the values. The optional userIDVersion allows specification of a version number for the identifier. If multiple UserIDs are used they must be differentiated by the type attribute."
    },
    "ValueType": {
      "type": "object",
      "properties": {
        "StringValue": {
          "$ref": "#/$defs/string",
          "description": ""
        }
      },
      "description": "The Value expressed as an xs:string with the ability to preserve whitespace if critical to the understanding of the content."
    },
    "VariableAttributeType": {
      "type": "object",
      "properties": {
        "TypeOfVariableAttribute": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "A brief textual identification of the variable attribute type. Supports the use of an external controlled vocabulary."
        },
        "VariableReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Variable"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to a variable that describes the attribute."
        }
      },
      "description": "An attribute may be any other Variable which should be attached to or coupled with a Variable such as a weight, filter, or other related variable. The VariableAttribute may be typed using a Controlled Vocabulary structure."
    },
    "VariableCategoryType": {
      "type": "object",
      "properties": {
        "CategoryValue": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CategoryValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The value of the category."
        },
        "CategoryStatistic": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/CategoryStatisticType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "The value of a statistic associated with the category value indicated in the sibling CategoryValue element."
        }
      },
      "description": "A category value for which one or more statistics are recorded. Each VariableCategory has one category value and any number of associated statistics."
    },
    "VariableItemType": {
      "type": "object",
      "properties": {
        "VariableReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Variable"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to the variable associated with the values given."
        },
        "Value": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/ValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Value associated with the referenced variable in record storage order."
        }
      },
      "description": "The set of values associated with a single variable (one for each record in storage order of records)."
    },
    "VariableOrderType": {
      "type": "object",
      "properties": {
        "VariableReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Variable"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "References variables in storage order. One reference per variable."
        }
      },
      "description": "A set of References to Variable found in the record in storage order."
    },
    "VariableRepresentationType": {
      "type": "object",
      "properties": {
        "VariableRole": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Describes a specific function of the variable, such as identity, weight, geographic variable, time, date, currency, etc. This is a more extensive means of identifying the function of the variable than the Boolean indicators on the variable. Allows for agency specific designations. Supports the use of a controlled vocabulary."
        },
        "WeightVariableReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Variable"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Reference to one or more weight variables that may be used in analyzing this variable."
        },
        "StandardWeightReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/StandardWeightType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Reference to the StandardWeight found in the Weighting description, which is relevant for analyzing this variable. A standard weight is a single weight used for all variables of a specific type or for a specified sub-universe."
        },
        "VariableAttribute": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/VariableAttributeType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "An attribute may be any object which should be attached to or coupled with a Variable such as a related suppression flag, source flag, footnote, etc. It may be defined as a Variable or contain textual content (such as a footnote)."
        },
        "ImputationReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "GeneralInstruction",
                    "GenerationInstruction"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to the imputation process described as a General Instruction in a ProcessingInstructionScheme."
        },
        "ConcatenatedValue": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ConcatenatedValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Provides a reference to other variables and describes the method for deriving the value of this variable by concatenating a collection of other variables. This is useful in creating concatenated keys."
        },
        "ProcessingInstructionReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "GeneralInstruction",
                    "GenerationInstruction"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "A reference to either a general or generation instruction that was provided to those who converted information from one form to another to create a particular variable. This might include the reordering of numeric information into another form or the conversion of textual information into numeric information. TypeOfObject should be set to GeneralInstruction or GenerationInstruction."
        },
        "ValueRepresentation": {
          "type": "object",
          "oneOf": [
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CategoryDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CategoryDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CategoryRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CategoryRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CodeDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CodeDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CodeRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CodeRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/CoordinatePairsType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CoordinatePairsType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/DateTimeDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "DateTimeDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/DateTimeRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "DateTimeRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/DistributionDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "DistributionDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/DistributionRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "DistributionRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/ExternalCategoryRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ExternalCategoryRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeographicDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicLocationCodeDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeographicLocationCodeDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicLocationCodeRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeographicLocationCodeRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeographicRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicStructureCodeDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeographicStructureCodeDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicStructureCodeRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeographicStructureCodeRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/LocationDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "LocationDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/LocationRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "LocationRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/NominalDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "NominalDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/NominalRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "NominalRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/NumericDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "NumericDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/NumericRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "NumericRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/RankingDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "RankingDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/RankingRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "RankingRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/ScaleDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ScaleDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/ScaleRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ScaleRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/TextDomainType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "TextDomainType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            },
            {
              "allOf": [
                {
                  "$ref": "#/$defs/TextRepresentationBaseType"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "TextRepresentationBaseType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ]
            }
          ],
          "unevaluatedProperties": false,
          "description": "Describes the actual representation of the variables\u0027 values. Allows for the listing of values to be treated as missing in order to support 3.1 structures. The preferred method is the use of a reference to ManagedMissingValues description using MissingValuesReference. If both are used and there is a conflict in the content, MissingValuesReference will override the content provided in the ValueRepresentationReference."
        },
        "ValueRepresentationReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "ManagedCategoryRepresentation",
                    "ManagedCodeRepresentation",
                    "ManagedDateTimeRepresentation",
                    "ManagedDistributionRepresentation",
                    "ManagedExternalCategoryRepresentation",
                    "ManagedGeographicLocationCodeRepresentation",
                    "ManagedGeographicRepresentation",
                    "ManagedGeographicStructureCodeRepresentation",
                    "ManagedLocationRepresentation",
                    "ManagedMissingValuesRepresentation",
                    "ManagedNominalRepresentation",
                    "ManagedNumericRepresentation",
                    "ManagedRankingRepresentation",
                    "ManagedScaleRepresentation",
                    "ManagedTextRepresentation"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Allows for the use of a ManagedRepresentation by reference. ValueRepresentationReference is the abstract head of a substitution group and may be replaced with any valid substitution for ValueRepresentationReference."
        },
        "MissingValuesReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "ManagedMissingValuesRepresentation"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to an existing MissingValuesRepresentation using the Reference structure. If this content conflicts with content provided in the ValueRepresentation regarding Missing Values the content of the MissingValuesRepresentation overrides. TypeOfObject will be MissingValuesRepresentation"
        },
        "ContentDateOffset": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/ContentDateOffsetType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Identifies the difference between the date applied to the data as a whole and this specific item such as previous year\u0027s income or residence 5 years ago."
        },
        "AggregationMethod": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Indicates the type of aggregation method used. Supports the use of a controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (AggregationMethod) to support this element at http://www.ddialliance.org/controlled-vocabularies."
        },
        "Additivity": {
          "$ref": "#/$defs/string",
          "enum": [
            "Stock",
            "Flow",
            "NonAdditive"
          ],
          "description": "Records type of additivity, such as \u0027stock\u0027, \u0027flow\u0027, \u0027non-additive\u0027."
        }
      },
      "description": "Describes the representation of the variable in the data set. Describes the function of the variable, variables or standard weights that may be used to weight this variable during analysis, imputation and processing information, other variables used to create the value of this variable through concatenation, valid value representations (valid for analysis of respondents), missing value representations, aggregation methods used to generate the content of the variable, and additivity information."
    },
    "VariableSetType": {
      "type": "object",
      "properties": {
        "VariableItem": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/VariableItemType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "The set of values associated with a single variable (one for each record in storage order of records)."
        }
      },
      "description": "Storage format arranged variable by variable. Item values are listed in record order with the assumption that each record will occupy the position in each array."
    },
    "VariableValueReferenceType": {
      "type": "object",
      "properties": {
        "VariableReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Variable"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference to the variable containing the record type locator."
        },
        "RelatedValue": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/RelatedValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Value of variable indicating this record type, multiple entries allow for multiple valid values or ranges. Indicates if the variable should be equal to, greater than, less than, greater than or equal to, less than or equal to, or not equal to the stated value.(default value is \u0022Equal\u0022). Also allows the conditional value to be defined as blank (or no content)."
        }
      },
      "description": "A reference to the variable containing the record type locator and the value being used. TypeOfObject should be set to Variable."
    },
    "VariablesInRecordType": {
      "type": "object",
      "properties": {
        "VariableSchemeReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "VariableScheme"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Reference to a VariableScheme whose members are included in the logical record. Note that individual items may be excluded from the scheme if not used by the logical record."
        },
        "VariableUsedReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "Variable"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "Reference to a variable to include in the logical record. This may be used to supplement the contents of an included VariableScheme or to list all the variables individually."
        },
        "AllVariablesInLogicalProduct": {
          "$ref": "#/$defs/boolean",
          "description": "Set to \u0022true\u0022 when the logical record contains all the variables identified within the logical product module."
        }
      },
      "description": "Identifies the variables contained in the logical record by indicating that all variable contained in the logical product are included, inclusion of a scheme of variable to include, or listing individual variables to include. When the attribute allVariablesInLogicalProduct is set to \u0022false\u0022 use the VariableSchemeReference (which allows for exclusions) and VariableUsedReference to specify the included variables."
    },
    "VersionDistinctionType": {
      "type": "object",
      "properties": {
        "VersionDistinctionName": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A name for the Version Distinction."
        },
        "Label": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A display label for the Version Distinction."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the content and purpose of the Version Distinction."
        },
        "EffectivePeriod": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/DateType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Clarifies when the identification information is accurate."
        },
        "RegExp": {
          "$ref": "#/$defs/string",
          "description": "Allows the version structure to be defined by a regular expression."
        }
      },
      "description": "Describes the data versioning scheme(s) used by an organization. If more than one, Name should differentiate between a standard versioning structure used by the organization and special structures used by specific projects or studies. Information on what drives and major and minor change and how they are structured."
    },
    "VersionRationaleType": {
      "type": "object",
      "properties": {
        "RationaleDescription": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Textual description of the rationale/purpose for the version change to inform users as to the extent and implication of the version change."
        },
        "RationaleCode": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "RationaleCode is primarily for internal processing flags within an organization or system. Supports the use of an external controlled vocabulary."
        }
      },
      "description": "Textual description of the rationale/purpose for the version change and a coded value to provide an internal processing flag within and organization or system. Note that versioning can only take place on objects owned by the specified DDI Agency. If you are creating a local instance of an object from another agency for current or future modification use BasedOnObject. If the changes being made result in what you determine to be new object rather than a version of a previous object, i.e. the change is too extensive to consider it a version of the existing object, create a new object and use BasedOnObject to provide a link to the object or objects that were a basis for the new object."
    },
    "VideoType": {
      "type": "object",
      "properties": {
        "TypeOfVideoClip": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/CodeValueType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "The type of video clip provided. Supports the use of a controlled vocabulary."
        },
        "VideoClipBegin": {
          "$ref": "#/$defs/string",
          "description": "The point to begin the video clip. If no point is provided the assumption is that the start point is the beginning of the clip provided."
        },
        "VideoClipEnd": {
          "$ref": "#/$defs/string",
          "description": "The point to end the video clip. If no point is provided the assumption is that the end point is the end of the clip provided."
        }
      },
      "description": "Describes the type and length of the video segment."
    },
    "VocabularyType": {
      "type": "object",
      "properties": {
        "VocabularyTitle": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Full title of vocabulary."
        },
        "Abbreviation": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Abbreviation of vocabulary title."
        },
        "Keyword": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/InternationalCodeValueType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Keywords that describe the vocabulary."
        },
        "Description": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "A description of the content and purpose of the Vocabulary."
        },
        "URI": {
          "$ref": "#/$defs/anyURI",
          "description": "URI to external resource providing information about the vocabulary (general description, main web page)."
        },
        "XMLURI": {
          "$ref": "#/$defs/anyURI",
          "description": "URI to the vocabulary represented as an XML document."
        },
        "Scheme": {
          "$ref": "#/$defs/string",
          "description": "Textual description of the XML scheme in which the classification is written."
        },
        "SchemeURI": {
          "$ref": "#/$defs/anyURI",
          "description": "URI to the XML scheme used in the vocabulary (DTD or XML Schema for the XML document above; schemes like DDI, Claset, Neuchatel, and DocBook). Typically, this will be an XML namespace."
        },
        "Comments": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/langString"
          },
          "minItems": 0,
          "description": "Information regarding the selection and usage of the vocabulary including appropriate usage constraints."
        }
      },
      "description": "Provides information about the vocabulary used to create a concept scheme."
    },
    "XMLPrefixMapType": {
      "type": "object",
      "properties": {
        "XMLPrefix": {
          "$ref": "#/$defs/string",
          "description": "Specify the exact prefix used."
        },
        "XMLNamespace": {
          "$ref": "#/$defs/string",
          "description": "Specify the namespace which the prefix represents."
        }
      },
      "description": "Maps a specified prefix to a namespace. For each XML namespace used in the profile\u0027s XPath expressions, the XML namespaces must have their prefix specified using this element."
    },
    "Agent": {
      "description": "Base class for Individual and Organization. This allows strongly typed references.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {}
        }
      ]
    },
    "ApprovalReview": {
      "description": "Provides information about the Approval Review undertaken in relation to the activity. Identifies the organization processing the review, the role of the approval review organization, case number, description, and related dates. Allows the inclusion of a reference to an external source detailing the approval review.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfApprovalReview": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A brief identification of the type of approval review such as IRB, ethical, compliance, etc. Supports the use of a controlled vocabulary."
            },
            "ReviewObjectReference": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Reference"
              },
              "minItems": 0,
              "description": "Reference to an existing identifiable object using the Reference structure.  TypeOfObject should be set to any Versionable or Maintainable object."
            },
            "AgencyOrganizationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Individual",
                          "Organization"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to an organization or individual, that provided the approval review. TypeOfObject should be set to Organization."
            },
            "ReviewerRole": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Role of the reviewing organization or individual. Supports the use of a controlled vocabulary."
            },
            "ReferenceIdentifier": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/string"
              },
              "minItems": 0,
              "description": "The reference or case identification of the review. Used to specify or track the case by the review organization"
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Description of the approval review which can include requirements for the review, contents, or results."
            },
            "ApprovalReviewDocumentReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "OtherMaterial"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Link to a document related to the ethical review using the OtherMaterial structure."
            },
            "ApplicationDate": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DateType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Date materials submitted for approval review."
            },
            "ApprovalDate": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DateType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Date approval received from approval review organization."
            },
            "ApprovedPeriod": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DateType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Period for which the approval is valid. This may be a start date, and end date, or range specified as a start and end date."
            }
          }
        }
      ]
    },
    "Archive": {
      "description": "A maintainable module containing information related to the archiving (longer term access and/or preservation) of the data and metadata. Note that in DDI Archive refers to a set of processes rather than a location. Archive contents are split into archive specific information (information that is related to the organization or individual performing archival activities) and information that reflects the processes that the metadata or data have undergone which should be maintained along with other content if the metadata changes locations. Two key pieces of information held within the Archive are the Organization Scheme (containing records of Organizations, Individuals, and the Relationships between them) and the Lifecycle. The Lifecycle can be used to document any significant event in the life of the data and metadata. It is a series of Lifecycle Events which note the date of the event, what took place, and who was involved. The module is described by a name, label, and description, archive specific information, an Organization Scheme (in-line or by reference), Lifecycle Information, and Other Materials related to the objects within the Archive Module. Archive Specific information covers details regarding individual items and collections within the archive as well as access conditions, funding and budget information, and quality statements. The reference to the Organization or individual acting as the archive as well as a coverage statement regarding the archive collection is found here.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "ArchiveModuleName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the Archive module."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the Archive module."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the Archive module."
            },
            "ArchiveSpecific": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ArchiveSpecificType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Contains metadata specific to a particular archive\u0027s holding."
            },
            "OrganizationSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "OrganizationScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A list of the organizations related to the DDI instance. This includes information on the archives responsible for creating and maintaining the instance. All agencies must be defined as an Organization in an Archive schema (which can be defined inline or resolved externally)."
            },
            "LifecycleInformation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/LifecycleInformationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "LifecycleInformation contains the description of a set of events in the life cycle of the data. It may be extended by specific users."
            }
          }
        }
      ]
    },
    "BaseLogicalProduct": {
      "description": "This is an abstract structure which serves as a substitution base for current and future LogicalProduct definitions relating to specific data types. Used as an extension base for all other LogicalProducts within its substitution group, it ensures that all DDI LogicalProduct descriptions will contain a consistent means of linking a physical data file to its logical (intellectual) description via the LogicalRecord found in DataRelationship. The extension base includes the standard name, label, and description, coverage information, a structure to define data relationships (identifies each logical record and the relationship(s) between them), as well as OtherMaterial related to its contents.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "LogicalProductName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the LogicalProduct."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the LogicalProduct."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the LogicalProduct."
            },
            "Coverage": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CoverageType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The Coverage statement at this level may be used to restrict the coverage described in the StudyUnit module. For example if this specific logical product from a population and housing census only covers housing questions or only provides State and County level data these should be noted here. If there are no changes in the coverage from the coverage of the StudyUnit module, no entry is needed here."
            },
            "DataRelationshipReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DataRelationship"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Contains a written description of how the logical contents of the file relate to each other for programming purposes. For example, noting that there are household, family and person items where the household is identified by variable, the unique family by the concatenation of variable_H and variable_F, and the unique person within a household by the concatenation of variable_H and variable_P."
            }
          }
        }
      ]
    },
    "BaseRecordLayout": {
      "description": "This type structures an abstract element which is used only as the head of a substitution group. It contains a reference to the Physical Structure that is available for use in all of the substitute RecordLayout structures.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "PhysicalStructureLinkReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "PhysicalStructure"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the PhysicalStructure used by this Record Layout."
            },
            "PhysicalStructurePhysicalRecordSegmentUsed": {
              "$ref": "#/$defs/string",
              "description": "the PhysicalSegment used by this Record Layout."
            },
            "EndOfLineMarker": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Specifies the end-of-line (EOL) marker used in the file as produced. If no value is provided assume the use of a CRLF (carriage return and line feed). This is the common EOL for PC\u0027s. The common EOL in a Unix environment is LF. Some systems will automatically translate EOLs when a file is moved across systems. Common EOLs include: CR (carriage return), LF (line feed), CRLF, NEL (next line), VT (vertical tab), FF (form feed), LS (line separator) and PS (paragraph separator). See Part I documentation for more detailed information. This object supports the use of a controlled vocabulary. Use of a common controlled vocabulary is strongly recommended."
            },
            "TextQualifier": {
              "$ref": "#/$defs/string",
              "enum": [
                "singleQuote",
                "doubleQuote",
                "none"
              ],
              "description": "Use for delimited files to designate the which text qualifier, if any, was used. Valid values include: singleQuote, doubleQuote, and none."
            }
          }
        }
      ]
    },
    "Category": {
      "description": "A description of a particular category or response. OECD Glossary of Statistical Terms: Generic term for items at any level within a classification, typically tabulation categories, sections, subsections, divisions, subdivisions, groups, subgroups, classes and subclasses. In addition to the standard name, label, and description, a category may contain a reference to a defining concept, provide information on how the category was generated (membership defined), and indicate if it is the description of a type of missing value.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "CategoryName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the category."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the category.or of different types or applications."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the category. Note that comparison of categories is done using the content of description."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the defining concept."
            },
            "Generation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/GenerationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describes how the category is derived or generated. A process for describing the determination of category membership."
            },
            "SubCategoryReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Category"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to one or more categories for which the current category is a broader definition. Allows for a reference to the narrower category and the ability to define the relationship as a specialization or part."
            },
            "IsMissing": {
              "$ref": "#/$defs/boolean",
              "description": "If the category is describing a classification of \u0022missing data\u0022 set the value of isMissing to \u0022true\u0022."
            }
          }
        }
      ]
    },
    "CategoryGroup": {
      "description": "Contains a group of Category descriptions, which may be ordered or hierarchical. In addition to the name, label, and description of the group, the structure allows for defining the group as a valid category value using a DefiningCategoryReference, and a listing of Categories and CategoryGroups in any order.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfCategoryGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A brief textual identification of the CategoryGroup type. Supports the use of an external controlled vocabulary."
            },
            "CategoryGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the CategoryGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the CategoryGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the CategoryGroup."
            },
            "DefiningCategoryReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Category"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A reference to a category that defines the group, thereby allowing the group to define the contents of that category by explicitly identifying its members."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this CategoryGroup pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "CategoryReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Category"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A category defined as a member of this group."
            },
            "CategoryGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CategoryGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A category group that is a member of this group (nesting structure)."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "CategoryScheme": {
      "description": "A scheme containing a set of Categories managed by an agency. These are used to manage category definitions used as a domain for data element and basic content for a category representations. In addition to the name, label, and description of the scheme, the structure supports the inclusion of another CategoryScheme by reference, a set of Category descriptions either in-line or by reference, and the description of a CategoryGroup either in-line or by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "CategorySchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the CategoryScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the CategoryScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the CategoryScheme."
            },
            "CategorySchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CategoryScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for inclusion by reference of other category schemes."
            },
            "CategoryReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Category"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A description of a particular category or response. OECD Glossary of Statistical Terms: Generic term for items at any level within a classification, typically tabulation categories, sections, subsections, divisions, subdivisions, groups, subgroups, classes and subclasses."
            },
            "CategoryGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CategoryGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows categories to be grouped with or without hierarchical structure."
            }
          }
        }
      ]
    },
    "ClassificationCorrespondenceTable": {
      "description": "A Correspondence Table expresses the relationship between two Statistical Classifications. These are typically: two versions from the same Classification Series; Statistical Classifications from different Classification Series; a variant and the version on which it is based; different versions of a variant. In the first and last examples, the Correspondence Table facilitates comparability over time. Correspondence relationships are shown in both directions",
      "allOf": [
        {
          "$ref": "#/$defs/Describable"
        },
        {
          "type": "object",
          "properties": {
            "OwnerReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Individual",
                          "Organization"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "The statistical office, other authority or section that created and maintains the Correspondence Table. A Correspondence Table may have several owners. TypeOfObject should be Organization or Individual."
            },
            "MaintenanceUnitReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Individual",
                          "Organization"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "The unit or group of persons who are responsible for the Correspondence Table, i.e. for maintaining and updating it. TypeOfObject should be Organization or Individual."
            },
            "ContactPersonReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Individual",
                          "Organization"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "The person(s) who may be contacted for additional information about the Correspondence Table. TypeOfObject should be Organization or Individual."
            },
            "Publication": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/PublicationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A list of the publications in which the Correspondence Table has been published. "
            },
            "SourceClassificationReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "StatisticalClassification"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "The Statistical Classification from which the correspondence is made. TypeOfObject should be StatisticalClassification."
            },
            "TargetClassificationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "StatisticalClassification"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "The Statistical Classification(s) to which the correspondence is directed. There may be multiple target Statistical Classifications associated with the Correspondence Table. TypeOfObject should be StatisticalClassification."
            },
            "SourceLevelReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ClassificationLevel"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "The correspondence is normally restricted to a certain Level in the source Statistical Classification. In this case, target Classification Items are assigned only to source Classification Items on the given level. If no level is indicated, target Classification Items can be assigned to any Level of the source Statistical Classification. TypeOfObject should be set to ClassificationLevel."
            },
            "TargetLevelReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ClassificationLevel"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "The correspondence is normally restricted to a certain Level in the target Statistical Classification. In this case, source Classification Items are assigned only to target Classification Items on the given Level. If no Level is indicated, source Classification Items can be assigned to any Level of the target Statistical Classification. TypeOfObject should be set to ClassificationLevel."
            },
            "RelationshipMappingType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A Correspondence Table can define a 1:1, 1:N, N:1 or M:N relationship between source and target Classification Items. Supports the use of an external controlled vocabulary."
            },
            "Maps": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ClassificationMapType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "The relationship between two Statistical Classifications. A Map is an expression of the relation between a Classification Item in a source Statistical Classification and a corresponding Classification Item in the target Statistical Classification. The Map should specify whether the relationship between the two Classification Items is partial or complete. Depending on the relationship type of the Correspondence Table, there may be several Maps for a single source or target Classification Item."
            },
            "FloatingMapDate": {
              "$ref": "#/$defs/cogsDate",
              "description": "If the source and/or target Statistical Classifications of a Correspondence Table are floating Statistical Classifications, the date of the Correspondence Table must be noted. The Correspondence Table expresses the relationships between the two Statistical Classifications as they existed on the date specified in the Correspondence Table."
            }
          }
        }
      ]
    },
    "ClassificationFamily": {
      "description": "A Classification Family is a group of Classification Series related from a particular point of view. The Classification Family is related by being based on a common concept (e.g. economic activity).",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "Name": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the Classification Family."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ClassificationFamily."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ClassificationFamily."
            },
            "ClassificationSeriesReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ClassificationSeries"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A Classification Family may refer to a number of Classification Series. Allows for in-line entry of a Classification Series."
            }
          }
        }
      ]
    },
    "ClassificationIndex": {
      "description": "A Classification Index is an ordered list (alphabetical, in code order etc) of Classification Index Entries. A Classification Index can relate to one particular or to several Statistical Classifications. A Classification Index shows the relationship between text found in statistical data sources (responses to survey questionnaires, administrative records) and one or more Statistical Classifications. A Classification Index may be used to assign the codes for Classification Items to observations in statistical collections. ",
      "allOf": [
        {
          "$ref": "#/$defs/Describable"
        },
        {
          "type": "object",
          "properties": {
            "ReleaseDate": {
              "$ref": "#/$defs/cogsDate",
              "description": "Date when the current version of the Classification Index was released."
            },
            "MaintenanceUnitReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Individual",
                          "Organization"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "The unit or group of persons within the organization  responsible for the Classification Index, i.e. for adding, changing or deleting Classification Index Entries. TypeOfObject should be set to Organization or Individual"
            },
            "ContactPersonReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Individual",
                          "Organization"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": " Person(s) who may be contacted for additional information about the Classification Index. TypeOfObject should be set to Organization or Individual."
            },
            "Publication": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/PublicationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A list of the publications in which the Classification Index has been published."
            },
            "Languages": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/language"
              },
              "minItems": 0,
              "description": "A Classification Index can exist in several languages. Indicates the languages available. If a Classification Index exists in several languages, the number of entries in each language may be different, as the number of terms describing the same phenomenon can change from one language to another. However, the same phenomena should be described in each language. Language is expressed using standard RFC 1766 language codes (for example: fr, en) and may be extended with the use of specific locations (en-UK)."
            },
            "Corrections": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Summary description of corrections, which have occurred within the Classification Index. Corrections include changing the item code associated with a Classification Index Entry."
            },
            "CodingInstructions": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Additional information which drives the coding process for all entries in a Classification Index."
            },
            "ClassificationIndexEntry": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ClassificationIndexEntryType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "An ordered list (alphabetical, in code order etc.) of Classification Index Entries."
            }
          }
        }
      ]
    },
    "ClassificationItem": {
      "description": "A Classification Item represents a Category at a certain Level within a Statistical Classification. It defines the content and the borders of the category. An object/unit can be classified to one and only one Classification Item at each Level of a Statistical Classification.",
      "allOf": [
        {
          "$ref": "#/$defs/Describable"
        },
        {
          "type": "object",
          "properties": {
            "ItemCode": {
              "$ref": "#/$defs/string",
              "description": "A Classification Item is identified by an alphabetical, numerical or alphanumerical code, which is in line with the code structure of the Level. The code is unique within the Statistical Classification to which the Classification Item belongs."
            },
            "DefiningConceptReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Concept"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A concept which describes the Classification Item. TypeOfObject should be set to Concept."
            },
            "Includes": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Specifies the contents of the category. Supports multiple languages and use of structured content."
            },
            "IncludesAlso": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A list of borderline cases, which belong to the described category. Supports multiple languages and use of structured content."
            },
            "Excludes": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A list of borderline cases, which do not belong to the described category. Excluded cases may contain a reference to the Classification Items to which the excluded cases belong. Supports multiple languages and use of structured content."
            },
            "ExcludedClassificationItemReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ClassificationItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to the Classification Items to which the excluded cases belong. TypeOfObject should be set to ClassificationItem."
            },
            "IsGenerated": {
              "$ref": "#/$defs/boolean",
              "description": "Indicates whether or not the Classification Item has been generated to make the Level to which it belongs complete."
            },
            "IsValid": {
              "$ref": "#/$defs/boolean",
              "description": "If updates are allowed in the Statistical Classification, a Classification Item may be restricted in its validity, i.e. it may become valid or invalid after the Statistical Classification has been released. Indicates whether or not the Classification Item is currently valid."
            },
            "ValidFrom": {
              "$ref": "#/$defs/cogsDate",
              "description": "Date from which the Classification Item became valid. The date must be defined if the Classification Item belongs to a floating Statistical Classification."
            },
            "ValidTo": {
              "$ref": "#/$defs/cogsDate",
              "description": "Date at which the Classification Item became invalid. The date must be defined if the Classification Item belongs to a floating Statistical Classification and is no longer valid."
            },
            "FutureEvents": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "The future events describe a change (or a number of changes) related to an invalid Classification Item. These changes may e.g. have turned the now invalid Classification Item into one or several successor Classification Items. In describing these changes, terminology from the Typology of item changes, found in Appendix 3 should be used. This allows the possibility to follow successors of the Classification Item in the future."
            },
            "SuccessorClassificationItemReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ClassificationItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Future events may e.g. have turned the now invalid Classification Item into one or several successor Classification Items, listed here. TypeOfObject should be set to ClassificationItem."
            },
            "ChangesFromPriorVersion": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Describes the changes, which the Classification Item has been subject to from the previous version to the actual Statistical Classification. In describing these changes, terminology from the Typology of item changes, found in Appendix 3 of GSIM should be used."
            },
            "Updates": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Describes the changes, which the Classification Item has been subject to during the life time of the actual Statistical Classification."
            },
            "ParentClassificationItemReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ClassificationItem"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "The Classification Item at the next higher Level of the Statistical Classification of which the actual Classification Item is a sub item. TypeOfObject should be set to ClassificationItem."
            },
            "CaseLaw": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CaseLawType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Refers to one or more case law rulings related to the Classification Item."
            }
          }
        }
      ]
    },
    "ClassificationLevel": {
      "description": "A Statistical Classification has a structure which is composed of one or several Levels. A Level often is associated with a concept, which defines it. In a hierarchical Statistical Classification the Classification Items of each Level but the highest are aggregated to the nearest higher Level. A linear Statistical Classification has only one Level. ",
      "allOf": [
        {
          "$ref": "#/$defs/Describable"
        },
        {
          "type": "object",
          "properties": {
            "LevelCodeType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates whether the code at the Level is alphabetical, numerical or alphanumerical. Supports the use of an external controlled vocabulary."
            },
            "LevelCodeStructure": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates how the code at the Level is constructed of numbers, letters and separators. Supports the use of an external controlled vocabulary."
            },
            "DummyCode": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Rule for the construction of dummy codes from the codes of the next higher Level (used when one or several categories are the same in two consecutive Levels)."
            },
            "DefiningConceptReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Concept"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A concept which describes the level. TypeOfObject should be set to Concept."
            }
          }
        }
      ]
    },
    "ClassificationSeries": {
      "description": "A Classification Series is an ensemble of one or several consecutive Statistical Classifications under a particular heading (for example ISIC or ISCO).",
      "allOf": [
        {
          "$ref": "#/$defs/Describable"
        },
        {
          "type": "object",
          "properties": {
            "SeriesContext": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A Classification Series can be designed in a specific context. Supports the use of an external controlled vocabulary."
            },
            "UnitTypeClassifiedReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "UnitType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A Classification Series is designed to classify a specific type of object/unit according to a specific attribute. TypeOfObject should be set to UnitType."
            },
            "SubjectArea": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Areas of statistics in which the Classification Series is implemented. Supports the use of an external controlled vocabulary."
            },
            "OwnerReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Individual",
                          "Organization"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "The statistical office or other authority, which created and maintains the Statistical Classification(s) related to the Classification Series. A Classification Series may have several owners. TypeOfObject should be set to Organization or Individual."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A Classification Series can be associated with one or a number of keywords. Supports the use of an external controlled vocabulary."
            },
            "StatisticalClassificationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "StatisticalClassification"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A Classification Series has at least one Statistical Classification. Allows for in-line entry of a Statistical Classification."
            },
            "CurrentStatisticalClassificationReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "StatisticalClassification"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "If there are several Statistical Classifications related to a Classification Series, one Statistical Classification may be assigned as the currently valid Statistical Classification. TypeOfObject should be set to StatisticalClassification."
            }
          }
        }
      ]
    },
    "CodeList": {
      "description": "A structure used to associate a list of code values to specified categories. May be flat or hierarchical. This is a maintainable object. In addition to the standard name, label, and description the CodeList specifies a recommended data type, the hierarchical nature of the CodeList, level descriptions, individual code values and associated category, and whether the CodeList contents are used to represent system specific missing values. May include another CodeList by reference. If including other CodeLists make sure there are no code conflicts in the overall content. A code value must be unique within the CodeList. May also include a reference to a default CategoryScheme.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "CodeListName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the CodeList."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the CodeList."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the CodeList."
            },
            "RecommendedDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides the recommended treatment of the data within an application. This field is important as some codes represented as numeric should be treated as strings, i.e., many standardized codes for industry, occupation, education, etc. The value should come from a controlled vocabulary - recommended values include the set found in W3C XML Schema Part 2, but excluding string sub-types, QNAME, and NOTATION."
            },
            "CodeListReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CodeList"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for inclusion by reference of another CodeList. Care must be taken to ensure that all code values of the resulting CodeList are unique."
            },
            "CategorySchemeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CategoryScheme"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to a default category scheme, with the assumption that all categories referenced by the subsequent codes are part of it, unless overwritten by the scheme reference in the CategoryReference field of the code."
            },
            "HierarchyType": {
              "$ref": "#/$defs/string",
              "enum": [
                "Regular",
                "Irregular"
              ],
              "description": "Identifies the type of hierarchy used in the nesting of categories. Possible values are Regular and Irregular. A regular nesting indicates that the category hierarchy is consistent at all lower levels of the hierarchy, i.e., the lowest levels of the hierarchy are at the same level for every branch on the hierarchy."
            },
            "Level": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/LevelType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes the levels of the code hierarchy. The level describes the nesting structure of a hierarchical coding structure. Note that the attribute levelNumber is used for referencing specific codes to their level identifier."
            },
            "Code": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Includes a code value, references the category label, and describes the code\u0027s position in a hierarchy."
            },
            "IsSystemMissingValue": {
              "$ref": "#/$defs/boolean",
              "description": "If \u0022true\u0022 contents are used to represent system specific missing values. The default value is \u0022false\u0022."
            }
          }
        }
      ]
    },
    "CodeListGroup": {
      "description": "A grouping of CodeLists for conceptual or administrative purposed. May be hierarchical.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfCodeListGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A brief textual identification of the group type. Supports the use of an external controlled vocabulary."
            },
            "CodeListGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the CodeListGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the CodeListGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the CodeListGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this CodeList group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this CodeList group pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the CodeLists in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "CodeListReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CodeList"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent CodeList."
            },
            "CodeListGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CodeListGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent CodeListGroup. This allows for nesting of CodeListGroups."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "CodeListScheme": {
      "description": "A scheme containing sets of CodeLists that are used by reference to define code representations used by value representations and response domains. In addition to the standard name, label, description, the CodeListScheme may contain another CodeListScheme by reference, CodeLists either in-line or by reference, and CodeListGroups either in-line or by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "CodeListSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the CodeListScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the CodeListScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the CodeListScheme."
            },
            "CodeListSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CodeListScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for the inclusion of another CodeListScheme by reference."
            },
            "CodeListReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CodeList"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A structure used to associate a list of code values to specified categories. May be flat or hierarchical. A maintainable CodeList listed in the CodeListScheme in-line."
            },
            "CodeListGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CodeListGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line description of a group of CodeLists for conceptual, administrative or other purposes."
            }
          }
        }
      ]
    },
    "CognitiveExpertReviewActivity": {
      "description": "A substitution for DevelopmentActivity which requires no additional information other than the specification of the type of cognitive expert review taking place for development purposes.",
      "allOf": [
        {
          "$ref": "#/$defs/DevelopmentActivity"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfCognitiveExpertReview": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the specific type of Cognitive Expert Interview. Supports the use of a controlled vocabulary which is strongly recommended."
            }
          }
        }
      ]
    },
    "CognitiveInterviewActivity": {
      "description": "A substitution for DevelopmentActivity which requires no additional information other than the specification of the type of cognitive interview review taking place for development purposes.",
      "allOf": [
        {
          "$ref": "#/$defs/DevelopmentActivity"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfCognitiveInterview": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the specific type of Cognitive Interview. Supports the use of a controlled vocabulary which is strongly recommended."
            }
          }
        }
      ]
    },
    "Comparison": {
      "description": "A maintainable module containing maps between objects of the same or similar type. Maps allow for pair-wise mapping of two objects by describing their similarities and differences in order to make assertions regarding their comparability. Currently maps allow for the comparison of concepts, variables, questions, categories, universes, and representations that have managed content (code, category, numeric, text, datetime and scale). These mapping(s) inform users on the comparability of two objects and facilitate automation. Note that all maps are pairwise, identifying two schemes and the correlation between two items in those schemes. Due to the complexity of some objects, multiple mappings may be required to cover details of the comparison of component parts, e.g. a QuestionMap may also have a related RepresentationMap. By using a set of pairwise comparisons, it is possible to describe complex correspondences - pairwise comparisons are easier to process. In addition to providing a standard name, label, and description, Comparison consists of a simple stack of comparison maps. Comparison maps are currently limited to those objects that can be referenced and are sufficiently structured to support a clear comparison.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "ComparisonName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the comparison."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the comparison."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the comparison."
            },
            "ConceptMapReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GenericMap"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Maps the content of two different concept schemes of objects of the same type providing detail for the comparable items within those two schemes."
            },
            "VariableMapReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GenericMap"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Maps the content of two different variable schemes of objects of the same type providing detail for the comparable items within those two schemes."
            },
            "QuestionMapReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GenericMap"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Maps the content of two different question schemes of objects of the same type providing detail for the comparable items within those two schemes."
            },
            "CategoryMapReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GenericMap"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Maps the content of two different category schemes of objects of the same type providing detail for the comparable items within those two schemes."
            },
            "RepresentationMapReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RepresentationMap"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Maps between any two managed representations. In addition to representation types held in a ManagedRepresentationScheme, managed representations include CategoryScheme and coded representations which include CodeList, GeographicStructureCode or GeographicLocationCode. Note that the source can be any managed representation including a CodeList, GeographicStructure or GeographicLocation. Note that comparisons between two category schemes is best handled by CategoryMap."
            },
            "UniverseMapReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GenericMap"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Maps the content of two different universe schemes of objects of the same type providing detail for the comparable items within those two schemes."
            },
            "ManagedItemMapReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GenericMap"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Maps the items managed within different schemes of objects of the same type providing detail for the comparable items within those two schemes."
            }
          }
        }
      ]
    },
    "ComputationItem": {
      "description": "A form of control construct providing a code and assigning a variable to hold value of the code as used for computation in control construct flow. Member of the ControlConstruct substitution group.",
      "allOf": [
        {
          "$ref": "#/$defs/ControlConstruct"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfComputationItem": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A brief textual identification of the ComputationItem. Supports the use of an external controlled vocabulary."
            },
            "CommandCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CommandCodeType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The Code which contains the value of the variable in programming terms."
            },
            "AssignedVariableReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A reference to a variable to which the associated value in the Code element is assigned."
            }
          }
        }
      ]
    },
    "Concept": {
      "description": "Describes a concept per ISO/IEC 11179. In addition to the standard name, label, and description, can identify similar concepts, the concept which this concept is a subclass of, a concept that is used to characterize this concept, and a reference to the Universe associated with this concept. It is the linking of a concept to a specific universe (object) that defines this as a data element concept.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "ConceptName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the Concept."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the Concept."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the Concept."
            },
            "SimilarConcept": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/SimilarConceptType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A reference to a concept expressing a similar idea plus a description of the differences. Used to assist in disambiguation of concepts."
            },
            "SubclassOfReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Concept"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a Concept that is used for qualifying this data element concept. The referenced Concept should have its isCharacteristic attribute set to true."
            },
            "ExcludesConceptReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Concept"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a Concept that is used for qualifying what is excluded from the Concept\u0027s definition."
            },
            "IncludesConceptReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Concept"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a Concept that is used for qualifying this is included in the Concept\u0027s definition."
            },
            "IsCharacteristic": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 this concept is used to describe a characteristic of another concept."
            },
            "BroaderReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Concept"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a Concept that is broader in meaning (i.e. more general) than this Concept."
            },
            "NarrowerReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Concept"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a Concept that is narrower in meaning (i.e. more specific) than this Concept."
            },
            "RelatedReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Concept"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a Concept that has a associative relationship this Concept."
            }
          }
        }
      ]
    },
    "ConceptGroup": {
      "description": "Allows for grouping of concepts; groups may have a hierarchical structure. This structure should not be used to model semantic concept hierarchies - for this purpose, use the SubclassOfReference element within Concept.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfConceptGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Specifies the purpose of the ConceptGroup. If conceptual the GroupingConceptReference, GroupingUniverseReference, or GroupingPopulationReference should be used to further define the group. The object allows for specification of the purpose using a brief string or term. Supports the use of an external controlled vocabulary."
            },
            "ConceptGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ConceptGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ConceptGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the ConceptGroup."
            },
            "GroupingUniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain. Note that this is not a formal linking of a concept to a universe such as found in a ConceptualVariable. It is a means of helping to define the context within which this ConceptGroup is relevant."
            },
            "GroupingPopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this ConceptGroup apply. This reference defines the context and application of the group; it does not identify a constituent member."
            },
            "GroupingConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group. Expresses a conceptual basis for grouping the concepts. Note that this is not a formal linking of a concept to a universe such as found in a ConceptualVariable. It is a means of helping to define the context within which this ConceptGroup is relevant."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "ConceptReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Concept"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a concept included in the concept group. A concept can be referenced internally, from the concept scheme included in the same conceptual components module, or externally, from another scheme. This element is recursive to allow for the description of hierarchical relationships within the concept group."
            },
            "ConceptGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ConceptGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a subordinate concept group included in the concept group. A concept group can be referenced internally, from the concept scheme included in the same conceptual components module, or externally, from another scheme. This element is recursive to allow for the description of hierarchical relationships within the concept group."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            },
            "IsAdministrativeOnly": {
              "$ref": "#/$defs/boolean",
              "description": "Indicates the purpose of a concept group."
            },
            "IsConcept": {
              "$ref": "#/$defs/boolean",
              "description": "A value of true indicates that there is a concept which defines the group, and which is comprised of the concepts contained in the group. A group can be conceptual in purpose (that is, have a value of \u0022concept\u0022 for the purpose attribute), but not itself have a defining concept."
            }
          }
        }
      ]
    },
    "ConceptScheme": {
      "description": "A comprehensive list of the concepts measured by the data that are being documented that is maintained by an agency. In addition to the standard name, label, and description, allows for the inclusion of an existing ConceptScheme by reference, assignment of a controlled vocabulary for the scheme, inclusion of descriptions for Concepts and ConceptGroups in-line or by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "ConceptSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ConceptScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ConceptScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the ConceptScheme."
            },
            "ConceptSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ConceptScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to an existing ConceptScheme for inclusion."
            },
            "Vocabulary": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/VocabularyType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies and describes the vocabulary used to create the concept scheme."
            },
            "ConceptReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Concept"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes an individual concept."
            },
            "ConceptGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ConceptGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for grouping of concepts for administrative or conceptual purposes; groups may have a hierarchical structure."
            }
          }
        }
      ]
    },
    "ConceptualComponent": {
      "description": "A maintainable module for the conceptual components of the study or group of studies. Conceptual components include the objects used to describe the concepts the study is examining, the universe (population) and sub-universes those concepts to which they are related, and the geographic structures and locations wherein those populations reside. Concepts, and ConceptualVariables (containing a concept linked to a universe) provide an abstract view of what is being measured by questions or other forms of data capture, and the variables which are used to describe the data that will be collected. Universe and Population describe the populations (objects) about whom information is sought. GeographicStructure and GeographicLocation specify the geographical locations of those objects and the structural relationships between locations of different types, e.g. the relationship of a city to the state that contains it. In addition to the standard name, label, and description, ConceptualComponent contains ConceptSchemes, ConceptualVariableSchemes, UniverseSchemes, PopulationSchemes, GeographicStructureSchemes, and GeographicLocationSchemes both in-line and by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "ConceptualComponentModuleName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ConceptualComponentModule."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ConceptualComponentModule."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the ConceptualComponentModule."
            },
            "Coverage": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CoverageType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Provides information about the topical, spatial, and temporal coverage of the conceptual components included in this module."
            },
            "ConceptSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ConceptScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Contains a set of the concepts measured by the data that are being documented."
            },
            "UniverseSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "UniverseScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Contains a set of the Universes and sub-universes of the data that are being documented."
            },
            "PopulationSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PopulationScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Contains a set of the Populations of the data that are being documented."
            },
            "ConceptualVariableSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ConceptualVariableScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Contains a set of ConceptualVariables."
            },
            "GeographicStructureSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicStructureScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Contains a collection of geographic structures."
            },
            "GeographicLocationSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicLocationScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Contains a collection of geographic locations."
            },
            "UnitTypeSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "UnitTypeScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Contains a collection of unit types."
            }
          }
        }
      ]
    },
    "ConceptualVariable": {
      "description": "Describes a ConceptualVariable which provides the link between a concept to a specific unit type (object) that defines this as a ConceptualVariable. In addition to the standard name, label, and description, it provides the two primary components of a ConceptualVariable by referencing a concept and its related unit type. Note that the concept referenced may itself contain sub-concepts and/or references to similar concepts. This maps to the GSIM ConceptualVariable and has a basis in the ISO/IEC 11179 RepresentedVariableConcept.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "ConceptualVariableName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ConceptualVariable."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ConceptualVariable."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ConceptualVariable."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to a Concept that is being linked to a UnitType identified by the UnitTypeReference. TypeOfObject should be set to Concept."
            },
            "UnitTypeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "UnitType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to a unit type being associated with this conceptual variable. TypeOfObject should be set to UnitType."
            },
            "CategorySchemeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CategoryScheme"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to a previously created category scheme that represents the conceptual variable\u0027s enumerated conceptual domain."
            }
          }
        }
      ]
    },
    "ConceptualVariableGroup": {
      "description": "Contains a group of ConceptualVariables, which may describe an ordered or hierarchical relationship structure. ConceptualVariables may be grouped for a wide range of reasons including conceptual, universe, or population grouping, usage, subject or keyword relationships, or other grouping reason that will assist in the management of a group of ConceptualVariables. Specifies the purpose of the group, a name, label, and description of the group, its relationship to a specific universe, population, or concept, and lists the members of the group.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfConceptualVariableGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a ConceptualVariableGroup. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "ConceptualVariableGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ConceptualVariableGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ConceptualVariableGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ConceptualVariableGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain. TypeOfObject should be set to Universe."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this ConceptualVariableGroup pertain. TypeOfObject should be set to Population."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group. TypeOfObject should be set to Concept."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "ConceptualVariableReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ConceptualVariable"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent ConceptualVariable (from the substitution group). TypeOfObject should be set to ConceptualVariable."
            },
            "ConceptualVariableGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ConceptualVariableGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent ConceptualVariableGroup. This allows for nesting of ConceptualVariableGroups. TypeOfObject should be set to ConceptualVariableGroup."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "ConceptualVariableScheme": {
      "description": "A comprehensive list of the ConceptualVariables measured by the data that are being documented and/or maintained by an agency. In addition to the standard name, label, and description, allows for the inclusion of an existing ConceptualVariableScheme by reference, the inclusion of descriptions for ConceptualVariables and ConceptualVariableGroups in-line or by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "ConceptualVariableSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ConceptualVariableScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ConceptualVariableScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the ConceptualVariableScheme."
            },
            "ConceptualVariableSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ConceptualVariableScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to an existing ConceptualVariableScheme for inclusion. TypeOfObject should be set to a ConceptualVariableScheme."
            },
            "ConceptualVariableReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ConceptualVariable"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a ConceptualVariable which provides the link between a concept to a specific unit type (object) that defines this as a ConceptualVariable."
            },
            "ConceptualVariableGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ConceptualVariableGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for grouping of ConceptualVariables for administrative or conceptual purposes; groups may have a hierarchical structure."
            }
          }
        }
      ]
    },
    "ContentReviewActivity": {
      "description": "A substitution for DevelopmentActivity which requires no additional information other than the specification of the type of content review taking place for development purposes.",
      "allOf": [
        {
          "$ref": "#/$defs/DevelopmentActivity"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfContentReview": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the specific type of content review not done as part of a Focus Group, Cognitive Expert Review, or Cognitive Interview. Supports the use of a controlled vocabulary which is strongly recommended."
            }
          }
        }
      ]
    },
    "ControlConstruct": {
      "description": "Provides the basic, extensible structure for control elements used in describing flow logic within the instrument. The only data point which is inherited by the extended constructs based on this type is the identification of the control construct.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "ConstructName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ControlConstruct."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ControlConstruct."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ControlConstruct."
            },
            "InParameter": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InParameterType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A parameter that may accept content from outside its parent element."
            },
            "OutParameter": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ParameterType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "An identify for the output of the control construct."
            },
            "Binding": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/BindingType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A structure used to bind the content of a parameter declared as the source to a parameter declared as the target. For example, binding the output of a question to the input of a generation instruction. Question A has an OutParameter X. Generation Instruction has an InParameter Y used in the recode instruction. Binding defines the content of InParameter Y to be whatever is provided by OutParameter X for use in the calculation of the recode."
            },
            "ExternalAid": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ExternalAidType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A pointer to an external aid presented by the instrument such as a text card, image, audio, or audiovisual aid. Typically a URN. Use type attribute to describe the type of external aid provided. Example of terms to use would include: imageOnly audioOnly audioVisual multiMedia. ExternalAid will be available each time the control construct is invoked. Care should be taken when placing an ExternalAid in RepeatWhile, RepeatUntil and Loop constructs as it will recur each time the conditional statement is checked. This does not include interviewer instructions, which are handled separately."
            },
            "ExternalInterviewerInstruction": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ExternalInterviewerInstructionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Contains a reference to an interviewer instruct ruction held in a structure other than DDI XML. Uses the OtherMaterial structure to describe and link to the external object."
            },
            "InterviewerInstructionAttachment": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/AttachedInstructionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "an interviewer instruction expressed as DDI XML."
            },
            "DevelopmentResultsReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DevelopmentResults"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the development implementation results which gave rise to this version of the object. TypeOfObject should be DevelopmentResults."
            }
          }
        }
      ]
    },
    "ControlConstructGroup": {
      "description": "Contains a group of ControlConstructs, which may describe an ordered or hierarchical relationship structure. Specifies the purpose of the group, a name, label, and description of the group, its relationship to a specific universe, population, or concept, and lists the members of the group.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfControlConstructGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a ControlConstructGroup. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "ControlConstructGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ControlConstructGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ControlConstructGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ControlConstructGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this ControlConstructGroup pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "ControlConstructReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ComputationItem",
                          "DevelopmentStep",
                          "IfThenElse",
                          "Loop",
                          "MeasurementConstruct",
                          "QuestionConstruct",
                          "RepeatUntil",
                          "RepeatWhile",
                          "SampleStep",
                          "SamplingStage",
                          "Sequence",
                          "Split",
                          "SplitJoin",
                          "StatementItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent ControlConstruct (from the substitution group). TypeOfObject should be set to IfThenElse, RepeatUntil, RepeatWhile, Loop, Sequence, ComputationItem, StatementItem, MeasurementConstruct or QuestionConstruct."
            },
            "ControlConstructGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ControlConstructGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent ControlConstructGroup. This allows for nesting of ControlConstructGroups. TypeOfObject should be set to ControlConstructGroup."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "ControlConstructScheme": {
      "description": "A set of control constructs maintained by an agency and used in the instrument or computational instruction. ControlConstructs describe the ordering and flow of questions within an instrument or information through a process. In addition to the standard name, label and description can include an existing ControlConstructScheme by reference and describe individual Control Constructs of varying types.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "ControlConstructSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ControlConstructScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ControlConstructScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ControlConstructScheme."
            },
            "ControlConstructSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ControlConstructScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Provides for inclusion by reference of external Control Construct Schemes."
            },
            "ControlConstructReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ComputationItem",
                          "DevelopmentStep",
                          "IfThenElse",
                          "Loop",
                          "MeasurementConstruct",
                          "QuestionConstruct",
                          "RepeatUntil",
                          "RepeatWhile",
                          "SampleStep",
                          "SamplingStage",
                          "Sequence",
                          "Split",
                          "SplitJoin",
                          "StatementItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Extensible structure for control elements used in describing flow logic within the instrument.: IfThenElse, RepeatUntil, RepeatWhile, Loop, Sequence, ComputationItem, StatementItem, MeasurementConstruct, and QuestionConstruct."
            },
            "ControlConstructGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ControlConstructGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line description of a group of ControlConstructs."
            }
          }
        }
      ]
    },
    "DDIInstance": {
      "description": "DDIInstance is the top-level publication wrapper for any DDI document. All DDI content published as XML (with the exception of a Fragment intended for transmission) has DDIInstance as its top level structure. In addition to a citation and coverage statement for the instance, the DDIInstance can contain a Group, ResourcePackage, LocalHoldingPackage or StudyUnit. Additional OtherMaterial content may be added but in general OtherMaterial should be listed in the maintainable object containing the objects the OtherMaterial is related to. The instance can provide an applicable DDIProfile either in-line or by reference and can contain overall translation information.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "Citation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CitationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Citation for the Instance. Note that the citation is optional, because the DDI Instance may contain only reusable component pieces of metadata sets, which are not directly concerned with a single study or studies."
            },
            "Coverage": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CoverageType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This element contains descriptions of temporal, geographic and topical coverage. At the instance level these descriptions should be inclusive of the coverage of all modules in the instance. The element is available within individual modules and can be used to refine the coverage to that of the individual module."
            },
            "GroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Group"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A publication of a Group of StudyUnits in-line."
            },
            "ResourcePackageReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ResourcePackage"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A publication of a set of maintainables (modules or schemes) intended for reuse between studies in-line."
            },
            "LocalHoldingPackageReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "LocalHoldingPackage"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A publication package containing a deposited publication as well as local value added or processing information in-line."
            },
            "StudyUnitReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "StudyUnit"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A publication of a study unit representing the purpose, background, development, data capture, and data products related to a study in-line."
            },
            "DDIProfileReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DDIProfile"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A DDIProfile applicable to the instance."
            },
            "TranslationInformation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/TranslationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "TranslationInformation contains information about the translation of the content of the DDI Instance. This includes human-readable information about which language(s) are involved in the translation."
            }
          }
        }
      ]
    },
    "DDIProfile": {
      "description": "Describes the subset of valid DDI objects used by an agency for a specified purpose. This may be the required and supported objects for a specific system, a profile for deposit in an archive, requirements at different points of production, etc. In addition to the standard name, label, and description the DDI Profile describes the intended application of the profile, its purpose, the version of XPath used in describing the supported objects, the DDI namespace (major and minor version numbers), a mapping of schema to prefixes (if different from the standard DDI model), a set of instructions for use of the profile, and a listing of used and unsupported objects. These objects may be constrained (i.e., change from optional to required), provided a fixed value, or provided a local name.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "DDIProfileName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the profile."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the profile."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the profile."
            },
            "ApplicationOfProfile": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A brief description of the intended applications of the profile. Supports the use of an external controlled vocabulary."
            },
            "Purpose": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Purpose describes the purpose of creating the profile such as describing the coverage of a distribution software system."
            },
            "XPathVersion": {
              "$ref": "#/$defs/decimal",
              "description": "Provides the version of XPath used. Values are 1.0, 2.0 at this time."
            },
            "DDINamespace": {
              "$ref": "#/$defs/decimal",
              "description": "Provides the version of DDI schemas used. Values are 2.5, 3.0, 3.1, etc. Note that only the Major.Minor portion of the version number is used."
            },
            "XMLPrefixMap": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/XMLPrefixMapType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If you are not using the standard DDI prefix or the full DDI name then provide mapping. For each XML namespace used in the profile\u0027s XPath expressions, the XML namespaces must have their prefix specified using this element."
            },
            "Instructions": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Instructions for use of the profile."
            },
            "Used": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/UsedType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates an element in the DDI which is used by the profile expressed as an XPath. Note that including a complex element will include all of its component parts."
            },
            "NotUsed": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/NotUsedType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates an element in the DDI which is not used by the profile expressed as an XPath. You cannot list anything which is required in the DDI schemas, as this would produce invalid XML instances."
            }
          }
        }
      ]
    },
    "DataCaptureDevelopment": {
      "description": "Data capture development covers the development planning, process, and outcome for a partial or full questionnaire. Development normally included the development of the question wording, possible response domains and their presentation, translation for language or cultural variance in the population, and question order. Extensive work is often done for individual questions that may be reused by different questionnaires with the organization or for topical areas or populations that are difficult to measure. In addition to the standard name, label, and description information DataCaptureDevelopment contains structures to capture the development plan, the development implementation, and the results or outcome of the development implementation. DataCaptureDevelopment is a Maintainable object and any Note or OtherMaterial related to one of its objects should be placed within the Note and OtherMaterial section of DataCaptureDevelopment.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "DataCaptureDevelopmentName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the Data Capture Development."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the Data Capture Development."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the Data Capture Development."
            },
            "DevelopmentPlanReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DevelopmentPlan"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes the set of development activities that should take place."
            },
            "DevelopmentImplementationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DevelopmentImplementation"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes the implementation of a development plan for a specific set of development objects. May provide specific details using Control Construct to order Development Steps."
            },
            "DevelopmentResultsReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DevelopmentResults"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Separates the capture of development implementation results from the process plan and general activities. Allows for capture of the overall results, details of individual steps, or separate iterations of that step."
            }
          }
        }
      ]
    },
    "DataCollection": {
      "description": "A maintainable module containing information on activities related to data collection/capture and the processing required for the creation a data product. This section covers the methodologies, events, data sources, collection instruments and processes which comprise the collection/capture and processing of data.  Metadata regarding the methodology of the data collection process including, determining repetition patterns, sampling, collection modes, etc. Collection Event specifies data sources, collection instruments, questions and question flow, and data processing activities. This module houses Processing Instructions (General Instructions and Generation Instructions) which may be referenced by variables or comparison maps.The module is described by a name, label, and description, provides spatial, temporal, and topical coverage information on the activities covered by the module, and references to external material related to objects in the module using OtherMaterial. The content of the module is organized within the following sections; Methodology, DataCaptureDevelopment, Collection Event, QuestionScheme (in-line or by reference), ControlConstructScheme (in-line or by references) containing the flow of a questionnaire or data capture process, InterviewerInstructionScheme (in-line or by reference), InstrumentScheme (in-line or by reference), ProcessingEventScheme (in-line or by reference), SamplingScheme (in-line or by reference) and DevelopmentActivityScheme.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "DataCollectionModuleName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the DataCollection module."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the DataCollection module."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the DataCollection module."
            },
            "Coverage": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CoverageType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Documents the spatial, temporal, and/or topical coverage of the data collection module."
            },
            "MethodologyReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Methodology"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Methodology covers approaches used for selecting samples, administering surveys or data collection approaches, timing repeated data collection activities, weighting, and quality control."
            },
            "DataCaptureDevelopmentReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "DataCaptureDevelopment"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Data capture development covers the development planning, process, and outcome for a partial or full data capture object (question, measurement, instrument, or control construct). Development normally included the development of the question wording, possible response domains and their presentation, translation for language or cultural variance in the population, question/measurement order and mode of delivery (instrument). Extensive work is often done for individual questions/measures that may be reused by different data capture instruments with the organization or for topical areas or populations that are difficult to measure."
            },
            "CollectionEvent": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CollectionEventType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A specific event in the collection or capture process."
            },
            "QuestionSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QuestionScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a set of questions used for data collection."
            },
            "MeasurementSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "MeasurementScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a set of measurements used for data collection."
            },
            "ControlConstructSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ControlConstructScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a set of control constructs used to order and define processes such as data capture flow, instrument flow, sampling, data capture development activities, etc. Assumes the flow of the object along the prescribed routing (i.e. respondent through a questionnaire, data source through a measurement process, development object through a development process, or data set of a population through a sample sampling plan)Uses InParameters and OutParameters to describe the specific flow of datum captured by, used within, or processed by to create a stored datum in a variable."
            },
            "InterviewerInstructionSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "InterviewerInstructionScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a set of instructions used by the interviewer (respondent in the case of a self administered questionnaire) or instrument to support the accurate collection or capture of data."
            },
            "InstrumentSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "InstrumentScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a set of instruments used to collect or capture data."
            },
            "InstrumentReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Instrument"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes an instrument within this Data Collection."
            },
            "ProcessingEventSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ProcessingEventScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a set of processing events used to collect or capture data and process it during or post collection. May include the processes used to capture data in non-questionnaire data capture."
            },
            "ProcessingInstructionSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ProcessingInstructionScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a set of processing instructions used to collect or capture data and process it during or post collection. May include the processing instructions used to capture data in non-questionnaire data capture."
            },
            "SamplingInformationSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "SamplingInformationScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A set of sampling information maintained by an agency including sampling plans, sample frames, and samples."
            },
            "DevelopmentActivitySchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DevelopmentActivityScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A set of development activities maintained by an agency, and used in the development, review, or creation of a question, measurement, data capture flow (control construct), or instrument."
            }
          }
        }
      ]
    },
    "DataRelationship": {
      "description": "Describes the relationships among logical records in the dataset. Date Relationship is needed to create the appropriate link between the logical record and the physical storage description. Data Relationship is optional because a logical product can contain only a category scheme and/or code scheme. In addition to the standard name, label, and description, it contains structures to describe the LogicalRecord and RecordRelationship.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "DataRelationshipName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the DataRelationship."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the DataRelationship."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the DataRelationship."
            },
            "LogicalRecord": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/LogicalRecordType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A logical record is a description of all of the elements (variables or NCubes) related to a single case or analysis unit. Required to link a description of a physical record structure to its logical record."
            },
            "RecordRelationship": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/RecordRelationshipType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes the relationship between records of different types or of the same type within a longitudinal study. Identifies the key and linking value relationships. All relationships are pairwise. Multiple pairwise relationships maybe needed to clarify all record relationships within a logical product or data set."
            }
          }
        }
      ]
    },
    "DataSet": {
      "description": "DataSet is a substitution for a BaseRecordLayout and allows for in-line inclusion of micro or unit level data in the metadata file. This is valuable for small datasets or cases where there is a need to combine the metadata and data within a single file. In addition to the PhysicalStructureReference the DataSet indicates the ArrayBase if applicable, a name for the DataSet, a reference to the default Variable Scheme used by the data set, a reference to an Identifying Variable (e.g. case number), and a choice of organization order for the data: Record Set, Item Set, or Variable Set. RecordSet describes records of data which contain the same variables in the same order, ItemSet describes individual items of a dataset in any order. VariableSet describes the values for a given variable in record order.",
      "allOf": [
        {
          "$ref": "#/$defs/BaseRecordLayout"
        },
        {
          "type": "object",
          "properties": {
            "ArrayBase": {
              "$ref": "#/$defs/int",
              "description": "Sets the array base for any arrays used in the definition (that is, whether the first value is in position 0 or 1, etc.)."
            },
            "DataSetName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the data set."
            },
            "IdentifyingVariableReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Variable"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the variable used to identify a specific record within the data set (unique identifier or key)."
            },
            "DefaultVariableSchemeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "VariableScheme"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A reference to the Variable Scheme containing all or a majority of the variables in the data set. May be overridden by an individual VariableReference."
            },
            "RecordSet": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/RecordSetType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Storage format arranged record by record. A RecordSet requires a list of variables to appear in a specified order."
            },
            "ItemSet": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ItemSetType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Storage format for random order item variables. Each ItemValue references it\u0027s defining variable, it\u0027s record identifier, and the it\u0027s value."
            },
            "VariableSet": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/VariableSetType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Storage format arranged variable by variable. Item values are listed in record order with the assumption that each record will occupy the position in each array."
            }
          }
        }
      ]
    },
    "Describable": {
      "description": "A versionable object that has a Name, Label, and Description.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "Name": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the item."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the item."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the item."
            }
          }
        }
      ]
    },
    "DevelopmentActivity": {
      "description": "An abstract element serving as the head of a substitution group. May be substituted by an valid object of substitution type DevelopmentActivity. Provides a set of objects available to all members of the stubstitution group. These include a statement of the desired outcome of the development activity, a summary of the process to be followed, recommended staff requirements for each staffing class, a statement of any addition resources (monetary, or other) that are required to complete the activity, and information on the debriefing process.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "DevelopmentActivityName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the Development Activity."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the Development Activity."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the Development Activity."
            },
            "DesiredOutcome": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Describe the desired outcomes of the development activity. Address why the activity should take place, means of determining successful completion, etc."
            },
            "ProcessSummary": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Summarize the process the activity should follow to meet desired outcomes."
            },
            "RecommendedStaffRequirements": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/RecommendedStaffRequirementsType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Specify requirements for type of staffing needed to complete activity. Repeat for each staff class"
            },
            "AdditionalRequiredResources": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Describe additional resources required such as funding, staffing, or resource material."
            },
            "DebriefingProcess": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DebriefingProcessType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describe the debriefing process. This is especially important for assessing the quality of focus groups, cognitive interviews, etc. Specifies if debriefing is required."
            }
          }
        }
      ]
    },
    "DevelopmentActivityGroup": {
      "description": "Describes a group of Development Activities for administrative or conceptual purposes, which may be hierarchical. In addition to the standard name, label, and description contains references to included Development Activities, and other DevelopmentActivityGroups.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfDevelopmentActivityGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a Development Activities Group. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "DevelopmentActivityGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the DevelopmentActivityGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the DevelopmentActivityGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the DevelopmentActivityGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this DevelopmentActivityGroup pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "DevelopmentActivityReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CognitiveExpertReviewActivity",
                          "CognitiveInterviewActivity",
                          "ContentReviewActivity",
                          "FocusGroupActivity",
                          "PretestActivity",
                          "TranslationActivity"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a constituent DevelopmentActivity for inclusion in the group. TypeOfObject should be ContentReviewActivity, TranslationActivity, or PretestActivity."
            },
            "DevelopmentActivityGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DevelopmentActivityGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent Development Activity group. This allows for nesting of processing instruction groups. TypeOfObject should be DevelopmentActivityGroup."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "DevelopmentActivityScheme": {
      "description": "A set of Development Activities maintained by an agency, and used in defining the development of a data capture object. In addition to the standard name, label, and description allows for the inclusion of an existing DevelopmentActivityScheme by reference and descriptions of DevelopmentActivity and DevelopmentActivityGroup either in-line or by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "DevelopmentActivitySchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the DevelopmentActivityScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the DevelopmentActivityScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the DevelopmentActivityScheme."
            },
            "DevelopmentActivitySchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DevelopmentActivityScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to an existing DevelopmentActivityScheme for inclusion."
            },
            "DevelopmentActivityReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CognitiveExpertReviewActivity",
                          "CognitiveInterviewActivity",
                          "ContentReviewActivity",
                          "FocusGroupActivity",
                          "PretestActivity",
                          "TranslationActivity"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Extensible structure for development activity elements used in describing the development of a questionnaire.: ContentReviewActivity, TranslationActivity, and PretestActivity."
            },
            "DevelopmentActivityGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DevelopmentActivityGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A description of a group of DevelopmentActivity for administrative or conceptual purposes."
            }
          }
        }
      ]
    },
    "DevelopmentImplementation": {
      "description": "Provides a name, label and description for the Development Implementation and lists the individual development activities which should take place. Note that the structure allows for a simple summary of the implementation work or can provide details using the DevelopmentStep and other control constructs to describe the organization of the implementation.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "DevelopmentImplementationName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the DevelopmentImplementation."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the Development Implementation."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the overall Development Implementation."
            },
            "DevelopmentPlanReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DevelopmentPlan"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "References the Development Plan which the results refer to."
            },
            "DevelopmentActivityReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CognitiveExpertReviewActivity",
                          "CognitiveInterviewActivity",
                          "ContentReviewActivity",
                          "FocusGroupActivity",
                          "PretestActivity",
                          "TranslationActivity"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to one or more Development Activities used by the Development Implementation. DevelopmentActivity is a substitution base for a number of types of activities described with appropriate content. TypeOfObject should be ContentReviewActivity, TranslationActivity, or PretestActivity."
            },
            "DevelopmentObject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DevelopmentObjectType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes the object of the development. May reference a specific object instrument, question, measurement, or control construct to."
            },
            "ControlConstructReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ComputationItem",
                          "DevelopmentStep",
                          "IfThenElse",
                          "Loop",
                          "MeasurementConstruct",
                          "QuestionConstruct",
                          "RepeatUntil",
                          "RepeatWhile",
                          "SampleStep",
                          "SamplingStage",
                          "Sequence",
                          "Split",
                          "SplitJoin",
                          "StatementItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A set of DevelopmentSteps (control construct sub-type) that detail the implementation. May be organized using other control constructs to define sequencing, flow logic, sub-testing, etc. TypeOfObject should be any sub-type of a control construct."
            }
          }
        }
      ]
    },
    "DevelopmentPlan": {
      "description": "Provides a name, label and description for the Development Plan and lists the individual development activities which should take place.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "DevelopmentPlanName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the DevelopmentPlan."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the Development Plan."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the Development Plan."
            },
            "DevelopmentObjective": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Describes the objectives of the development work. Supports the use of structured content in multiple languages."
            },
            "ContactReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Individual",
                          "Organization"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to an organization and/or individual to contact for further information on this questionnaire development activity."
            },
            "CostStructure": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CostStructureType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Budget and funding information related to the development work."
            },
            "DevelopmentActivityReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CognitiveExpertReviewActivity",
                          "CognitiveInterviewActivity",
                          "ContentReviewActivity",
                          "FocusGroupActivity",
                          "PretestActivity",
                          "TranslationActivity"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to one or more Development Activities used by the Development Plan. DevelopmentActivity is a substitution base for a number of types of activities described with appropriate content. TypeOfObject should be ContentReviewActivity, TranslationActivity, or PretestActivity."
            }
          }
        }
      ]
    },
    "DevelopmentResults": {
      "description": "Separates the capture of development implementation results from the process plan and general activities. Allows for capture of the overall results, details of individual steps, or separate iterations of that step.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "DevelopmentResultsName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the DevelopmentResults."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the Development Results."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the overall Development Results."
            },
            "DevelopmentImplementationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DevelopmentImplementation"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "References the Development Implementation which the results refer to. TypeOfObject should be DevelopmentImplementation"
            },
            "ResultsDate": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DateType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The date or date range of obtaining results from the development work."
            },
            "ResultDetail": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ResultDetailType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Details of specific results of the development plan and process. May refer to specific development activities or DevelopmentSteps within a DevelopmentProcess."
            }
          }
        }
      ]
    },
    "DevelopmentStep": {
      "description": "A member of the ControlConstruct substitution group. Describes a Development Step implementing a Development Activity directed at a specific development object. Defines prerequisites, condition for acceptance, and activity date and and agent performing the step. Use ExternalAid to identify external resources used by the DevelopmentStep",
      "allOf": [
        {
          "$ref": "#/$defs/ControlConstruct"
        },
        {
          "type": "object",
          "properties": {
            "DevelopmentObject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DevelopmentObjectType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes the object of the development. May reference a specific object instrument, question, measurement, or control construct to."
            },
            "DevelopmentActivityReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CognitiveExpertReviewActivity",
                          "CognitiveInterviewActivity",
                          "ContentReviewActivity",
                          "FocusGroupActivity",
                          "PretestActivity",
                          "TranslationActivity"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to one or more Development Activities used by the Development Process Step. DevelopmentActivity is a substitution base for a number of types of activities described with appropriate content. TypeOfObject should be ContentReviewActivity, TranslationActivity, or PretestActivity."
            },
            "ResponsibleAgencyReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Individual",
                          "Organization"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to an Organization or Individual responsible for this step. TypeOfObject should be any sub-type of Agency."
            },
            "Prerequisite": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the overall prerequisites for completing this Development Processing Step."
            },
            "ConditionForAcceptance": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "The conditions under which the output of the Development Process Step is accepted."
            },
            "ActivityDate": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DateType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The date or date range of activity in this step."
            }
          }
        }
      ]
    },
    "FocusGroupActivity": {
      "description": "A substitution for DevelopmentActivity which requires no additional information other than the specification of the type of Focus Group taking place for development purposes.",
      "allOf": [
        {
          "$ref": "#/$defs/DevelopmentActivity"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfFocusGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the specific type of Focus Group. Supports the use of a controlled vocabulary which is strongly recommended."
            }
          }
        }
      ]
    },
    "GeneralInstruction": {
      "description": "Processing instructions that pertain to data collection or data processing overall such as handling of non-response to questions, imputation practices, suppression rules, etc. General instructions should be listed separately to allow for referencing of specific processes.",
      "allOf": [
        {
          "$ref": "#/$defs/ProcessingInstruction"
        },
        {
          "type": "object",
          "properties": {
            "CommandCode": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CommandCodeType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Structured information used by a system to process the instruction."
            },
            "OverriddenCodeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeneralInstruction",
                        "GenerationInstruction"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Used when attribute of the containing GeneralInstruction isOverride equals true. This element provides the reference to the GeneralInstruction being overridden by the use of this instruction. For example a special confidentiality process used for a select set of variables rather than the normal process."
            },
            "IsOverride": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022, indicates that this coding instruction overrides a more generally used process."
            }
          }
        }
      ]
    },
    "GenerationInstruction": {
      "description": "Processing instructions for recodes, derivations from multiple question or variable sources, and derivations based on external sources. Instructions should be listed separately so they can be referenced individually.",
      "allOf": [
        {
          "$ref": "#/$defs/ProcessingInstruction"
        },
        {
          "type": "object",
          "properties": {
            "InputQuestionReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QuestionBlock",
                          "QuestionGrid",
                          "QuestionItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a question used in the instruction. Allows the designation of an Alias used by the instruction. TypeOfObject should be set to QuestionItem or QuestionGrid."
            },
            "InputMeasurementReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "MeasurementItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a Measurement used in the instruction. Allows the designation of an Alias used by the instruction. TypeOfObject should be set to MeasurementItem."
            },
            "InputVariableReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Variable"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a variable used in the coding process. Allows the designation of an Alias used by the instruction. TypeOfObject should be set to Variable."
            },
            "ExternalInformation": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ExternalInformationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Reference to an external source of information used in the coding process, for example a value from a chart, etc."
            },
            "CommandCode": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CommandCodeType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Structured information used by a system to process the instruction."
            },
            "ControlConstructReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ComputationItem",
                          "DevelopmentStep",
                          "IfThenElse",
                          "Loop",
                          "MeasurementConstruct",
                          "QuestionConstruct",
                          "RepeatUntil",
                          "RepeatWhile",
                          "SampleStep",
                          "SamplingStage",
                          "Sequence",
                          "Split",
                          "SplitJoin",
                          "StatementItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A control construct which is used to describe or process the instruction."
            },
            "Aggregation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/AggregationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describes the aggregation process, identifying both the independent and dependent variables within the process."
            },
            "IsDerived": {
              "$ref": "#/$defs/boolean",
              "description": "Default setting is \u0022true\u0022, the instruction describes a derivation. If the instruction is a simple recode, set to \u0022false\u0022."
            }
          }
        }
      ]
    },
    "GenericMap": {
      "description": "Maps the content of two different schemes of objects of the same type providing detail for the comparable items within those two schemes. Note that comparisons can be made between multiple items in the same scheme or two versions of the same scheme. In addition to the standard name, label, and description of the map, identifies the source scheme and target scheme containing those objects, describes the correspondence between the source and target schemes, and provides detailed comparison of the items within those two schemes.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfMappedItem": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The type of item being mapped. The use of a controlled vocabulary is strongly recommended. "
            },
            "MapName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the Map."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the Map."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the Map."
            },
            "SourceSchemeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Archive",
                        "CategoryScheme",
                        "ClassificationFamily",
                        "CodeList",
                        "CodeListScheme",
                        "Comparison",
                        "ConceptScheme",
                        "ConceptualComponent",
                        "ConceptualVariableScheme",
                        "ControlConstructScheme",
                        "DDIInstance",
                        "DDIProfile",
                        "DataCollection",
                        "DevelopmentActivityScheme",
                        "GeographicLocationScheme",
                        "GeographicStructureScheme",
                        "Group",
                        "InstrumentScheme",
                        "InterviewerInstructionScheme",
                        "LocalHoldingPackage",
                        "LogicalProduct",
                        "ManagedRepresentationScheme",
                        "MeasurementScheme",
                        "NCubeScheme",
                        "OrganizationScheme",
                        "OtherMaterialScheme",
                        "PhysicalDataProduct",
                        "PhysicalInstance",
                        "PhysicalInstanceGroup",
                        "PhysicalStructureScheme",
                        "PopulationScheme",
                        "ProcessingEventScheme",
                        "ProcessingInstructionScheme",
                        "QualityScheme",
                        "QuestionScheme",
                        "RecordLayoutScheme",
                        "RepresentedVariableScheme",
                        "ResourcePackage",
                        "SamplingInformationScheme",
                        "StudyUnit",
                        "UnitTypeScheme",
                        "UniverseScheme",
                        "VariableScheme"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Mappings are unidirectional. The scheme referenced as the source is the scheme contents that would be transformed into the scheme contents identified as the target scheme contents."
            },
            "TargetSchemeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Archive",
                        "CategoryScheme",
                        "ClassificationFamily",
                        "CodeList",
                        "CodeListScheme",
                        "Comparison",
                        "ConceptScheme",
                        "ConceptualComponent",
                        "ConceptualVariableScheme",
                        "ControlConstructScheme",
                        "DDIInstance",
                        "DDIProfile",
                        "DataCollection",
                        "DevelopmentActivityScheme",
                        "GeographicLocationScheme",
                        "GeographicStructureScheme",
                        "Group",
                        "InstrumentScheme",
                        "InterviewerInstructionScheme",
                        "LocalHoldingPackage",
                        "LogicalProduct",
                        "ManagedRepresentationScheme",
                        "MeasurementScheme",
                        "NCubeScheme",
                        "OrganizationScheme",
                        "OtherMaterialScheme",
                        "PhysicalDataProduct",
                        "PhysicalInstance",
                        "PhysicalInstanceGroup",
                        "PhysicalStructureScheme",
                        "PopulationScheme",
                        "ProcessingEventScheme",
                        "ProcessingInstructionScheme",
                        "QualityScheme",
                        "QuestionScheme",
                        "RecordLayoutScheme",
                        "RepresentedVariableScheme",
                        "ResourcePackage",
                        "SamplingInformationScheme",
                        "StudyUnit",
                        "UnitTypeScheme",
                        "UniverseScheme",
                        "VariableScheme"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the scheme containing the target structure."
            },
            "Correspondence": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CorrespondenceType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describe the level of similarity and difference between the Source and the Target schemes."
            },
            "ItemMap": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ItemMapType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Contains the mappings for individual items within the Source and Target schemes."
            }
          }
        }
      ]
    },
    "GeographicLocation": {
      "description": "Describes specific instances of GeographicLocations associated with a specified GeographicLevel in a GeographicStructure. In addition to the standard name, level, and description, specifies the Geographic Level either by reference to an existing description in a GeographicStructure or by a textual description, identifies the authorization source for naming and coding identification a set of individual LocationValues.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "GeographicLocationName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the GeographicLocation."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the GeographicLocation."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the GeographicLocation."
            },
            "GeographicLevelReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicLevelType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Reference to an existing GeographicLevel describing structural level to which these locations belong."
            },
            "GeographicLevelDescription": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the GeographicLevel."
            },
            "AuthorizedSource": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/AuthorizedSourceType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "An identifiable authorization source repeated for each identifying code type. This allows the codes to be used as representations for response domains and value representations by designating a specific set of locations and the code of an authorization source. An authorization source should differentiate between codes derived for different purposes within the same agency."
            },
            "LocationValue": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/LocationValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A location of the specified geographic level providing information on its name, identification codes, temporal and spatial coverage."
            }
          }
        }
      ]
    },
    "GeographicLocationGroup": {
      "description": "Contains a group of GeographicLocations, which may describe an ordered or hierarchical relationship structure. Specifies the purpose of the group, a name, label, and description of the group, its relationship to a specific universe, population, or concept, and lists the members of the group.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfGeographicLocationGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a GeographicLocationGroup. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "GeographicLocationGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the GeographicLocationGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the GeographicLocationGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the GeographicLocationGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this GeographicLocationGroup pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "GeographicLocationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicLocation"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent GeographicLocation (from the substitution group). TypeOfObject should be set to GeographicLocation."
            },
            "GeographicLocationGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicLocationGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent GeographicLocationGroup. This allows for nesting of GeographicLocationGroups. TypeOfObject should be set to GeographicLocationGroup."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "GeographicLocationScheme": {
      "description": "A Scheme containing a set of geographic locations, each for a single Geography type, e.g., States, OR Counties, OR Countries, etc. The geographic location element has to be repeated for each geography. In addition to the standard name, label, and description, allows for the inclusion of an existing GeographicLocationScheme by reference and GeographicLocation descriptions either in-line or by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "GeographicLocationSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the GeographicLocationScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the GeographicLocationScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the GeographicLocationScheme."
            },
            "GeographicLocationSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicLocationScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Inclusion of an existing GeographicLocationScheme by reference."
            },
            "GeographicLocationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicLocation"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Description of a GeographicLocation."
            },
            "GeographicLocationGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicLocationGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line description of a group of GeographicLocation."
            }
          }
        }
      ]
    },
    "GeographicStructure": {
      "description": "Contains information on the hierarchy of the geographic structure. In addition to the standard name, label, and description identifies one or more AuthorizedSources for the level codes/descriptions provided and a set of GeographicLevels in-line or by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "GeographicStructureName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the GeographicStructure."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the GeographicStructure."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the GeographicStructure."
            },
            "AuthorizedSource": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/AuthorizedSourceType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "An identifiable authorization source repeated for each identifying code type. This allows the codes to be used as representations for response domains and value representations by designating a specific set of locations and the code of an authorization source. An authorization source should differentiate between codes derived for different purposes within the same agency."
            },
            "GeographicLevel": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/GeographicLevelType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Used to describe any level of geography, including overall coverage and each of the lower levels."
            },
            "GeographicLevelReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/GeographicLevelType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Inclusion of an existing GeographicLevel description by reference."
            }
          }
        }
      ]
    },
    "GeographicStructureGroup": {
      "description": "Contains a group of GeographicStructures, which may describe an ordered or hierarchical relationship structure. Specifies the purpose of the group, a name, label, and description of the group, its relationship to a specific universe, population, or concept, and lists the members of the group.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfGeographicStructureGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a GeographicStructureGroup. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "GeographicStructureGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the GeographicStructureGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the GeographicStructureGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the GeographicStructureGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this GeographicStructureGroup pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "GeographicStructureReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicStructure"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent GeographicStructure (from the substitution group). TypeOfObject should be set to GeographicStructure."
            },
            "GeographicStructureGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicStructureGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent GeographicStructureGroup. This allows for nesting of GeographicStructureGroups. TypeOfObject should be set to GeographicStructureGroup."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "GeographicStructureScheme": {
      "description": "Contains information on the hierarchy of the geographic structure. In addition to the standard name, label, and description identifies one or more AuthorizedSources for the level codes/descriptions provided and a set of GeographicLevels in-line or by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "GeographicStructureSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the GeographicStructureScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the GeographicStructureScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the GeographicStructureScheme."
            },
            "GeographicStructureSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicStructureScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "The inclusion of an existing GeographicStructureScheme in the parent scheme by reference."
            },
            "GeographicStructureReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicStructure"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Used to describe any level of geography, including overall coverage and each of the lower levels."
            },
            "GeographicStructureGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicStructureGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line description of a group of GeographicStructure."
            }
          }
        }
      ]
    },
    "Group": {
      "description": "A primary packaging and publication module within DDI containing a Group of StudyUnits. The Group structure allows metadata regarding multiple study units to be published as a structured entity. Studies may be grouped \u0022by design\u0022 such as a repeated study with intended areas of commonality between each study, or \u0022ad hoc\u0022 where studies are grouped for applied or administrative reasons. When grouping is done \u0022by design\u0022, such as within a longitudinal study, common metadata such as shared methodology, common category schemes, etc. may be moved up from the individual studies into the Group and inherited by all the members of the group. Inherited metadata may be over-ridden at the lower levels. Inheritance may be turned \u0022off\u0022 for groups of study units done on an ad-hoc basis, such as a set of studies used for a particular activity such as instruction. The purpose of groups is described using the attributes which summarize relationships along the dimensions of time, panel, geography, instrument and language. These attributes allow the purpose to be machine-actionable, while the group also includes an element for describing the purpose in human-readable format. As a publication package Group contains a Citation, Abstract, information on authorization, the universe and population of the group, series statement, quality statements, ex-post evaluation material, funding and budget, purpose, coverage, analysis units covered, kind of data, other materials, a list of required resource packages and embargo information. It then allows all maintainable structures within the StudyUnit to be expressed at the Group level along with individual StudyUnits. StudyUnits may also be grouped into subordinate Groups allowing for infinite nesting of StudyUnits.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A brief textual identification of the StudyUnit. Supports the use of an external controlled vocabulary."
            },
            "Citation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CitationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The citation for the group. DDI strongly recommends that at minimum a Title be provided."
            },
            "Abstract": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "An abstract of the group unit describing the nature and scope of the data collection, special characteristics of its content. Note that detailed information on the purpose of the group and structured coverage information are to be entered in Purpose and Coverage."
            },
            "AuthorizationSource": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/AuthorizationSourceType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Identifies the authorizing agency for the group and allows for the full text of the authorization (law, regulation, or other form of authorization). May be used to list authorizations from oversight committees and other regulatory agencies."
            },
            "ApprovalReviewReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ApprovalReview"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Provides information about the Approval Review undertaken in relation to the activity. Identifies the organization processing the review, the role of the approval review organization, case number, description, and related dates. Allows the inclusion of a reference to an external source detailing the approval review."
            },
            "DefiningConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A concept that defines or aids in understanding the content of the group."
            },
            "UniverseReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Universe"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to a Universe describing the persons or other units to which the studies in this Group and any analytic results refer. A Universe is defined by a Unit Type and shared characteristics, independently of geographic area and time period. Examples include persons of a specified gender, businesses with at least 50 employees, or businesses in the manufacturing industry. The description should make it possible to determine whether a given unit belongs to the Universe. A Universe may be described using inclusion or exclusion criteria. Use Population to specify geographic and temporal scope. This Group level reference is normally to the top level of the UniverseScheme."
            },
            "PopulationReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Population"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the population statement describing the persons or other elements to which the studies in this Group and their analytic results refer."
            },
            "SeriesStatement": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/SeriesStatementType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A group, particularly one in a series, may be the result of two series merging into a single group. The new group belongs to both series. For example, Niger now fields the UNICEF Multiple Indicators Cluster Survey (MICS) and the Demographic and Health Survey as a single merged instrument."
            },
            "InformationClassificationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "InformationClassification"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Used to describe the rules and guidelines on how the data is allowed to be handled, transferred, stored and disposed. These confidentiality policies are often dictated by national laws and/or data owners on handling of personal, proprietary, and other sensitive information."
            },
            "QualityStatementReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityStatement"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to a Quality Statement pertaining to the quality of the group overall, metadata, or data to which it is associated. Quality statements may be related to external quality standards."
            },
            "QualitySchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A scheme containing statements of quality related to the quality of methodologies, metadata, or data. Quality statements and standards may be related to external quality standards."
            },
            "ExPostEvaluation": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ExPostEvaluationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "An evaluation of the group process, often taking place after the completion of the group. These may include issues such as timing of the group, sequencing issues, cost/budget issues, relevance, institutional or legal arrangements etc. of the group. If the group is part of a series or group (i.e., a single wave in a longitudinal group) this may include evaluation of earlier waves which resulted in changes to the current wave."
            },
            "FundingInformation": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/FundingInformationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Contains details of the group unit\u0027s funding, including information about grants, agencies, etc."
            },
            "ProjectBudget": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/BudgetType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "This describes the overall budget of the group. It can be repeated for distinct budget activities. It contains a structured description and one or more budget documents described by an OtherMaterial type."
            },
            "Purpose": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "The purpose of the group, why the group took place. This should include detailed information on the investigator\u0027s primary group questions or hypotheses as well as information on any legal basis for the data collection, such as laws requiring the collection of census data for apportionment purposes. Legal or other authorization should be provided in detail within AuthorizationSource."
            },
            "Coverage": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CoverageType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describes the coverage of the group unit. Detailed information on Topical, Temporal, and Spatial Coverage is contained here. Note that Coverage at this level should be inclusive all lower level modules or section. Lower level descriptions serve to constrain coverage within the scope described here."
            },
            "AnalysisUnit": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Allows the use of a controlled vocabulary to list all of the units of analysis used in the group. Should be repeated to describe multiple units of analysis. The DDI Alliance has provided a controlled vocabulary (AnalysisUnit) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "AnalysisUnitsCovered": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A narrative of the units of analysis in the group unit."
            },
            "KindOfData": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/KindOfDataType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Briefly describes the kind of data documented in the logical product(s) of a group unit. Examples include survey data, census/enumeration data, administrative data, measurement data, assessment data, demographic data, voting data, etc. Supports the use of an external controlled vocabulary."
            },
            "GeneralDataFormat": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Briefly describes the data formats documented in the logical product(s) of a group unit. Examples include Numeric, Text, Audio, Visual, Geospatial, StillImage, Software, 3D, etc. Supports the use of an external controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (GeneralDataFormat) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "RequiredResourcePackages": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/RequiredResourcePackagesType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Specifies by reference the ResourcePackages required to resolve the group. This list is informational and assists in creating full transmissions of metadata or creating archival packages. Primarily used after the instance is relatively stable and published."
            },
            "Embargo": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/EmbargoType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Embargo information about the group unit. References to embargo information in this section can be made from individual variables."
            },
            "OtherMaterialSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "OtherMaterialScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "This scheme contains a set of other materials referenced by the metadata."
            },
            "ConceptualComponentReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ConceptualComponent"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "ConceptualComponent applying to the group as a whole."
            },
            "DataCollectionReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DataCollection"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "DataCollection applying to the group as a whole."
            },
            "LogicalProductReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "LogicalProduct"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "LogicalProduct applying to the group as a whole."
            },
            "PhysicalDataProductReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PhysicalDataProduct"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "PhysicalDataProduct applying to the group as a whole."
            },
            "PhysicalInstanceReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PhysicalInstance"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "PhysicalInstance applying to the group as a whole."
            },
            "PhysicalInstanceGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PhysicalInstanceGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows physical instance modules to be grouped with or without hierarchical structure."
            },
            "ArchiveReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Archive"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Archive applying to the group as a whole."
            },
            "ClassificationFamilyReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ClassificationFamily"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for in-line entry of a Classification Family."
            },
            "DDIProfileReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DDIProfile"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "DDIProfile applying to the group as a whole."
            },
            "ComparisonReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Comparison"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line Comparison of differences between related objects in different study units or due to versioning."
            },
            "StudyUnitReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "StudyUnit"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A StudyUnit within the Group provided in-line."
            },
            "GroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Group"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A description of study units comprising a subordinate Group within the main Group."
            },
            "Time": {
              "$ref": "#/$defs/string",
              "enum": [
                "T0",
                "T1",
                "T2",
                "T3",
                "T4",
                "T5"
              ],
              "description": "Indicates how all members of the group are related along the dimension of time (for example single occurrence, multiple occurrence, etc.)."
            },
            "CaptureInstrument": {
              "$ref": "#/$defs/string",
              "enum": [
                "I0",
                "I1",
                "I2",
                "I3"
              ],
              "description": "Indicates how all members of the group are related in terms of the instruments used to collect data (single, multiple, etc.)."
            },
            "Panel": {
              "$ref": "#/$defs/string",
              "enum": [
                "P0",
                "P1",
                "P2",
                "P3",
                "P4"
              ],
              "description": "Indicates how all members of the group are related in terms of type of panel (single, rolling, etc.)."
            },
            "Geography": {
              "$ref": "#/$defs/string",
              "enum": [
                "G0",
                "G1",
                "G2",
                "G3",
                "G4"
              ],
              "description": "Indicates how all members of the group are related along the dimension of geography."
            },
            "DataProduct": {
              "$ref": "#/$defs/string",
              "enum": [
                "D0",
                "D1",
                "D2",
                "D3",
                "D4"
              ],
              "description": "Indicates how all members of the group are related in terms of physical data products in relation to data collection efforts."
            },
            "LanguageRelationship": {
              "$ref": "#/$defs/string",
              "enum": [
                "L0",
                "L1",
                "L2",
                "L3",
                "L4",
                "L5",
                "L6",
                "L7"
              ],
              "description": "Indicates how all members of the group are related in terms of language relationships such as parallel content in multiple languages, translations (full or partial), etc."
            },
            "UserDefinedGroupProperty": {
              "$ref": "#/$defs/string",
              "description": "Provides a user-defined grouping property, different from those supplied in other attributes."
            },
            "UserDefinedGroupPropertyValue": {
              "$ref": "#/$defs/string",
              "description": "Provides a value for the user-defined group property supplied in userDefinedGroupProperty."
            },
            "IsInheritable": {
              "$ref": "#/$defs/boolean",
              "description": "Default is true, and allows for inheritance of all properties and modules, and the use of lower-level over-rides. If set to false, inheritance is switched off for specific groups."
            }
          }
        }
      ]
    },
    "IfThenElse": {
      "description": "A member of the ControlConstruct substitution group. Describes an if-then-else decision type of control construct. IF the stated condition is met, the THEN clause is triggered, otherwise the ELSE clause is triggered. Contains an IfCondition (the condition that must be met to trigger the Then clause), a ThenConstructReference (indicating the construct to invoke if the condition is met), an ElseConstructReference (indicating the construct to invoke if the condition is not met), and an ElseIf structure allowing the expression of multiple conditions to invoke multiple branching.",
      "allOf": [
        {
          "$ref": "#/$defs/ControlConstruct"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfIfThenElse": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A brief textual identification of the IfThenElse. Supports the use of an external controlled vocabulary."
            },
            "IfCondition": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CommandCodeType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The condition which must be met to trigger the Then clause, expressed as a CommandCode. The condition is an expression in the programming language used in the instrument."
            },
            "ThenConstructReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Sequence"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the control construct which should be triggered if the associated condition is met."
            },
            "ElseIf": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ElseIfType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Use for multiple branching from a single point in the flow logic represented by the flow logic If, Then, ElseIf, Then, etc."
            },
            "ElseConstructReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Sequence"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the control construct which is triggered if the associated condition is not met."
            }
          }
        }
      ]
    },
    "InLineNCubeRecordLayout": {
      "description": "A member of the BaseRecordLayout substitution group intended for use when the data items of an NCube Instances are captured in-line within the metadata instance. In addition to the link to the PhysicalStructure provided by BaseRecordLayout, the record layout is this namespace (m2) identifies the array base for the in-line data, a full description of each data item contained within an NCube Instance including a link to its description (matrix address) and contained values.",
      "allOf": [
        {
          "$ref": "#/$defs/BaseRecordLayout"
        },
        {
          "type": "object",
          "properties": {
            "ArrayBase": {
              "$ref": "#/$defs/int",
              "description": "Sets the array base for any arrays used in the definition (that is, whether the first value is in position 0 or 1, etc.). This may be the data array in a delimited data file or the measure array for measures that are bundled and stored in a single location. Array base is generally set to either 0 or 1. There is no override provided as systems processing a record would use a consistent array base."
            },
            "NCubeInstanceIReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "NCubeInstanceI"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A container for defining an instance of an NCube, indicating the matrix address of each cell and capturing the data for each measure within a cell of the NCube is stored. Allows specifying the values of the attributes attached to a NCube."
            }
          }
        }
      ]
    },
    "Individual": {
      "description": "Details of an individual including name, contact information, a definition, keywords to support searching, their regional affiliation, language ability and any additional information. The individual and specific pieces of information regarding the individual may be tagged for information privacy.",
      "allOf": [
        {
          "$ref": "#/$defs/Agent"
        },
        {
          "type": "object",
          "properties": {
            "IndividualIdentification": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/IndividualIdentificationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifying information about the individual."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the individual."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Keywords used to classify an individual or their activities. May be used to support searching."
            },
            "RegionalCoverage": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "The regional coverage of the individual. The geographic regions within which the individual is active."
            },
            "AdditionalInformation": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Any information not captured by the other descriptive objects. The privacy code may be set to indicate access restriction to this information."
            },
            "LanguageAbility": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/IndividualLanguageType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Use to specify the languages known by the individual in terms of their ability to  speak, read, and write the language. May be repeated to cover multiple languages."
            },
            "ContactInformation": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ContactInformationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Contact information for the individual including location specification, address, URL, phone numbers, and other means of communication access. Address, location, telephone, and other means of communication can be repeated to express multiple means of a single type or change over time. Each major piece of contact information (with exception of URL contains the element EffectiveDates in order to date stamp the period for which the information is valid."
            },
            "Privacy": {
              "$ref": "#/$defs/string",
              "enum": [
                "public",
                "restricted",
                "private"
              ],
              "description": "A basic set of privacy codes for the parent element. These may be stricter than the general access restrictions for the overall metadata. If available codes are insufficient this may also contain any string."
            }
          }
        }
      ]
    },
    "InformationClassification": {
      "description": "Used to describe the rules and guidelines on how the data is allowed to be handled, transferred, stored and disposed. These confidentiality policies are often dictated by national laws and/or data owners on handling of personal, proprietary, and other sensitive information.",
      "allOf": [
        {
          "$ref": "#/$defs/Describable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfInformationClassification": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Classification of the type of Information Classification. Supports the use of an external controlled vocabulary."
            },
            "LevelOfInformationClassification": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Data classification level as determined by an assessment of the need of confidentiality of the data. Supports the use of an external controlled vocabulary."
            },
            "AgencyOrganizationReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Individual",
                        "Organization"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A reference to an organization or individual responsible for the information classification."
            },
            "DataHandlingPersonnelRules": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Description of the rules applied to any individual with access to the data, e.g. security clearance, confidentiality agreements, or authentication."
            },
            "DataEncryptionRules": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Description of the rules regarding what encryption level is needed on the data."
            },
            "DataStorageRules": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Description of the rules regarding how data is allowed to be stored."
            },
            "DisposalRules": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Description of the rules regarding when and how data should be disposed."
            },
            "DataTransferRules": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Description of the rules regarding how data is allowed to be transferred."
            },
            "AuthorizedPolicySource": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/AuthorizedPolicySourceType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Description and link to the Information Classification policy using the DDI Other Material structure."
            }
          }
        }
      ]
    },
    "Instruction": {
      "description": "Provides the content and description of a single instruction. In addition to the standard name, label, and description, an InParameter can be designated to specify information needed to process the dynamic content of the instruction, an image can be associated with the instruction, and the instruction text provided using DynamicText. Note that when using Dynamic Text, the full InstructionText must be repeated for multi-language versions of the content. Different languages may handle the dynamic portions in different locations and/or with different content. Therefore languages cannot be mixed within a dynamic text except when the full text itself has multiple language sections, for example, a foreign language term in a text. The InstructionText may also be repeated to provide a dynamic and plain text version of the instruction. This allows for accurate rendering of the instruction in a non-dynamic environment like print.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "InstructionName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the Instruction."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the Instruction."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the Instruction."
            },
            "InParameter": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InParameterType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A parameter that may accept content from outside the Instruction. In addition to standard parameter content may provide the instructions for limiting the allowable array index."
            },
            "AssociatedImage": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ImageType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "An image associated with the Instruction, located at the provided URN or URL."
            },
            "InstructionText": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DynamicTextType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "The content of the Instruction text provided using DynamicText. Note that when using Dynamic Text, the full InstructionText must be repeated for multi-language versions of the content. The InstructionText may also be repeated to provide a dynamic and plain text version of the instruction. This allows for accurate rendering of the instruction in a non-dynamic environment like print."
            }
          }
        }
      ]
    },
    "InstructionGroup": {
      "description": "Contains a group of Instructions, which may describe an ordered or hierarchical relationship structure. Specifies the purpose of the group, a name, label, and description of the group, its relationship to a specific universe, population, or concept, and lists the members of the group.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfInstructionGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a InstructionGroup. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "InstructionGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the group."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the InstructionGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the InstructionGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this InstructionGroup pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "InstructionReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Instruction"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent Instruction (from the substitution group). TypeOfObject should be set to Instruction."
            },
            "InstructionGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "InstructionGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent InstructionGroup. This allows for nesting of InstructionGroups. TypeOfObject should be set to InstructionGroup."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "Instrument": {
      "description": "Defines the type of instrument used for data collection or capture. In addition to the standard name, label, and description contains a classification of the type of instrument, a reference to an external instance of the instrument (such as an image of a questionnaire or programming script) and a reference to the Sequence control construct that contains the flow for data collection or capture.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "InstrumentName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the Instrument."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the Instrument."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the Instrument."
            },
            "TypeOfInstrument": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describes the type of the instrument, according to the documenters type classification. Supports the use of an external controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (TypeOfInstrument) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "ExternalInstrumentLocation": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/anyURI"
              },
              "minItems": 0,
              "description": "A reference to an external representation of the data collection instrument, such as an image of a questionnaire or programming script."
            },
            "ControlConstructReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ComputationItem",
                        "DevelopmentStep",
                        "IfThenElse",
                        "Loop",
                        "MeasurementConstruct",
                        "QuestionConstruct",
                        "RepeatUntil",
                        "RepeatWhile",
                        "SampleStep",
                        "SamplingStage",
                        "Sequence",
                        "Split",
                        "SplitJoin",
                        "StatementItem"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A reference to the Sequence control construct that initiates the flow of the instrument content."
            },
            "FieldedLanguages": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Language in which the Instrument is fielded. Include all options as separate items. Language can be specified by region, for example en-AU. Supports the use of a controlled vocabulary."
            },
            "DevelopmentResultsReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DevelopmentResults"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the development implementation results which gave rise to this version of the object. TypeOfObject should be DevelopmentResults."
            }
          }
        }
      ]
    },
    "InstrumentGroup": {
      "description": "Describes a group of instruments for administrative or conceptual purposes, which may be hierarchical. In addition to the standard name, label, and description, contains references to the contained Instruments and InstrumentGroups.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfInstrumentGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a instrument group. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "InstrumentGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the InstrumentGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the InstrumentGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the InstrumentGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this InstrumentGroup pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "InstrumentReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Instrument"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent instrument."
            },
            "InstrumentGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "InstrumentGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent instrument group. This allows for nesting of instrument groups."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "InstrumentScheme": {
      "description": "Describes a set of instruments maintained by an agency. In addition to the standard name, label, and description, allows for the inclusion of an existing InstrumentScheme by reference and contains Instruments and InstrumentGroups inline an by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "InstrumentSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the InstrumentScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the InstrumentScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the InstrumentScheme."
            },
            "InstrumentSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "InstrumentScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for inclusion by reference of another Instrument Scheme."
            },
            "InstrumentReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Instrument"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes an instrument within this instrument scheme."
            },
            "InstrumentGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "InstrumentGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a group of instruments as in instrument group within an instrument scheme."
            }
          }
        }
      ]
    },
    "InterviewerInstructionScheme": {
      "description": "A set of interviewer instructions to be displayed within the instrument, such as definitions, and explanations of terminology and questions. Content may also be used to provide the contents of an instruction manual for questions or instruments. In addition to the standard name, label, and description, allows for the inclusion of another InterviewerInstructionScheme by reference an a set of in-line instructions.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "InterviewerInstructionSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the InterviewerInstructionScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the InterviewerInstructionScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the InterviewerInstructionScheme."
            },
            "InterviewerInstructionSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "InterviewerInstructionScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for the inclusion of an existing InterviewerInstructionScheme by reference."
            },
            "InstructionReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Instruction"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Content of an individual instruction."
            },
            "InstructionGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "InstructionGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line description of a group of Instructions."
            }
          }
        }
      ]
    },
    "LocalHoldingPackage": {
      "description": "Allows a depository to hold the contents of a DDI StudyUnit, Group, or ResourcePackage as received while providing locally created value added material and processing information without having to alter the maintenance agency or version of the original material. Contains the depository object by reference plus local added content including the objects added and a link to the location of the addition or change in the deposited object.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "DepositoryStudyUnitReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "StudyUnit"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to the StudyUnit as deposited."
            },
            "DepositoryGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Group"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to the Group as deposited."
            },
            "DepositoryResourcePackageReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ResourcePackage"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to a ResourcePackage as deposited."
            },
            "DefiningConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A concept that defines or aids in understanding the content of the local holding package."
            },
            "LocalAddedContent": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/LocalAddedContentType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A reference to the ResourcePackage as deposited."
            }
          }
        }
      ]
    },
    "LogicalProduct": {
      "description": "A module describing the logical (intellectual) contents of the quantitative data. It is a member of the substitution group BaseLogicalProduct and contains all of the common features of the BaseLogicalProduct as well as content specific to quantitative data. This is a member of the BaseLogicalProduct substitution group and in addition to the content inherited from the BaseLogicalProduct, contains CategorySchemes, CodeListSchemes, ManagedRepresentationSchemes, RepresentedVariableSchemes, VariableSchemes an NCubeSchemes both in-line an by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/BaseLogicalProduct"
        },
        {
          "type": "object",
          "properties": {
            "CategorySchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CategoryScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Contains descriptions of particular categories used as question responses and in the logical product. Their relationships and code values are described in the code scheme."
            },
            "CodeListSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CodeListScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Lists the code values used to represent categories for a variable or question. Also describes hierarchical relationships between categories used in the code scheme."
            },
            "ManagedRepresentationSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ManagedRepresentationScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A scheme containing representations that are being managed as reusable sources for response domains and value representations."
            },
            "RepresentedVariableSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RepresentedVariableScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A set of RepresentedVariables managed by an agency. RepresentedVariables are the core reusable parts of a Variable. RepresentedVariable maps to the GSIM Represented Variable. In addition to the standard name, label, and description, allows for the inclusion of an existing RepresentedVariableScheme by reference and RepresentedVariables either in-line or by reference. RepresentedVariables may be grouped for management purposes."
            },
            "VariableSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "VariableScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Contains a collection of variables and variable groups."
            },
            "NCubeSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "NCubeScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Contains a collection of NCubes and NCube groups."
            }
          }
        }
      ]
    },
    "Loop": {
      "description": "A member of the control construct substitution group. Describing an action which loops until a limiting condition is met. The ControlConstruct contained in the Loop operates on the LoopVariable until the LoopWhile condition is met, and then control is handed back to the containing control construct.",
      "allOf": [
        {
          "$ref": "#/$defs/ControlConstruct"
        },
        {
          "type": "object",
          "properties": {
            "LoopVariableReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A reference to the variable (as used in the associated CommandCode) which is incremented or otherwise manipulated to meet the conditions stated in the LoopWhile condition."
            },
            "InitialValue": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CommandCodeType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Information on the command used to set the initial value for the process. Could be a simple value."
            },
            "LoopWhile": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CommandCodeType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Information on the command used to determine whether the \u0022LoopWhile\u0022 condition is met."
            },
            "StepValue": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CommandCodeType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Information on the command used to set the incremental or step value for the process. Could be a simple value."
            },
            "ControlConstructReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ComputationItem",
                        "DevelopmentStep",
                        "IfThenElse",
                        "Loop",
                        "MeasurementConstruct",
                        "QuestionConstruct",
                        "RepeatUntil",
                        "RepeatWhile",
                        "SampleStep",
                        "SamplingStage",
                        "Sequence",
                        "Split",
                        "SplitJoin",
                        "StatementItem"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A reference to the ControlConstruct to implement until the LoopWhile condition is met. This could be a single ControlConstruct or a set of ControlConstructs within a Sequence."
            }
          }
        }
      ]
    },
    "Maintainable": {
      "description": "Adds the attribute identifying this as a maintainable object. All content of Maintainable is considered to be administrative metadata. Note that changes to the administrative metadata does not drive a change in the version of the parent objects. All content of Maintainable with the exception of \u0027Note\u0027 is considered to be administrative metadata. Note that changes to the administrative metadata does not drive a change in the version of the parent objects. See DDI 3.2 Technical Documentation: Part I for further details.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "Note": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/NoteType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Note allows for the attachment of a piece of additional information to any object with an ID. Note facilitates capturing temporary processing notes such as \u0022Review and approval required\u0022. A single note can be attached to multiple objects by reference to the objects. Note may also contain content for a needed object that has been reported for addition in a later version of the schema. Ideally this should be handled by a local extension, but Note can accommodate run-time extensions when required. The Note should be housed within the Maintainable object that contains the referenced objects. In this way the user is ensured of receiving all known Note attachments when the maintainable content is delivered. This means that if a Note references objects within multiple Maintainable objects, the Note should be repeated in each Maintainable and reference only those objects with that Maintainable."
            },
            "Software": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/SoftwareType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Indicate the software used to create and/or manage the metadata. This is repeatable to allow for multiple softwares or multiple functions. If this information is important it is advisable to provide it in each maintainable so that it does not become separated from the internal content if the metadata is re-factored."
            },
            "MetadataQuality": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/MetadataQualityType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "An assessment of the quality of the metadata within the Maintainable object, e.g. the quality of the transcription, completeness, editing status, etc."
            },
            "ExternalReferenceDefaultURI": {
              "$ref": "#/$defs/anyURI",
              "description": "Use to provide a default value for the URI of external references. Use of a URI in a reference within this maintainable overrides the value entered here. Nested maintainables should redeclare the contents of this attribute for clarity."
            },
            "Lang": {
              "$ref": "#/$defs/language",
              "description": "This is used to designate the language of the metadata content of the maintainable. If a lower level xml:lang attribute conflicts with the content at the maintainable level, the object level value takes precedence."
            }
          }
        }
      ]
    },
    "ManagedCategoryRepresentation": {
      "description": "Describes a representation based on categorization. The CategorySchemeReference allows for the exclusion of selected items from the use of the CategoryScheme as a representation.",
      "allOf": [
        {
          "$ref": "#/$defs/ManagedRepresentation"
        },
        {
          "type": "object",
          "properties": {
            "RecommendedDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides the recommended treatment of the data within an application. The value should come from a controlled vocabulary - recommended values include the set found in W3C XML Schema Part 2, but excluding string sub-types, QNAME, and NOTATION. The DDI Alliance has provided a controlled vocabulary (DataType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "GenericOutputFormat": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides a recommended generic treatment of the data for display by an application. The value should come from a controlled vocabulary."
            },
            "MeasurementUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Records the measurement unit, for example, \u0027km\u0027, \u0027miles\u0027, etc. Supports the use of a controlled vocabulary."
            },
            "CategorySchemeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CategoryScheme"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A reference to a CategoryScheme containing the required categories using the SchemeReference structure. Use Exclude in the SchemeReference to designate any categories NOT to include in this representation."
            },
            "ClassificationLevelCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates the type of relationship, nominal, ordinal, interval, ratio, or continuous. Use where appropriate for the representation type."
            }
          }
        }
      ]
    },
    "ManagedCodeRepresentation": {
      "description": "Describes the use of all or part of a CodeList as a representation used by a question response domain or variable value representation.",
      "allOf": [
        {
          "$ref": "#/$defs/ManagedRepresentation"
        },
        {
          "type": "object",
          "properties": {
            "RecommendedDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides the recommended treatment of the data within an application. The value should come from a controlled vocabulary - recommended values include the set found in W3C XML Schema Part 2, but excluding string sub-types, QNAME, and NOTATION. The DDI Alliance has provided a controlled vocabulary (DataType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "GenericOutputFormat": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides a recommended generic treatment of the data for display by an application. The value should come from a controlled vocabulary."
            },
            "MeasurementUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Records the measurement unit, for example, \u0027km\u0027, \u0027miles\u0027, etc. Supports the use of a controlled vocabulary."
            },
            "CodeListReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CodeList"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A reference to the CodeList included in this representation using the Reference structure."
            },
            "StatisticalClassificationReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "StatisticalClassification"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A reference to the StatisticalClassification included in this representation using the Reference structure."
            },
            "CodeSubsetInformation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeSubsetInformationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows further specification of the codes to use from the CodeList by defining the level or only the most discrete codes of a hierarchical CodeList, the range of codes to use, or an itemized sub-set."
            },
            "ClassificationLevelCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates the type of relationship, nominal, ordinal, interval, ratio, or continuous. Use where appropriate for the representation type."
            }
          }
        }
      ]
    },
    "ManagedDateTimeRepresentation": {
      "description": "Means of describing DateTime so that they can be reused by multiple variables or questions/question constructs. Regardless of the format of the data the content may be treated as a date and or time and converted to ISO standard structure if sufficient information is supplied. In addition to the name, label, and description of the representation, the structure provides the DateField Format, a DateTypeCode and a regular expression for further defining allowed content. The DDI Alliance has provided a controlled vocabulary (DateType) to support this element at http://www.ddialliance.org/controlled-vocabularies.",
      "allOf": [
        {
          "$ref": "#/$defs/ManagedRepresentation"
        },
        {
          "type": "object",
          "properties": {
            "ManagedDateTimeRepresentationName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ManagedDateTimeRepresentation."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ManagedDateTimeRepresentation."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ManagedDateTimeRepresentation."
            },
            "RecommendedDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides the recommended treatment of the data within an application. The value should come from a controlled vocabulary - recommended values include the set found in W3C XML Schema Part 2, but excluding string sub-types, QNAME, and NOTATION. The DDI Alliance has provided a controlled vocabulary (DataType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "GenericOutputFormat": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides a recommended generic treatment of the data for display by an application. The value should come from a controlled vocabulary."
            },
            "MeasurementUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Records the measurement unit, for example, \u0027km\u0027, \u0027miles\u0027, etc. Supports the use of a controlled vocabulary."
            },
            "DateFieldFormat": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describes the format of the date field, in formats such as YYYY/MM or MM-DD-YY, etc. If this element is omitted, then the format is assumed to be the XML Schema format corresponding to the type attribute value."
            },
            "DateTypeCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This is a standard XML date type code and supports the use of an external controlled vocabulary. Examples are date, dateTime, gYearMonth, gYear, and durationThe DDI Alliance has provided a controlled vocabulary (DataType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "Range": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/RangeType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Indicates the high and low values (endpoints) of a non-numeric scale. This can be expressed as a value that matches the DateTime format. Repeatable in order to express as set of non-continuous values."
            },
            "RegExp": {
              "$ref": "#/$defs/string",
              "description": "The regular expression allows for further description of the allowable content of the data."
            },
            "ClassificationLevelCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates the type of relationship, nominal, ordinal, interval, ratio, or continuous. Use where appropriate for the representation type."
            }
          }
        }
      ]
    },
    "ManagedDistributionRepresentation": {
      "description": "Means of describing Distributions as a representation so that they can be used as a response domain questions. Primarily used as a response domain in a QuestionGrid. In addition to the base of objects of a representation the structure provides the total value to be distributed between the objects and the number of decimal positions allowed within a response.",
      "allOf": [
        {
          "$ref": "#/$defs/ManagedRepresentation"
        },
        {
          "type": "object",
          "properties": {
            "ManagedDistributionRepresentationName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ManagedDistributionRepresentation."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ManagedTextRepresentation."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ManagedTextRepresentation."
            },
            "RecommendedDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides the recommended treatment of the data within an application. The value should come from a controlled vocabulary - recommended values include the set found in W3C XML Schema Part 2, but excluding string sub-types, QNAME, and NOTATION. The DDI Alliance has provided a controlled vocabulary (DataType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "GenericOutputFormat": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides a recommended generic treatment of the data for display by an application. The value should come from a controlled vocabulary."
            },
            "MeasurementUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Records the measurement unit, for example, \u0027km\u0027, \u0027miles\u0027, etc. Supports the use of a controlled vocabulary."
            },
            "DistributionValue": {
              "$ref": "#/$defs/decimal",
              "description": "Identifies the total value to be distributed among the designated objects."
            },
            "DecimalPositions": {
              "$ref": "#/$defs/int",
              "description": "Identifies the number of decimal points allowed for the expression of a response."
            },
            "ClassificationLevelCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates the type of relationship, nominal, ordinal, interval, ratio, or continuous. Use where appropriate for the representation type."
            }
          }
        }
      ]
    },
    "ManagedExternalCategoryRepresentation": {
      "description": "Structures a response domain based on categorization that is described in an external non-DDI structure. Includes a UsageDescription that should provide information on how the external source is to be used.",
      "allOf": [
        {
          "$ref": "#/$defs/ManagedRepresentation"
        },
        {
          "type": "object",
          "properties": {
            "RecommendedDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides the recommended treatment of the data within an application. The value should come from a controlled vocabulary - recommended values include the set found in W3C XML Schema Part 2, but excluding string sub-types, QNAME, and NOTATION. The DDI Alliance has provided a controlled vocabulary (DataType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "GenericOutputFormat": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides a recommended generic treatment of the data for display by an application. The value should come from a controlled vocabulary."
            },
            "MeasurementUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Records the measurement unit, for example, \u0027km\u0027, \u0027miles\u0027, etc. Supports the use of a controlled vocabulary."
            },
            "ExternalCategoryReference": {
              "$ref": "#/$defs/anyURI",
              "description": "References an external, non DDI category. This is the element to use if the Code Scheme being used is not in DDI and cannot be used directly. It provides for both the reference and an explanation of how to use the information accurately within a DDI context."
            },
            "UsageDescription": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the use of the external category file."
            },
            "ClassificationLevelCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates the type of relationship, nominal, ordinal, interval, ratio, or continuous. Use where appropriate for the representation type."
            }
          }
        }
      ]
    },
    "ManagedGeographicLocationCodeRepresentation": {
      "description": "Allows for the use of all or part of a GeographicLocation description to be used as a response domain or value representation by a question or variable. In addition to the basic objects of a representation it describes the Geographic Location values available for use by the question or variable.",
      "allOf": [
        {
          "$ref": "#/$defs/ManagedRepresentation"
        },
        {
          "type": "object",
          "properties": {
            "ManagedGeographicLocationCodeRepresentationName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ManagedGeographicLocationCodeRepresentation."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ManagedTextRepresentation."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ManagedTextRepresentation."
            },
            "RecommendedDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides the recommended treatment of the data within an application. The value should come from a controlled vocabulary - recommended values include the set found in W3C XML Schema Part 2, but excluding string sub-types, QNAME, and NOTATION. The DDI Alliance has provided a controlled vocabulary (DataType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "GenericOutputFormat": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides a recommended generic treatment of the data for display by an application. The value should come from a controlled vocabulary."
            },
            "MeasurementUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Records the measurement unit, for example, \u0027km\u0027, \u0027miles\u0027, etc. Supports the use of a controlled vocabulary."
            },
            "IncludedGeographicLocationCodes": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/IncludedGeographicLocationCodesType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the Geographic Location codes included by the Authorized source of the code, the geographic location being used and the locations to exclude."
            },
            "LimitedCodeSegmentCaptured": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/LimitedCodeSegmentCapturedType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "When the code is a concatenation this structure allows you to limit the portion of the concatenated code that this object captures."
            },
            "ClassificationLevelCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates the type of relationship, nominal, ordinal, interval, ratio, or continuous. Use where appropriate for the representation type."
            }
          }
        }
      ]
    },
    "ManagedGeographicRepresentation": {
      "description": "Structures the representation for a geographic point to ensure collection of relevant information using a single response domain structure. The point may be associated with a polygon (such as the centroid of the polygon) or a line (end or shape points of a line). The structure provides a description of the default values for the datum type, coordinate system used, the coordinate zone, error correction method, standard offset, the geographic object being positioned, the type of address match if used, the point format, and spatial primitive type. It provides response options for the coordinate pairs being captured, and alternate values for the offset, geo-referenced object and coordinate system if a different one is used to capture a specific response.",
      "allOf": [
        {
          "$ref": "#/$defs/ManagedRepresentation"
        },
        {
          "type": "object",
          "properties": {
            "ManagedGeographicRepresentationName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ManagedGeographicRepresentation."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ManagedTextRepresentation."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ManagedTextRepresentation."
            },
            "RecommendedDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides the recommended treatment of the data within an application. The value should come from a controlled vocabulary - recommended values include the set found in W3C XML Schema Part 2, but excluding string sub-types, QNAME, and NOTATION. The DDI Alliance has provided a controlled vocabulary (DataType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "GenericOutputFormat": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides a recommended generic treatment of the data for display by an application. The value should come from a controlled vocabulary."
            },
            "MeasurementUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Records the measurement unit, for example, \u0027km\u0027, \u0027miles\u0027, etc. Supports the use of a controlled vocabulary."
            },
            "Datum": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The standard datum format used. Supports the use of a controlled vocabulary."
            },
            "CoordinateSystem": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The standard coordinate system used. Supports the use of a controlled vocabulary."
            },
            "CoordinateZone": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The standard coordinate zone being used. Supports the use of a controlled vocabulary."
            },
            "CoordinateSource": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The standard coordinate source being used. Supports the use of a controlled vocabulary."
            },
            "ErrorCorrection": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The standard method of error correction being used. Supports the use of a controlled vocabulary."
            },
            "Offset": {
              "$ref": "#/$defs/string",
              "description": "A definition of the standard offset used when taking a coordinate reading on the geo-referenced object."
            },
            "GeoreferencedObject": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The standard object for which the geographic coordinates are being captured. This could be a household, village centroid, etc. Supports the use of a controlled vocabulary."
            },
            "AddressMatchType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Use for coordinates obtained through address matching only. Identify the address matching method. Example: street segment match, ZIP code centroid, etc. Supports the use of a controlled vocabulary."
            },
            "CoordinatePairs": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CoordinatePairsType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Field to capture coordinate pairs as individual pairs or as an array of pairs."
            },
            "AlternateOffset": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/TextDomainType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "If unable to use the standard offset, allows entry of a non-standard offset figure."
            },
            "AlternateObject": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/TextDomainType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "If the default geo-referenced object is unavailable or cannot be measured, allows identification of an alternate object."
            },
            "AlternateCoordinateSystem": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/TextDomainType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Specifies the coordinate system used for a response if different from that stated in the response structure."
            },
            "ClassificationLevelCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates the type of relationship, nominal, ordinal, interval, ratio, or continuous. Use where appropriate for the representation type."
            },
            "PointFormat": {
              "$ref": "#/$defs/string",
              "enum": [
                "DecimalDegree",
                "DegreesMinutesSeconds",
                "DecimalMinutes",
                "Meters",
                "Feet"
              ],
              "description": "The type attribute is used by the documenter to describe the numeric response domain."
            },
            "SpatialPrimitive": {
              "$ref": "#/$defs/string",
              "enum": [
                "Point",
                "Polygon",
                "Line",
                "LinearRing"
              ],
              "description": "Indicates the spatial primitive object which the point references."
            }
          },
          "required": [
            "PointFormat",
            "SpatialPrimitive"
          ]
        }
      ]
    },
    "ManagedGeographicStructureCodeRepresentation": {
      "description": "Allows for the use of all or part of a GeographicStructure description to be used as a response domain or value representation by a question or variable. In addition to the basic objects of a representation it describes the Geographic Structure values available for use by the question or variable.",
      "allOf": [
        {
          "$ref": "#/$defs/ManagedRepresentation"
        },
        {
          "type": "object",
          "properties": {
            "ManagedGeographicStructureCodeRepresentationName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ManagedGeographicStructureCodeRepresentation."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ManagedTextRepresentation."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ManagedTextRepresentation."
            },
            "RecommendedDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides the recommended treatment of the data within an application. The value should come from a controlled vocabulary - recommended values include the set found in W3C XML Schema Part 2, but excluding string sub-types, QNAME, and NOTATION. The DDI Alliance has provided a controlled vocabulary (DataType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "GenericOutputFormat": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides a recommended generic treatment of the data for display by an application. The value should come from a controlled vocabulary."
            },
            "MeasurementUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Records the measurement unit, for example, \u0027km\u0027, \u0027miles\u0027, etc. Supports the use of a controlled vocabulary."
            },
            "IncludedGeographicStructureCodes": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/IncludedGeographicStructureCodesType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the Geographic Structure codes included by the Authorized source of the code, the Geographic Structure being used and the Structures to exclude."
            },
            "ClassificationLevelCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates the type of relationship, nominal, ordinal, interval, ratio, or continuous. Use where appropriate for the representation type."
            }
          }
        }
      ]
    },
    "ManagedLocationRepresentation": {
      "description": "Means of describing the Location of an action and the action itself within a repesentation so that they can be used by questions as a response domain. In addition to the basic objects of the representation, the structure briefly describes the object type upon which the action is to take place and the action to take (where an how to mark the object).",
      "allOf": [
        {
          "$ref": "#/$defs/ManagedRepresentation"
        },
        {
          "type": "object",
          "properties": {
            "ManagedLocationRepresentationName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ManagedLocationRepresentation."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ManagedTextRepresentation."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ManagedTextRepresentation."
            },
            "RecommendedDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides the recommended treatment of the data within an application. The value should come from a controlled vocabulary - recommended values include the set found in W3C XML Schema Part 2, but excluding string sub-types, QNAME, and NOTATION. The DDI Alliance has provided a controlled vocabulary (DataType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "GenericOutputFormat": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides a recommended generic treatment of the data for display by an application. The value should come from a controlled vocabulary."
            },
            "MeasurementUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Records the measurement unit, for example, \u0027km\u0027, \u0027miles\u0027, etc. Supports the use of a controlled vocabulary."
            },
            "Object": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The type of object on which the action takes place such as an image, audio tape, etc. Allows for the use of a controlled vocabulary."
            },
            "Action": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ActionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes the region of an image, recording, or text where an action where a specified action is performed and the type of action taken (i.e., Mark an \u0022X\u0022 where the actor should be standing on the picture of the stage.)."
            },
            "ClassificationLevelCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates the type of relationship, nominal, ordinal, interval, ratio, or continuous. Use where appropriate for the representation type."
            }
          }
        }
      ]
    },
    "ManagedMissingValuesRepresentation": {
      "description": "Means of describing the Missing Values within a managed representation so that they can be reused by multiple variables and questions. Variable has a separate Missing Values location for this representation. Questions must use a StructuredMixedResponseDomain to include both standard response and Missing Value responses in a single question. In addition to the name, label, and description of the representation, the structure defines the type of the missing values, a optional generation instruction for deriving the value to be recorded, and the ability to define a blank as a missing value.",
      "allOf": [
        {
          "$ref": "#/$defs/ManagedRepresentation"
        },
        {
          "type": "object",
          "properties": {
            "ManagedMissingValuesRepresentationName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ManagedMissingValuesRepresentation."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ManagedMissingValuesRepresentation."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ManagedMissingValuesRepresentation."
            },
            "MissingCodeRepresentation": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeRepresentationBaseType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "In-line description of a CodeRepresentationBase created for the purpose of capturing missing values with associated labels."
            },
            "MissingNumericRepresentation": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/NumericRepresentationBaseType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "In-line description of a NumericRepresentationBase created for the purpose of capturing missing values as a set of numbers or a range."
            },
            "MissingTextRepresentation": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/TextRepresentationBaseType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "In-line description of a TextRepresentationBase created for the purpose of capturing missing values as text content."
            },
            "ProcessingInstructionReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeneralInstruction",
                        "GenerationInstruction"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "An optional reference to a GenerationInstruction describing how to generate the value for this representation when used as a response domain or missing value representation. TypeOfObject should be set to GeneralInstruction or GenerationInstruction."
            },
            "IsBlankMissingValue": {
              "$ref": "#/$defs/boolean",
              "description": "Designates no response (white space, null) to be treated as a missing value."
            }
          }
        }
      ]
    },
    "ManagedNominalRepresentation": {
      "description": "A means of capturing the features of a nominal (marked/unmarked) response domain. Note that this is not the same as a code or category list with a yes/no set of responses. This representation is generally used in QuestionGrids when defining the response domain of a grid cell. In addition to the basic objects of a representation, the structure defines the allowed content of the mark using a regular expression.",
      "allOf": [
        {
          "$ref": "#/$defs/ManagedRepresentation"
        },
        {
          "type": "object",
          "properties": {
            "ManagedNominalRepresentationName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ManagedNominalRepresentation."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ManagedTextRepresentation."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ManagedTextRepresentation."
            },
            "RecommendedDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides the recommended treatment of the data within an application. The value should come from a controlled vocabulary - recommended values include the set found in W3C XML Schema Part 2, but excluding string sub-types, QNAME, and NOTATION. The DDI Alliance has provided a controlled vocabulary (DataType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "GenericOutputFormat": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides a recommended generic treatment of the data for display by an application. The value should come from a controlled vocabulary."
            },
            "MeasurementUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Records the measurement unit, for example, \u0027km\u0027, \u0027miles\u0027, etc. Supports the use of a controlled vocabulary."
            },
            "RegExp": {
              "$ref": "#/$defs/string",
              "description": "The regular expression allows for further description of the allowable content of the data."
            },
            "ClassificationLevelCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates the type of relationship, nominal, ordinal, interval, ratio, or continuous. Use where appropriate for the representation type."
            }
          }
        }
      ]
    },
    "ManagedNumericRepresentation": {
      "description": "A means of capturing a managed representation of a numbers (item that are analyzed as numbers) which can be referenced by a variable or question and used as a value representation or response domain. In addition to the name, label, and description of the managed numeric representation, the structure defines the number range of valid values, plus information on the format, scale, number of decimals, and intervals between valid responses within the range.",
      "allOf": [
        {
          "$ref": "#/$defs/ManagedRepresentation"
        },
        {
          "type": "object",
          "properties": {
            "ManagedNumericRepresentationName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ManagedNumericRepresentation."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ManagedNumericRepresentation."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ManagedNumericRepresentation."
            },
            "RecommendedDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides the recommended treatment of the data within an application. The value should come from a controlled vocabulary - recommended values include the set found in W3C XML Schema Part 2, but excluding string sub-types, QNAME, and NOTATION. The DDI Alliance has provided a controlled vocabulary (DataType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "GenericOutputFormat": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides a recommended generic treatment of the data for display by an application. The value should come from a controlled vocabulary."
            },
            "MeasurementUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Records the measurement unit, for example, \u0027km\u0027, \u0027miles\u0027, etc. Supports the use of a controlled vocabulary."
            },
            "NumberRange": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/NumberRangeType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Defines the valid number range or number values for the representation."
            },
            "NumericTypeCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identification of the numeric type such as integer, decimal, etc. supports the use of an external controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (NumericType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "Format": {
              "$ref": "#/$defs/string",
              "description": "A format for number expressed as a string."
            },
            "Scale": {
              "$ref": "#/$defs/int",
              "description": "The scale of the number expressed as an integer (for example a number expressed in 100\u0027s, 5 = 500 would have a scale of 100)."
            },
            "DecimalPositions": {
              "$ref": "#/$defs/int",
              "description": "The number of decimal positions expressed as an integer (precision of the number)."
            },
            "Interval_IntervalType": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "The interval between valid responses expressed as an integer."
            },
            "ClassificationLevelCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates the type of relationship, nominal, ordinal, interval, ratio, or continuous. Use where appropriate for the representation type."
            },
            "Accuracy": {
              "$ref": "#/$defs/decimal",
              "description": "The level to which a number is considered to be accurate. Expressed as a decimal. "
            }
          }
        }
      ]
    },
    "ManagedRankingRepresentation": {
      "description": "A means of capturing the representation of Ranking to be used as a response domain used by a question. In addition to the basic objects of the representation, the structure defines the range used for ranking including the number of times an individual value may be repeated.",
      "allOf": [
        {
          "$ref": "#/$defs/ManagedRepresentation"
        },
        {
          "type": "object",
          "properties": {
            "ManagedRankingRepresentationName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ManagedRankingRepresentation."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ManagedTextRepresentation."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ManagedTextRepresentation."
            },
            "RecommendedDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides the recommended treatment of the data within an application. The value should come from a controlled vocabulary - recommended values include the set found in W3C XML Schema Part 2, but excluding string sub-types, QNAME, and NOTATION. The DDI Alliance has provided a controlled vocabulary (DataType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "GenericOutputFormat": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides a recommended generic treatment of the data for display by an application. The value should come from a controlled vocabulary."
            },
            "MeasurementUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Records the measurement unit, for example, \u0027km\u0027, \u0027miles\u0027, etc. Supports the use of a controlled vocabulary."
            },
            "RankingRange": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/RankingRangeType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The allowed values expressed using Range (allows for non-numeric values). In addition, defines the number of times a value may be used in expressing a ranking."
            },
            "ClassificationLevelCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates the type of relationship, nominal, ordinal, interval, ratio, or continuous. Use where appropriate for the representation type."
            }
          }
        }
      ]
    },
    "ManagedRepresentation": {
      "description": "Substitution group head for referencing Managed Representations.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {}
        }
      ]
    },
    "ManagedRepresentationGroup": {
      "description": "Contains a group of managed representation and other managed objects used for representation, that are grouped for conceptual, administrative, or other purposes. Contents of the group may be ordered or hierarchical. In addition to the name, label, and description of the group, the structure allows for the identification of the type of group, a related universe, population, or concept, and a listing of the included ManagedRepresentations, managed objects used for representation, and ManagedRepresentationGroups by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfManagedRepresentationGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a ManagedRepresentationGroup. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "ManagedRepresentationGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ManagedRepresentationGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ManagedRepresentationGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ManagedRepresentationGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this managed representation group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this managed representation group pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the managed representations in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "ManagedRepresentationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ManagedCategoryRepresentation",
                          "ManagedCodeRepresentation",
                          "ManagedDateTimeRepresentation",
                          "ManagedDistributionRepresentation",
                          "ManagedExternalCategoryRepresentation",
                          "ManagedGeographicLocationCodeRepresentation",
                          "ManagedGeographicRepresentation",
                          "ManagedGeographicStructureCodeRepresentation",
                          "ManagedLocationRepresentation",
                          "ManagedMissingValuesRepresentation",
                          "ManagedNominalRepresentation",
                          "ManagedNumericRepresentation",
                          "ManagedRankingRepresentation",
                          "ManagedScaleRepresentation",
                          "ManagedTextRepresentation"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "This is an abstract substitution base for a reference to a specific type of Managed Representation."
            },
            "ManagedRepresentationGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ManagedRepresentationGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent ManagedRepresentationGroup. This allows for nesting of ManagedRepresentationGroups."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "ManagedRepresentationScheme": {
      "description": "This scheme contains sets of values described by ManagedRepresentation. These are used by reference to define Variable Representation and Question Response Domain. Text representations cover all non-code and non-category representations/response domains that should be treated or analyzed as characters regardless of whether the character is a number or a letter. In addition to the name, label and description of the scheme, the structure allows for the inclusion on an external scheme by reference, definitions of ManagedRepresentations in-line or by reference, and ManagedRepresentationGroups in-line or by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "ManagedRepresentationSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ManagedRepresentationScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ManagedRepresentationScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ManagedRepresentationScheme."
            },
            "ManagedRepresentationSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ManagedRepresentationScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to another ManagedRepresentationScheme to include in this scheme by reference."
            },
            "ManagedRepresentationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ManagedCategoryRepresentation",
                          "ManagedCodeRepresentation",
                          "ManagedDateTimeRepresentation",
                          "ManagedDistributionRepresentation",
                          "ManagedExternalCategoryRepresentation",
                          "ManagedGeographicLocationCodeRepresentation",
                          "ManagedGeographicRepresentation",
                          "ManagedGeographicStructureCodeRepresentation",
                          "ManagedLocationRepresentation",
                          "ManagedMissingValuesRepresentation",
                          "ManagedNominalRepresentation",
                          "ManagedNumericRepresentation",
                          "ManagedRankingRepresentation",
                          "ManagedScaleRepresentation",
                          "ManagedTextRepresentation"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A description of a text based representation to be used by a question response domain or variable value representation."
            },
            "ManagedRepresentationGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ManagedRepresentationGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A grouping of ManagedRepresentations for conceptual, administrative or other reasons."
            }
          }
        }
      ]
    },
    "ManagedScaleRepresentation": {
      "description": "A means of capturing a managed representation of a Scale for use by a Response Domain Reference or Value Representation Reference. In addition to the name, label, and description of the representation, the structure defines the dimensions of the scale, an intersect for a multi-dimensional scale, and display layout.",
      "allOf": [
        {
          "$ref": "#/$defs/ManagedRepresentation"
        },
        {
          "type": "object",
          "properties": {
            "ManagedScaleRepresentationName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ManagedScaleRepresentation."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ManagedScaleRepresentation."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ManagedScaleRepresentation."
            },
            "RecommendedDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides the recommended treatment of the data within an application. The value should come from a controlled vocabulary - recommended values include the set found in W3C XML Schema Part 2, but excluding string sub-types, QNAME, and NOTATION. The DDI Alliance has provided a controlled vocabulary (DataType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "GenericOutputFormat": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides a recommended generic treatment of the data for display by an application. The value should come from a controlled vocabulary."
            },
            "MeasurementUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Records the measurement unit, for example, \u0027km\u0027, \u0027miles\u0027, etc. Supports the use of a controlled vocabulary."
            },
            "ScaleDimension": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ScaleDimensionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A description of a dimension of the scale. Note that most scales will have only one dimension."
            },
            "DimensionIntersect": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DimensionIntersectType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Identifies the point at which the scales of a multidimensional scale intersect."
            },
            "DisplayLayout": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Defines they layout such as containing a drawn scale line, a list of values only, an outline (the boundaries of the area defined by 2 or more intersecting scales such as a diamond of opposites), or some other layout design. Allows for the use of a controlled vocabulary."
            },
            "ClassificationLevelCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates the type of relationship, nominal, ordinal, interval, ratio, or continuous. Use where appropriate for the representation type."
            }
          }
        }
      ]
    },
    "ManagedTextRepresentation": {
      "description": "Means of describing text based content used by reference to define Variable Representation and Question Response Domain. Text Representations cover all non-code and non-category representations/response domains that should be treated or analyzed as characters regardless of whether the character is a number or a letter. In addition to the name, label, and description, the scheme defines the maximum and minimum length of the allowed text and allows for the use of a regular expression to further define the valid content.",
      "allOf": [
        {
          "$ref": "#/$defs/ManagedRepresentation"
        },
        {
          "type": "object",
          "properties": {
            "ManagedTextRepresentationName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ManagedTextRepresentation."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ManagedTextRepresentation."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the ManagedTextRepresentation."
            },
            "RecommendedDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides the recommended treatment of the data within an application. The value should come from a controlled vocabulary - recommended values include the set found in W3C XML Schema Part 2, but excluding string sub-types, QNAME, and NOTATION. The DDI Alliance has provided a controlled vocabulary (DataType) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "GenericOutputFormat": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This field provides a recommended generic treatment of the data for display by an application. The value should come from a controlled vocabulary."
            },
            "MeasurementUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Records the measurement unit, for example, \u0027km\u0027, \u0027miles\u0027, etc. Supports the use of a controlled vocabulary."
            },
            "MaxLength": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "The maximum number of characters allowed."
            },
            "MinLength": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "The minimum number of characters allowed."
            },
            "RegExp": {
              "$ref": "#/$defs/string",
              "description": "A regular expression limiting the allowed characters or character order of the content."
            },
            "ClassificationLevelCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates the type of relationship, nominal, ordinal, interval, ratio, or continuous. Use where appropriate for the representation type."
            }
          }
        }
      ]
    },
    "MeasurementConstruct": {
      "description": "A construct which ties measurement content to the programmatic logic of the control constructs. Contains a reference to a MeasurementItem, identifies the response unit, analysis unit, and universe. May provide an estimate of the number of minutes needed to respond.",
      "allOf": [
        {
          "$ref": "#/$defs/ControlConstruct"
        },
        {
          "type": "object",
          "properties": {
            "MeasurementItemReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "MeasurementItem"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to a Measurement."
            },
            "ResponseUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the intended Response unit (respondent). Supports the use of an external controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (ResponseUnit) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "AnalysisUnit": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "The analysis unit, expressed as a term which may come from a controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (AnalysisUnit) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement containing a description of the persons or other elements that this measurement refers to."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other elements that this measurement refers to."
            },
            "EstimatedSecondsResponseTime": {
              "$ref": "#/$defs/decimal",
              "description": "The estimated amount of time required to perform the data capture expressed in seconds. Decimal values should be used to define fractions of seconds. At the measurement construct level it refers to the estimated time within the context of is use in a data capture process."
            }
          }
        }
      ]
    },
    "MeasurementGroup": {
      "description": "Contains a group of MeasurementItem, which may be ordered or hierarchical. In addition to the name, label, and description of the group, the structure allows for defining the type of group using an optional controlled vocabulary, a reference to a defining universe, population, or concept for the group, a subject classification for the group, and a listing of MeasurementItems and MeasurementGroups in any order.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfMeasurementGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A brief textual identification of the group type. Supports the use of an external controlled vocabulary."
            },
            "MeasurementGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the group."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the question group."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the MeasurementItemGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this MeasurementItem group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this MeasurementItem group pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the MeasurementItem in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "MeasurementItemReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "MeasurementItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent MeasurementItem."
            },
            "MeasurementGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "MeasurementGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent MeasurementGroup. This allows for nesting of MeasurementGroups."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "MeasurementItem": {
      "description": "Structure a single Measurement which may contain one or more response domains (i.e., a list of valid category responses where if \u0022Other\u0022 is indicated a text response can be used to specify the intent of \u0022Other\u0022). The structure provides detail on the intent of the measurement, they type of capture, the valid response options and the number of allowed responses, references to external aids and instructions, and an estimation of the time needed to respond to the measurement. Note that the MeasurementItem is a reusable format for use in any number of applied uses. Additional materials and information can be added within the MeasurementConstruct which is the applied use of a measurement.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "MeasurementItemName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the MeasurementItem."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the MeasurementItem."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the MeasurementItem."
            },
            "InParameter": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InParameterType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides an identity for input objects required for the MeasurementItem."
            },
            "OutParameter": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ParameterType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides an identify for the output objects of the MeasurementItem."
            },
            "Binding": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/BindingType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A structure used to bind the content of a parameter declared as the source to a parameter declared as the target."
            },
            "TypeOfMeasurementItem": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A brief term defining the type of MeasurementItem. Supports the use of an external controlled vocabulary."
            },
            "MeasurementItemIntent": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "The purpose of the MeasurementItem in terms of what it is designed to measure."
            },
            "ResponseDomain": {
              "type": "object",
              "oneOf": [
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CategoryDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CategoryDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CategoryRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CategoryRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CodeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CodeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CodeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CodeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CoordinatePairsType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CoordinatePairsType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DateTimeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DateTimeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DateTimeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DateTimeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DistributionDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DistributionDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DistributionRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DistributionRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/ExternalCategoryRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "ExternalCategoryRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicLocationCodeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicLocationCodeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicLocationCodeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicLocationCodeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicStructureCodeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicStructureCodeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicStructureCodeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicStructureCodeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/LocationDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "LocationDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/LocationRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "LocationRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NominalDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NominalDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NominalRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NominalRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NumericDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NumericDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NumericRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NumericRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/RankingDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "RankingDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/RankingRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "RankingRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/ScaleDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "ScaleDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/ScaleRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "ScaleRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/TextDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "TextDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/TextRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "TextRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                }
              ],
              "unevaluatedProperties": false,
              "description": "Contains a response domain for the measurement item. Typically used to describe simple response domains (textual, numeric, etc.)."
            },
            "ResponseDomainReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ManagedCategoryRepresentation",
                        "ManagedCodeRepresentation",
                        "ManagedDateTimeRepresentation",
                        "ManagedDistributionRepresentation",
                        "ManagedExternalCategoryRepresentation",
                        "ManagedGeographicLocationCodeRepresentation",
                        "ManagedGeographicRepresentation",
                        "ManagedGeographicStructureCodeRepresentation",
                        "ManagedLocationRepresentation",
                        "ManagedMissingValuesRepresentation",
                        "ManagedNominalRepresentation",
                        "ManagedNumericRepresentation",
                        "ManagedRankingRepresentation",
                        "ManagedScaleRepresentation",
                        "ManagedTextRepresentation"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "The inclusion of a response domain by reference (must be supported by a managed representation). An abstract element. May be substituted by any valid object of substitution type ResponseDomainReference."
            },
            "StructuredMixedResponseDomain": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/StructuredMixedResponseDomainType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Use in cases where the measurement requires the option for multiple response domains."
            },
            "ResponseCardinality": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ResponseCardinalityType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows the designation of the minimum and maximum number of responses allowed for this measurement. Note that each response domain has its own response cardinality."
            },
            "ConceptReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Concept"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to the concept associated with the response to the measurement."
            },
            "ExternalAid": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ExternalAidType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A pointer to an external aid presented by the instrument such as a text card, image, audio, or audiovisual aid. Typically a URN. Use type attribute to describe the type of external aid provided. Example of terms to use would include: imageOnly audioOnly audioVisual multiMedia."
            },
            "ExternalInterviewerInstruction": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ExternalInterviewerInstructionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "External reference to an interviewer instruction not expressed as DDI XML using OtherMaterial."
            },
            "InterviewerInstructionAttachment": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/AttachedInstructionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "an interviewer instruction expressed as DDI XML."
            },
            "RepresentedVariableReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RepresentedVariable"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the RepresentedVariable that describes the data to be collected by this measurement. The RepresentedVariable contains the broad reusable specification of the Variable, i.e., concept, universe, and value representation. When more than one ResponseDomain exists, one RepresentedVariable should be created for each ResponseDomain in the same order as the corresponding ResponseDomain. TypeOfObject should be set to RepresentedVariable."
            },
            "DevelopmentResultsReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DevelopmentResults"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the development implementation results which gave rise to this version of the object. TypeOfObject should be DevelopmentResults."
            },
            "EstimatedSecondsResponseTime": {
              "$ref": "#/$defs/decimal",
              "description": "The estimated amount of time required to perform the measurement expressed in seconds. Decimal values should be used to define fractions of seconds."
            }
          }
        }
      ]
    },
    "MeasurementScheme": {
      "description": "Contains a set of MeasurementItems and MeasurementGroups. In addition to the standard name, label, and description of the MeasurementScheme, may contain another MeasurementScheme by reference, a listing of MeasurementItems (in-line or by reference), and a listing of MeasurementGroups (in-line or by reference).",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "MeasurementSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the MeasurementScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the scheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the MeasurementItemScheme."
            },
            "MeasurementSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "MeasurementScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for the inclusion of another MeasurementItemScheme by reference."
            },
            "MeasurementItemReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "MeasurementItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a MeasurementItem in-line."
            },
            "MeasurementGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "MeasurementGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Contains a group of MeasurementItems, which may be ordered or hierarchical."
            }
          }
        }
      ]
    },
    "Methodology": {
      "description": "Metadata regarding the methodologies used concerning data collection, determining the timing and repetition patterns for data collection, and sampling procedures. Identifies areas where there were deviations from the planned sampling approach, the software used for data collection, and references to any quality standards or statements regarding the processes surrounding the planning and implementation of data collection.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "MethodologyName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the Methodology."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the Methodology."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the Methodology."
            },
            "DataCollectionMethodology": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DataCollectionMethodologyType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Methodologies pertaining to the overall data collection such as primary or secondary data collection, qualitative or quantitative methods, mixed method approaches, GPS capturing methods, methods for collecting data from hard to reach communities, etc. Repeat this element if multiple methodologies are used. Repeat this element if multiple methodologies are used."
            },
            "TimeMethod": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/TimeMethodType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes how time fits into the data collection methodology."
            },
            "WeightingMethodologyReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "WeightingMethodology"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A basic structure for describing the methodology used for weighting. In addition to a descriptive narrative, the methodology may be classified by a short term or external controlled vocabulary."
            },
            "SamplingProcedure": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/SamplingProcedureType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes a sampling procedure. If multiple sampling procedures were used repeat this element for each."
            },
            "DeviationFromSampleDesign": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DeviationFromSampleDesignType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes any deviations from the planned sample design."
            },
            "DataCollectionSoftware": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/SoftwareType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Specification of a software package used to instantiate a data collection method."
            },
            "QualityStatementReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityStatement"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to a Quality Statement pertaining to the quality of the study methodology, metadata, or data to which it is associated. Quality statements may be related to external quality standards."
            }
          }
        }
      ]
    },
    "NCube": {
      "description": "An NCube is a 1..n dimension structure which relates a set of individual values to each other by defining them within a matrix. The NCube may be the result of aggregations, cross-tabulation, time-series, etc. The NCube is described by its dimensions which are represented by categorical variables (variables with a set number of values of specific definition that can be used to identify a specific cell as part of a matrix address). The resulting cells can contain one or more measures, also defined by variables. In addition to the standard name, label, and description of the NCube, it contains a reference to a universe, defines both the normal source of the data in the cells and unit of analysis, the purpose of creating the structured data, the dimensions and measures, as well as the ability to attached any other attribute (i.e., footnote, cell or region specific note) to a specified area of the NCube. Three attribute serve as informational check values; dimensionCount, cellCount, and isClean.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "NCubeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the NCube."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the NCube."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and structure of the NCube."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement containing a description of the persons or other elements that this NCube refers to, and to which any analytic results refer. If more than one universe is referenced the universe of the variable is the intersect of the referenced universes."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other elements that this NCube and its analytic results refer to. If more than one population is referenced, the population of the NCube is the intersection of the referenced populations."
            },
            "ImputationReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeneralInstruction",
                        "GenerationInstruction"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to an imputation process described as a GeneralInstruction or GenerationInstruction held in a ProcessingInstructionScheme."
            },
            "SourceUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The normal source of the information contained in the NCube. In the case of a survey this may be a respondent, proxy, interviewer, or other source. In the case of administrative data the position of a field on a form e.g., \u0022top of page\u0022, \u0022item 3\u0022, \u0022generated by data processor\u0022, etc. Supports the use of an external controlled vocabulary."
            },
            "AnalysisUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The entity to which the data refer, for example, individuals, families or households, groups, institutions/organizations, administrative units, etc. Supports the use of an external controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (AnalysisUnit) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "Purpose": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Purpose for which the NCube was created. For example, designed to support a set of age pyramids generated yearly."
            },
            "Dimension": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DimensionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "NCubes are defined by their dimensions. A dimension is provided a rank and a reference to a variable that describes it. Cell locations are \u0022addressed\u0022 by the value of their intersect on each dimension provided in rank order."
            },
            "CoordinateRegion": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CoordinateRegionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Defines the area of attachment for an attribute. It may be defined as the NCube as a whole or as certain dimensions or values of dimensions."
            },
            "MeasureDefinition": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/MeasureDefinitionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Defines the structure and type of measure captured within the cells. This may be repeated to describe multiple measure for the cells (i.e., count, percent of universe, dimensional percent, index, text, suppression flag, etc.)."
            },
            "Attribute": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/AttributeType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "An attribute may be any object which should be attached to all or part of the NCube. It may be defined as a Variable or contain textual content (such as a footnote)."
            },
            "DimensionCount": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "The number of dimensions found in the NCube. Caution in using optional checksums is recommended. Conflict between checksums and the items being counted can cause problems with warning flags during processing. If using checksum to capture information for internal processing purposes, the use of automatically generated check sums is strongly urged."
            },
            "CellCount": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "The number of cells (measures) found in the NCube. Note that this is the number of cells produced by dimension structure not the number of cells containing data in a sparse NCube. Caution in using optional checksums is recommended. Conflict between checksums and the items being counted can cause problems with warning flags during processing. If using checksum to capture information for internal processing purposes, the use of automatically generated check sums is strongly urged."
            },
            "IsClean": {
              "$ref": "#/$defs/boolean",
              "description": "A value of \u0022true\u0022 indicates that all cells have the potential for content values. If set to \u0022false\u0022 Attribute and CoordinateRegion should be used to define the sparse areas of the NCube, those that have no content by definition. For example a cross-tabulation between Household Type (Family, Non-Family) and Number of persons in Household (1,2,3,4,5,6,7\u002B) would need an attribute for Family/1 Person as this will always be empty due to the definition of Family as two or more related persons."
            }
          }
        }
      ]
    },
    "NCubeGroup": {
      "description": "Contains a group of NCubes, which may be ordered or hierarchical. In addition to the name, label, and description of the group, the structure allows for defining the type of group using an optional controlled vocabulary, a reference to a defining universe, population, or concept for the group, and a listing of NCubes and NCubeGroups in any order.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfNCubeGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A brief textual identification of the group type. Supports the use of an external controlled vocabulary."
            },
            "NCubeGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the NCubeGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the NCubeGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the NCubeGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this NCube group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this NCube group pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the NCubes in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "NCubeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "NCube"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent NCube."
            },
            "NCubeGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "NCubeGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent NCubeGroup. This allows for nesting of NCubeGroups."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "NCubeInstance": {
      "description": "A container for defining an instance of an NCube, indicating the matrix address of each cell and where the data for each measure within a cell of the NCube is stored. Allows specifying the values of the attributes attached to a NCube.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "NCubeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "NCube"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the logical NCube description."
            },
            "MeasureDimension": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/MeasureDimensionType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This element defines the structure of a measure dimension for the NCube Instance. A value along the MeasureDimension is defined by a stack of references to one or more MeasureDefinitions found in the logical description of the NCube with each containing an attribute of orderValue which provides its value for use in the cell address (similar to the use of a CodeRepresentation of a Variable used as a conceptual dimension. This allows measures (whether one or several) to be handled in the same way as the conceptual dimension of the NCube in declaring a cell address. It is assumed that the value of the MeasureDimension is the last value in the address array. For example, for an NCube with 3 conceptual dimensions of rank 1 = Sex, rank 2 = Age, and rank 3 = Educational Attainment, plus a MeasureDimension. The cell address of 1,4,2,2 would indicate Code value of 1 for Sex, 4 for Age, 2 for Educational Attainment, and 2 for MeasureDimension. For systems translating to SDMX or an OLap structure DDI assumes that the MeasureDefinitionReference with the orderValue=\u00221\u0022 is the equivalent of the PrimaryMeasure."
            },
            "AttachedAttribute": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/AttachedAttributeType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "This is an attribute attached to the NCube as a whole or a region of the NCube as defined in the logical description as a CoordinateRegion. The content of the attribute can be provided as a single value or reference a location in the data store where the attribute value will be found. This may be in addition to attribute information described in the logical structure."
            },
            "DataItemN": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DataItemNType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes a single data item or cell within an NCube Instance. It defines its location within the NCube by its coordinate (matrix) address which is its intersect point on each dimension. Allows for the specification of data item specific attributes, and identifies the physical location of each measure for the data item. May optionally indicate the language of the data contents."
            },
            "DefaultDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "An explicit definition of the data type that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. This field is necessary in the case of some numeric data formats where the format definition would allow real values, but the values are integer values. Allowed values are: integer (default), real, string."
            },
            "DefaultDelimiter": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DelimiterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Delimiter definition for delimited (free field) data that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. Allowed values are: Empty (default), Tab, Blank, AnyString. If a delimiter is used, free field (delimited data) is assumed; binary formats are not allowed."
            },
            "DefaultDecimalPositions": {
              "$ref": "#/$defs/int",
              "description": "Number of decimal places for data with an implied decimal separator that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. Another expression is the decimal scaling factor (SAS). Default: 0."
            },
            "DefaultDecimalSeparator": {
              "$ref": "#/$defs/string",
              "maxLength": 1,
              "description": "The character used to separate the integer and the fraction part of a number (if an explicit separator is used in the data) that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. Allowed values are: None (default), Dot, Comma, Other. On the basis of the data definition in DDI documents, data processing tools could compute the necessary precision width on the basis of the format width and the existence of separators. Appropriate data types could be used, i.e. float or double, short or long. The decimal separator definition only makes sense with some XML Schema primitives. This is a default which may be overridden in specific cases."
            },
            "DefaultDigitGroupSeparator": {
              "$ref": "#/$defs/string",
              "maxLength": 1,
              "description": "The character used to separate groups of digits (if an explicit separator is used in the data) that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. Allowed values are: None (default), Dot, Comma, Other. The decimal separator definition makes only sense with some XML Schema primitives. This is a default which may be overridden in specific cases."
            },
            "NumberOfCases": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "Total number of cases represented by the contents of the NCube. This is normally the sum of the cell contents when the NCube contains counts and sub-totals are not included."
            }
          }
        }
      ]
    },
    "NCubeInstanceI": {
      "description": "A container for defining an instance of an NCube, indicating the matrix address of each cell and capturing the data for each measure within a cell of the NCube is stored. Allows specifying the values of the attributes attached to a NCube.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "NCubeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "NCube"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the logical NCube description."
            },
            "MeasureDimension": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/MeasureDimensionType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This element defines the structure of a measure dimension for the NCube Instance. A value along the MeasureDimension is defined by a stack of references to one or more MeasureDefinitions found in the logical description of the NCube with each containing an attribute of orderValue which provides its value for use in the cell address (similar to the use of a CodeRepresentation of a Variable used as a conceptual dimension. This allows measures (whether one or several) to be handled in the same way as the conceptual dimension of the NCube in declaring a cell address. It is assumed that the value of the MeasureDimension is the last value in the address array. For example, for an NCube with 3 conceptual dimensions of rank 1 = Sex, rank 2 = Age, and rank 3 = Educational Attainment, plus a MeasureDimension. The cell address of 1,4,2,2 would indicate Code value of 1 for Sex, 4 for Age, 2 for Educational Attainment, and 2 for MeasureDimension. For systems translating to SDMX or an OLap structure DDI assumes that the MeasureDefinitionReference with the orderValue=\u00221\u0022 is the equivalent of the PrimaryMeasure."
            },
            "AttachedAttributeI": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/AttachedAttributeIType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "This is an attribute attached to the NCube as a whole or a region of the NCube as defined in the logical description as a CoordinateRegion. The content of the attribute can be provided as a single value or reference a location in the data store where the attribute value will be found. This may be in addition to attribute information described in the logical structure."
            },
            "DataItemI": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DataItemIType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes a single data item or cell within an NCube Instance. It defines its location within the NCube by its coordinate (matrix) address which is its intersect point on each dimension. Allows for the specification of data item specific attributes, and identifies the value of each measure for the data item. May optionally indicate the language of the data contents."
            },
            "DefaultDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "An explicit definition of the data type that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. This field is necessary in the case of some numeric data formats where the format definition would allow real values, but the values are integer values. Allowed values are: integer (default), real, string."
            },
            "DefaultDelimiter": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DelimiterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Delimiter definition for delimited (free field) data that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. Allowed values are: Empty (default), Tab, Blank, AnyString. If a delimiter is used, free field (delimited data) is assumed; binary formats are not allowed."
            },
            "DefaultDecimalPositions": {
              "$ref": "#/$defs/int",
              "description": "Number of decimal places for data with an implied decimal separator that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. Another expression is the decimal scaling factor (SAS). Default: 0."
            },
            "DefaultDecimalSeparator": {
              "$ref": "#/$defs/string",
              "maxLength": 1,
              "description": "The character used to separate the integer and the fraction part of a number (if an explicit separator is used in the data) that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. Allowed values are: None (default), Dot, Comma, Other. On the basis of the data definition in DDI documents, data processing tools could compute the necessary precision width on the basis of the format width and the existence of separators. Appropriate data types could be used, i.e. float or double, short or long. The decimal separator definition only makes sense with some XML Schema primitives. This is a default which may be overridden in specific cases."
            },
            "DefaultDigitGroupSeparator": {
              "$ref": "#/$defs/string",
              "maxLength": 1,
              "description": "The character used to separate groups of digits (if an explicit separator is used in the data) that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. Allowed values are: None (default), Dot, Comma, Other. The decimal separator definition makes only sense with some XML Schema primitives. This is a default which may be overridden in specific cases."
            },
            "NumberOfCases": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "Total number of cases represented by the contents of the NCube. This is normally the sum of the cell contents when the NCube contains counts and sub-totals are not included."
            }
          }
        }
      ]
    },
    "NCubeInstanceT": {
      "description": "A container for defining an instance of an NCube, indicating the matrix address of each cell and where the data for each measure within a cell of the NCube is stored. Allows specifying the values of the attributes attached to a NCube.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "NCubeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "NCube"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the logical NCube description."
            },
            "MeasureDimension": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/MeasureDimensionType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "This element defines the structure of a measure dimension for the NCube Instance. A value along the MeasureDimension is defined by a stack of references to one or more MeasureDefinitions found in the logical description of the NCube with each containing an attribute of orderValue which provides its value for use in the cell address (similar to the use of a CodeRepresentation of a Variable used as a conceptual dimension. This allows measures (whether one or several) to be handled in the same way as the conceptual dimension of the NCube in declaring a cell address. It is assumed that the value of the MeasureDimension is the last value in the address array. For example, for an NCube with 3 conceptual dimensions of rank 1 = Sex, rank 2 = Age, and rank 3 = Educational Attainment, plus a MeasureDimension. The cell address of 1,4,2,2 would indicate Code value of 1 for Sex, 4 for Age, 2 for Educational Attainment, and 2 for MeasureDimension. For systems translating to SDMX or an OLap structure DDI assumes that the MeasureDefinitionReference with the orderValue=\u00221\u0022 is the equivalent of the PrimaryMeasure."
            },
            "AttachedAttributeT": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/AttachedAttributeTType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "This is an attribute attached to the NCube as a whole or a region of the NCube as defined in the logical description as a CoordinateRegion. The content of the attribute can be provided as a single value or reference a location in the data store where the attribute value will be found. This may be in addition to attribute information described in the logical structure."
            },
            "DataItemT": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DataItemTType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes a single data item or cell within an NCube Instance. It defines its location within the NCube by its coordinate (matrix) address which is its intersect point on each dimension. Allows for the specification of data item specific attributes, and identifies the physical location of each measure for the data item. May optionally indicate the language of the data contents."
            },
            "DefaultDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "An explicit definition of the data type that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. This field is necessary in the case of some numeric data formats where the format definition would allow real values, but the values are integer values. Allowed values are: integer (default), real, string."
            },
            "DefaultDelimiter": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DelimiterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Delimiter definition for delimited (free field) data that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. Allowed values are: Empty (default), Tab, Blank, AnyString. If a delimiter is used, free field (delimited data) is assumed; binary formats are not allowed."
            },
            "DefaultDecimalPositions": {
              "$ref": "#/$defs/int",
              "description": "Number of decimal places for data with an implied decimal separator that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. Another expression is the decimal scaling factor (SAS). Default: 0."
            },
            "DefaultDecimalSeparator": {
              "$ref": "#/$defs/string",
              "maxLength": 1,
              "description": "The character used to separate the integer and the fraction part of a number (if an explicit separator is used in the data) that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. Allowed values are: None (default), Dot, Comma, Other. On the basis of the data definition in DDI documents, data processing tools could compute the necessary precision width on the basis of the format width and the existence of separators. Appropriate data types could be used, i.e. float or double, short or long. The decimal separator definition only makes sense with some XML Schema primitives. This is a default which may be overridden in specific cases."
            },
            "DefaultDigitGroupSeparator": {
              "$ref": "#/$defs/string",
              "maxLength": 1,
              "description": "The character used to separate groups of digits (if an explicit separator is used in the data) that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. Allowed values are: None (default), Dot, Comma, Other. The decimal separator definition makes only sense with some XML Schema primitives. This is a default which may be overridden in specific cases."
            },
            "NumberOfCases": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "Total number of cases represented by the contents of the NCube. This is normally the sum of the cell contents when the NCube contains counts and sub-totals are not included."
            }
          }
        }
      ]
    },
    "NCubeScheme": {
      "description": "A set of NCubes maintained by an agency and used to structure data items into relational structures. In addition to the standard name, label, and description of the scheme, contains descriptions of individual NCubes and NCubeGroups as well as allowing the inclusion of another NCubeScheme by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "NCubeSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the NCubeScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the NCubeScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the NCubeScheme."
            },
            "NCubeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "NCube"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes the logical structure of an NCube which is a 1..n dimension structure which relates a set of individual value to each other by defining them within a matrix."
            },
            "NCubeGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "NCubeGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a group of NCubes for conceptual, organizational and management purposes, which may be ordered or hierarchical."
            },
            "NCubeSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "NCubeScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for inclusion of other NCube schemes by reference."
            }
          }
        }
      ]
    },
    "Organization": {
      "description": "Details of an organization including name, contact information, a description, keywords to support searching, their regional affiliation, and any additional information. In addition the organization may capture how they manage version distinction. All agencies should be defined as an Organization and referenced by the Archive module. The organization and specific pieces of information regarding the individual may be tagged for information privacy.",
      "allOf": [
        {
          "$ref": "#/$defs/Agent"
        },
        {
          "type": "object",
          "properties": {
            "OrganizationIdentification": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/OrganizationIdentificationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identification information on the Organization. The structure contains a OrganizationName which can be repeated to provide any number of OrganizationNames that have a) a specific contextual usage, or b) are of specific types (e.g. PreviousFormalName). The DDI Maintenance Agency ID and and organization images, such as a building picture or logo are found in OrganizationIdentification. Images and names can be individually date stamped."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the organization."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Keyword used to classify the organization or its activities. Supports the use of an external controlled vocabulary."
            },
            "RegionalCoverage": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "The geographic region within which this organization operates."
            },
            "AdditionalInformation": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Any additional information you which to note about the organization. This is a structured string so it can be formatted and a privacy tag can be applied."
            },
            "VersionDistinction": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/VersionDistinctionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes the data versioning scheme(s) used by an organization. If more than one, Name should differentiate between a standard versioning structure used by the organization and special structures used by specific projects or studies. Information on what drives and major and minor change and how they are structured."
            },
            "ContactInformation": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ContactInformationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Contact information for the organization including location specification, address, URL, phone numbers, and other means of communication access. Address, location, telephone, and other means of communication can be repeated to express multiple means of a single type or change over time. Each major piece of contact information (with exception of URL contains the element EffectiveDates in order to date stamp the period for which the information is valid."
            },
            "Privacy": {
              "$ref": "#/$defs/string",
              "enum": [
                "public",
                "restricted",
                "private"
              ],
              "description": "A basic set of privacy codes for the parent element. These may be stricter than the general access restrictions for the overall metadata. If available codes are insufficient this may also contain any string."
            }
          }
        }
      ]
    },
    "OrganizationGroup": {
      "description": "Contains a group of Organizations, Individuals, and/or Relations, which may describe an ordered or hierarchical relationship structure. Specifies the purpose of the group, a name, label, and description of the group, its relationship to a specific universe, population, or concept, and lists the members of the group.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfOrganizationGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a OrganizationGroup. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "OrganizationGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the OrganizationGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the OrganizationGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the OrganizationGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this OrganizationGroup pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "OrganizationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Organization"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent Organization. TypeOfObject should be set to Organization."
            },
            "IndividualReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Individual"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent Individual. TypeOfObject should be set to Individual."
            },
            "RelationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Relation"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a constituent Relation. TypeOfObject should be set to Relation."
            },
            "OrganizationGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "OrganizationGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent OrganizationGroup. This allows for nesting of OrganizationGroups. TypeOfObject should be set to OrganizationGroup."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "OrganizationScheme": {
      "description": "A scheme containing information on Organizations, Individuals, and the relationships between them. In addition to the name, label, and description of the scheme, the structure supports the inclusion of another OrganizationScheme by reference, a set of Organization, Individual, and Relation descriptions.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "OrganizationSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the OrganizationScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the OrganizationScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the OrganizationScheme."
            },
            "OrganizationSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "OrganizationScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to an existing OrganizationScheme for inclusion by reference."
            },
            "OrganizationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Organization"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line description of an Organization. These may be referenced by many elements in DDI and provide fuller detail regarding the Organization."
            },
            "IndividualReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Individual"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line description of an Individual. These may be referenced by many elements in DDI and provide fuller detail regarding the Individual."
            },
            "RelationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Relation"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line description of a Relationship between two organizations or individual or between an individual and an organization. Relation is generally and on-going association not associated with a specific role in relationship to a study."
            },
            "OrganizationGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "OrganizationGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line description of a group of Organizations, Individuals, and/or Relations."
            }
          }
        }
      ]
    },
    "OtherMaterial": {
      "description": "OtherMaterialType describes the structure of the OtherMaterial element, used to reference external resources. It includes citations to materials related to the content of the DDI Instance. This includes citations to such material, an external reference to a URL (or other URI), and a statement about the relationship between the cited OtherMaterial the contents of the DDI instance.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfMaterial": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Designation of the type of material being described. Supports the use of a controlled vocabulary."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the referenced material. This field can map to a Dublin Core abstract. Note that Dublin Core does not support structure within the abstract element."
            },
            "Citation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CitationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Bibliographic citation for the external resource."
            },
            "ExternalURLReference": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/anyURI"
              },
              "minItems": 0,
              "description": "Contains a URL which indicates the location of the cited external resource."
            },
            "ExternalURNReference": {
              "$ref": "#/$defs/anyURI",
              "description": "Contains a URN which identifies the cited external resource."
            },
            "Relationship": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/RelationshipType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Reference to the item within the DDI Instance to which the external resource is related."
            },
            "MIMEType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Provides a standard Internet MIME type for use by processing applications."
            },
            "Segment": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/SegmentType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Can describe a segment within a larger object such as a text or video segment."
            },
            "SizeInBytes": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "Specifies the size of the file in bytes."
            },
            "Lang": {
              "$ref": "#/$defs/language",
              "description": "Language of the metadata describing the other material."
            }
          }
        }
      ]
    },
    "OtherMaterialGroup": {
      "description": "Contains a group of OtherMaterials, which may describe an ordered or hierarchical relationship structure. Specifies the purpose of the group, a name, label, and description of the group, its relationship to a specific universe, population, or concept, and lists the members of the group.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfOtherMaterialGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a OtherMaterialGroup. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "OtherMaterialGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the OtherMaterialGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the OtherMaterialGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the OtherMaterialGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this OtherMaterialGroup pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "OtherMaterialReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "OtherMaterial"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent OtherMaterial. TypeOfObject should be set to OtherMaterial."
            },
            "OtherMaterialGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "OtherMaterialGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent OtherMaterialGroup. This allows for nesting of OtherMaterialGroups.  TypeOfObject should be set to OtherMaterialGroup."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "OtherMaterialScheme": {
      "description": "This scheme contains a set of other materials referenced by the metadata. In addition to the name, label, and description of the scheme, the structure supports the inclusion of another OtherMaterialScheme by reference and a set of OtherMaterial descriptions either in-line or by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "OtherMaterialSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the OtherMaterialScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the OtherMaterialScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the OtherMaterialScheme."
            },
            "OtherMaterialSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "OtherMaterialScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Inclusion of an existing OtherMaterialScheme by reference."
            },
            "OtherMaterialReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "OtherMaterial"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line description of a OtherMaterial. These are used by reference at various points in the lifecycle."
            },
            "OtherMaterialGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "OtherMaterialGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line description of a group of OtherMaterials."
            }
          }
        }
      ]
    },
    "PhysicalDataProduct": {
      "description": "A module describing the physical storage structures of data files and the relationship of their internal objects to the logical (intellectual) description of the objects found in LogicalProduct. This describes the physical aspects of data files which may be common between one or more data files as described by physical structure of the file and the structure of data items within a record. The PhysicalDataProduct contains the critical links between the physical data store identified by a PhysicalInstance and the logical (intellectual) description of the data as found in the LogicalProduct. In addition to the standard name, label, and description, the module allows for OtherMaterial, and descriptions of PhysicalStructureSchemes and RecordLayoutSchemes in-line or by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "PhysicalDataProductName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the PhysicalDataProduct module."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the PhysicalDataProduct module."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the PhysicalDataProduct module."
            },
            "PhysicalStructureSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PhysicalStructureScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A scheme containing a set of PhysicalStructures containing descriptions of overall structure of a physical data storage format. These descriptions provide the primary link to the LogicalRecord found in the data file, general structural information such as use of proprietary storage structures, division of logical records into physical segment, and default values for decimal separators, etc. Each description can apply to one or more data files containing the same logical records in the same overall structure."
            },
            "RecordLayoutSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RecordLayoutScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A scheme containing a set of RecordLayouts describing the location of individual data items within the physical record and how to address them (locate and retrieve). RecordLayouts provide a link to the PhysicalStructure description and to individual variables or NCubes describing the data items."
            }
          }
        }
      ]
    },
    "PhysicalInstance": {
      "description": "Includes information about the physical instance of a data product (an actual data file). It completes the documentation contained in the Physical Data Product module that is specific to the individual file and serves as a descriptive record of the external data file. Physical Instance provides a citation for the data file, a link to the RecordLayout(s) used by the files records, a description of it coverage (as a constraint if different from the study), check figures for quality control (e.g. digital fingerprint, record count, etc.), and a statistical summary of the data in the file at both the variable and category level.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "Citation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CitationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A citation for the physical instance of a data set. Note that a DOI or similar unique identifier for the data file should be placed in InternationalIdentifier. It is strongly recommended that use of a Citation in this location includes the use of the optional sub-element Title."
            },
            "DataFingerprint": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DataFingerprintType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Allows for assigning a hash value (digital fingerprint) to the data or data file. Set the attribute flag to \u0022data\u0022 when the hash value provides a digital fingerprint to the data contained in the file regardless of the storage format (ASCII, SAS, binary, etc.). One approach to compute a data fingerprint is the Universal Numerical Fingerprint (UNF). Set the attribute flag to \u0022dataFile\u0022 if the digital fingerprint is only for the data file in its current storage format."
            },
            "Coverage": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CoverageType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Includes information about the topical, spatial, and temporal coverage of the physical instance. May be expressed as a restriction of the parent study coverage."
            },
            "DataRelationshipReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DataRelationship"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the DataRelationship containing the LogicalRecord to which the RecordLayout refers. Repeat for cases where LogicalRecords are described in multiple DataRelationship structures. Note that this does not imply that all of the LogicalRecords described in the DataRelationship are contained, wholly or in part in the PhysicalInstance. This reference allows for a direct path between the PhysicalInstance and the related content found in a LogicalProduct."
            },
            "VariableGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "VariableGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a grouping of variables that are included in the PhysicalInstance. Variable Groups may represent hierarchical relationships of variables, topical groupings, or administrative groupings."
            },
            "TabularNCubeRecordLayoutReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "TabularNCubeRecordLayout"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "References the record layout of the data documented in the physical instance."
            },
            "ProprietaryRecordLayoutReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ProprietaryRecordLayout"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "References the record layout of the data documented in the physical instance."
            },
            "RecordLayoutReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RecordLayout"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "References the record layout of the data documented in the physical instance."
            },
            "DefaultMissingValuesReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ManagedMissingValuesRepresentation"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "References the content of the default missing values used in the file. The content of this file overrides default missing value information provided in the LogicalRecord. Allows for the specification that is a Systems Missing Value."
            },
            "DataFileIdentification": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DataFileIdentificationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Identifies the data file documented in the physical instance and provides information about its location."
            },
            "DataFileVersion": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DataFileVersionType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Provides the version information for the data file related to this physical instance. Note that while Physical Instance allows for multiple copies of the same data file (such as backup copies) the assumption is that they are identical in terms of content, layout, format and version."
            },
            "InformationClassificationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "InformationClassification"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Used to describe the rules and guidelines on how the data is allowed to be handled, transferred, stored and disposed. These confidentiality policies are often dictated by national laws and/or data owners on handling of personal, proprietary, and other sensitive information."
            },
            "QualityStatementReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityStatement"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to a Quality Statement pertaining to the quality of the study methodology, metadata, or data to which it is associated. Quality statements may be related to external quality standards."
            },
            "GrossFileStructure": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/GrossFileStructureType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Includes information about the file structure, as well as other characteristics that are specific to the physical instance."
            },
            "ProprietaryInfo": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ProprietaryInfoType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Contains information proprietary to the software package which produced the data file. This is expressed as a set of name-value pairs. The value may be taken from a controlled vocabulary."
            },
            "StatisticalSummary": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/StatisticalSummaryType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Includes variable and category statistics data documented in the physical instance, or a reference to a physical instance where the statistics are described or located in line."
            },
            "ByteOrder": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Contains a term from a controlled vocabulary indicating the byte ordering."
            }
          }
        }
      ]
    },
    "PhysicalInstanceGroup": {
      "description": "Contains a group of PhysicalInstance descriptions, which may be ordered or hierarchical. In addition to the name, label, and description of the group, the structure allows for defining the group by reference to a DefiningConcept.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfPhysicalInstanceGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A brief textual identification of the group type. Supports the use of an external controlled vocabulary."
            },
            "PhysicalInstanceGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the group."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the PhysicalInstanceGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the PhysicalInstanceGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this PhysicalInstanceGroup pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "PhysicalInstanceReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PhysicalInstance"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A PhysicalInstance defined as a member of this group."
            },
            "PhysicalInstanceGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PhysicalInstanceGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A PhysicalInstanceGroup that is a member of this group (nesting structure)."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "PhysicalStructure": {
      "description": "Description of a PhysicalStructure providing the primary link to the LogicalRecord and general structural information. Each description can apply to one or more data files containing the same logical records in the same overall structure.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "PhysicalStructureName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the PhysicalStructure."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the PhysicalStructure."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the PhysicalStructure."
            },
            "FileFormat": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A brief textual description or classification of the format of the file (e.g., SAS save file, Delimited file, Fixed format file, DDI DataSet). Supports the use of an external controlled vocabulary. DDI recommends the use of a controlled vocabulary."
            },
            "DefaultDataType": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Defines the data type to use unless otherwise specified. Supports the use of an external controlled vocabulary. Similar content to RecommendedDataType."
            },
            "DefaultDelimiter": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DelimiterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Delimiter definition for delimited (free field) data that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. Allowed values are: Empty (default), Tab, Blank, AnyString. If a delimiter is used, free field (delimited data) is assumed; binary formats are not allowed.."
            },
            "DefaultDecimalPositions": {
              "$ref": "#/$defs/int",
              "description": "Number of decimal places (expressed as an integer) for data with an implied decimal separator that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. Another expression is the decimal scaling factor (SAS). Default: 0."
            },
            "DefaultDecimalSeparator": {
              "$ref": "#/$defs/string",
              "maxLength": 1,
              "description": "The character used to separate the integer and the fraction part of a number (if an explicit separator is used in the data) that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. Allowed values are: None (default), Dot, Comma, Other. On the basis of the data definition in DDI documents, data processing tools could compute the necessary precision width on the basis of the format width and the existence of separators. Appropriate data types could be used, i.e. float or double, short or long. The decimal separator definition only makes sense with some XML Schema primitives. This is a default which may be overridden in specific cases."
            },
            "DefaultDigitGroupSeparator": {
              "$ref": "#/$defs/string",
              "maxLength": 1,
              "description": "The character used to separate groups of digits (if an explicit separator is used in the data) that is applied to the majority of the data items reducing the amount of repetitive markup required. It can be overridden at the data item level. Allowed values are: None (default), Dot, Comma, Other. The decimal separator definition makes only sense with some XML Schema primitives. This is a default which may be overridden in specific cases."
            },
            "GrossRecordStructure": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/GrossRecordStructureType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "The gross or macro level structures of the record structure including the link to the LogicalRecord and information on the number and ordering of each Physical Segment of the LogicalRecord as stored in the data file."
            }
          }
        }
      ]
    },
    "PhysicalStructureGroup": {
      "description": "A group of PhysicalStructure descriptions for administrative or conceptual purposes. May be hierarchical. In addition to the standard name, label, and description, allows for a brief classification of the group type, reference to an applicable Universe, Population, and Concept, inclusion of PhysicalStructures and PhysicalStructureGroups by reference and an indicator which can be set to \u0022true\u0022 if the group is ordered.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfPhysicalStructureGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a PhysicalStructureGroup. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "PhysicalStructureGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the PhysicalStructureGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the PhysicalStructureGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the PhysicalStructureGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this PhysicalStructureGroup pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "PhysicalStructureReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PhysicalStructure"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent PhysicalStructure."
            },
            "PhysicalStructureGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PhysicalStructureGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent PhysicalStructureGroup. This allows for nesting of PhysicalStructureGroups."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "PhysicalStructureScheme": {
      "description": "A scheme containing a set of PhysicalStructures containing descriptions of overall structure of a physical data storage format. These descriptions provide the primary link to the LogicalRecord found in the data file, general structural information such as use of proprietary storage structures, division of logical records into physical segment, and default values for decimal separators, etc. Each description can apply to one or more data files containing the same logical records in the same overall structure. In addition to the standard name, label, and description, it allows for inclusion of an existing PhysicalStructureScheme by reference, and PhysicalStructure or PhysicalStructureGroup descriptions in-line or by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "PhysicalStructureSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the PhysicalStructureScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the PhysicalStructureScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the PhysicalStructureScheme."
            },
            "PhysicalStructureSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PhysicalStructureScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to an existing PhysicalStructureScheme for inclusion."
            },
            "PhysicalStructureReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PhysicalStructure"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A PhysicalStructure description providing the primary link to the LogicalRecord and general structural information. Each description can apply to one or more data files containing the same logical records in the same overall structure."
            },
            "PhysicalStructureGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PhysicalStructureGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A group of PhysicalStructure descriptions for administrative or conceptual purposes."
            }
          }
        }
      ]
    },
    "Population": {
      "description": "A Population refines a Universe by specifying the geographic area and time period to which its units belong. Units may be people, households, organizations, events, or other objects of interest.\r\n\r\nThis follows the Unit Cascade in [DDI Common Core, version 1](https://doi.org/10.5281/zenodo.17297309) (p. 5): Unit Type identifies a general kind of unit, Universe restricts it by shared characteristics, and Population adds geographic and temporal scope. For example, \u0022persons\u0022 is a Unit Type, \u0022women aged 18 or older\u0022 is a Universe, and \u0022women aged 18 or older residing in the United States during 2025\u0022 is a Population.\r\n\r\nUse \u0060UniverseReference\u0060 to identify the defining Universe, \u0060GeographyOfPopulation\u0060 to describe its geographic scope, and \u0060TimePeriodOfPopulation\u0060 to describe its temporal scope. Multiple time periods can describe non-contiguous intervals. These properties are optional in the current model; a description aligned with Common Core should nevertheless establish both the geographic and temporal scope.\r\n",
      "allOf": [
        {
          "$ref": "#/$defs/Describable"
        },
        {
          "type": "object",
          "properties": {
            "DefiningConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A concept that defines or aids in understanding the content of the population. For example the Population \u0022Males\u0022 may link to the concept of \u0022Male\u0022."
            },
            "UniverseReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Universe"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the Universe that defines the Unit Type and shared characteristics of this Population, such as businesses in the manufacturing industry. The Universe is independent of geographic area and time period; the Population supplies that scope. TypeOfObject should be set to Universe."
            },
            "UnitTypeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "UnitType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to a unit type being associated with this Population. TypeOfObject should be set to UnitType."
            },
            "TypeOfUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The entity type associated with this Population. For example, individuals, families or households, groups, institutions/organizations, administrative units, etc. Supports the use of an external controlled vocabulary."
            },
            "GeographyOfPopulation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/GeographicCoverageType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Description of the geographic coverage of the population."
            },
            "TimePeriodOfPopulation": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DateType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Reference to specific time period for the Population. Repeat for non-continuous time periods."
            },
            "IsInclusive": {
              "$ref": "#/$defs/boolean",
              "description": "The default value is true. The description statement of a Population is generally stated in inclusive terms such as All persons residing in Europe. Occasionally a Population is defined by what it excludes, i.e., All persons residing in Europe except for those residing on U.S. Military bases. In this case the value would be changed to false."
            }
          }
        }
      ]
    },
    "PopulationGroup": {
      "description": "Contains a group of Populations, which may describe an ordered or hierarchical relationship structure. Specifies the purpose of the group, a name, label, and description, its relationship to a specific universe, population, or concept, and its member Populations and nested PopulationGroups. Used primarily for organizational and management purposes.\r\n",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfPopulationGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a PopulationGroup. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "PopulationGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the PopulationGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the PopulationGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the PopulationGroup."
            },
            "GroupingUniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain. This is not a universe contained by the group but one that helps define the purpose and application of the group."
            },
            "GroupingPopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this PopulationGroup apply. This reference defines the context and application of the group; it does not identify a constituent member."
            },
            "GroupingConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group. This helps define the context within which this PopulationGroup is relevant."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a constituent Population. TypeOfObject should be set to Population."
            },
            "PopulationGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PopulationGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent PopulationGroup. This allows for nesting of PopulationGroups. TypeOfObject should be set to PopulationGroup."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "PopulationScheme": {
      "description": "Contains a set of Population descriptions, including their time and geography. Populations may be organized into PopulationGroups for organizational and management purposes. Other PopulationSchemes may be included by reference.\r\n",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "PopulationSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the PopulationScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the PopulationScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the PopulationScheme."
            },
            "PopulationSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PopulationScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows the inclusion of a PopulationScheme by reference."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a population, including its time and geography."
            },
            "PopulationGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PopulationGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a group of populations for organizational and management purposes."
            }
          }
        }
      ]
    },
    "PretestActivity": {
      "description": "A substitution for DevelopmentActivity which specifies the details for performing a pretest of a set of questions or questionnaire. Includes reference to the Sample Frame and Sample Method for the pretest, and the data collection process in terms of method of administration, mode of collection, delivery method, and identification of any additional data collected.",
      "allOf": [
        {
          "$ref": "#/$defs/DevelopmentActivity"
        },
        {
          "type": "object",
          "properties": {
            "SampleFrameReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "SampleFrame"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A reference to the Sample Frame used in selecting the the sample from the parent population."
            },
            "SamplingPlanReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "SamplingPlan"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the sampling plan used with the sample frame."
            },
            "PretestAdministration": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/PretestAdministrationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Description of the method and mode of data collection in administering the pretest. Notes any additional data collected in the administration of the pretest."
            }
          }
        }
      ]
    },
    "ProcessingEvent": {
      "description": "ProcessingEvent can contain a number of operations of different types to express a range of events that occur together. For example a ProcessingEvent of a CleaningOperation may also include a reference to a ProcessingInstruction used in the cleaning process. Event activities include ControlOperation, CleaningOperation, Weighting, and DataAppraisalInformation. References to related processing instructions and quality statement may be included.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "ProcessingEventName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ProcessingEvent."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ProcessingEvent."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the ProcessingEvent."
            },
            "ControlOperation": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/OperationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Description of a Control Operation used to facilitate data control."
            },
            "CleaningOperation": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/OperationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Description of a Cleaning Operation such as consistency checking, invalid or out of range values, etc."
            },
            "WeightingReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Weighting"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Description of the weighting processes and any resultant standard weights."
            },
            "DataAppraisalInformation": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DataAppraisalInformationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Description of the data appraisal processing including the resultant sampling error and response rate."
            },
            "ProcessingInstructionReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeneralInstruction",
                          "GenerationInstruction"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a processing instruction (GeneralInstruction or GenerationInstruction) used during the processing event. The basic Reference structure is extended to allow for the use of ParameterLinkage to link specific source parameters to the InParameter of the instruction to reflect its use within this specific Processing Event. TypeOfObject should be set to GeneralInstruction or GenerationInstruction."
            },
            "QualityStatementReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityStatement"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a quality statement relating to the processing event."
            }
          }
        }
      ]
    },
    "ProcessingEventGroup": {
      "description": "Describes a group of processing events for administrative or conceptual purposes, which may be hierarchical. In addition to the standard name, label, and description contains references to included Processing Events, and other ProcessingEventGroups.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfProcessingEventGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a processing events group. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "ProcessingEventGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ProcessingEventGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ProcessingEventGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the ProcessingEventGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this ProcessingEventGroup pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "ProcessingEventReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ProcessingEvent"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent ProcessingEvent."
            },
            "ProcessingEventGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ProcessingEventGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent processing event group. This allows for nesting of processing instruction groups."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "ProcessingEventScheme": {
      "description": "A set of processing events maintained by an agency, and used in the processing data during development, cleaning, converting to variables, aggregating, and comparing. In addition to the standard name, label, and description allows for the inclusion of an existing ProcessingEventScheme by reference and descriptions of ProcessingEvent and ProcessingEventGroup either in-line or by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "ProcessingEventSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ProcessingEventScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ProcessingEventScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the ProcessingEventScheme."
            },
            "ProcessingEventSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ProcessingEventScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to an existing ProcessingEventScheme for inclusion."
            },
            "ProcessingEventReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ProcessingEvent"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A ProcessingEvent described in the ProcessingEventScheme."
            },
            "ProcessingEventGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ProcessingEventGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A description of a group of ProcessingEvent for administrative or conceptual purposes."
            }
          }
        }
      ]
    },
    "ProcessingInstruction": {
      "description": "Substitution group head for types of processing instruction.",
      "allOf": [
        {
          "$ref": "#/$defs/Describable"
        },
        {
          "type": "object",
          "properties": {
            "Binding": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/BindingType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Defines the link between the output of an external object to an InParameter described above."
            }
          }
        }
      ]
    },
    "ProcessingInstructionGroup": {
      "description": "Describes a group of processing instructions for administrative or conceptual purposes, which may be hierarchical. In addition to the standard name, label, and description contains references to included Generation or General Instructions, and other ProcessingInstructionGroups.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfProcessingInstructionGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a processing instruction group. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "ProcessingInstructionGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ProcessingInstructionGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ProcessingInstructionGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the ProcessingInstructionGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this ProcessingInstructionGroup pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "GeneralInstructionReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeneralInstruction"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent General Instruction."
            },
            "GenerationInstructionReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GenerationInstruction"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent Generation Instruction."
            },
            "ProcessingInstructionGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ProcessingInstructionGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent processing instruction group. This allows for nesting of processing instruction groups."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "ProcessingInstructionScheme": {
      "description": "A set of Processing Instructions (General and Generation Instructions) maintained by an agency. In addition to the standard name, label, and description allows for the inclusion of an existing ProcessingInstructionScheme by reference, and GeneralInstruction, GenerationInstruction, and ProcessingInstructionGroup descriptions either in-line or by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "ProcessingInstructionSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the ProcessingInstructionScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the ProcessingInstructionScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the ProcessingInstructionScheme."
            },
            "ProcessingInstructionSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ProcessingInstructionScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to an existing ProcessingInstructionScheme for inclusion."
            },
            "GeneralInstructionReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeneralInstruction"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A General Instruction described in the Processing Instruction Scheme."
            },
            "GenerationInstructionReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GenerationInstruction"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A Generation Instruction described in the Processing Instruction Scheme."
            },
            "ProcessingInstructionGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ProcessingInstructionGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A description of a group of ProcessingInstructions for administrative or conceptual purposes."
            }
          }
        }
      ]
    },
    "ProprietaryRecordLayout": {
      "description": "A member of the BaseRecordLayout substitution group intended for use when the data items are stored in an external proprietary format. In addition to the link to the PhysicalStructure provided by BaseRecordLayout, the record layout is this namespace (m4) identifies the character set and array base for the external data, identifies the software of the proprietary system, provides a description of how the data item is addressed within the system, provides default values for numeric data types, text data types, dateTime data types, whether coded data should be treated as numeric or text, a default variable scheme, proprietary information, and a full description of each data item including its link to the variable description and system address.",
      "allOf": [
        {
          "$ref": "#/$defs/BaseRecordLayout"
        },
        {
          "type": "object",
          "properties": {
            "CharacterSet": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Character set used in the data file (e.g., US ASCII, EBCDIC, UTF-8). This is a required field. The DDI Alliance has provided a controlled vocabulary (CharacterSet) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "ArrayBase": {
              "$ref": "#/$defs/int",
              "description": "Sets the array base for any arrays used in the definition (that is, whether the first value is in position 0 or 1, etc.). This may be the data array in a delimited data file or the measure array for measures that are bundled and stored in a single location. Array base is generally set to either 0 or 1. There is no override provided as systems processing a record would use a consistent array base."
            },
            "SystemSoftware": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/SoftwareType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Specification of a software package used to instantiate a data collection method."
            },
            "DataItemAddress": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DataItemAddressType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Provides minimum information on data item address system, such as variable ID or Name, etc."
            },
            "DefaultNumericDataTypeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ManagedNumericRepresentation"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Declares the most common data type used for numeric data."
            },
            "DefaultTextDataTypeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ManagedTextRepresentation"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Declares the most common data type used for textual data."
            },
            "DefaultDateTimeDataTypeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ManagedDateTimeRepresentation"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Declares the most common data type used for date-time data."
            },
            "CodedDataAsNumeric": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ManagedNumericRepresentation"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Indicates that coded data should be treated as numeric, and defines the numeric type."
            },
            "CodedDataAsText": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ManagedTextRepresentation"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Indicates that coded data should be treated as text, and defines the text type."
            },
            "DefaultVariableSchemeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "VariableScheme"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "References a variable scheme for the RecordLayout. This can be overridden by individual data items if they are from a different variable scheme."
            },
            "ProprietaryInfo": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ProprietaryInfoType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Contains information proprietary to the software package which produced the data file. This is expressed as a set of key(name)/ value pairs."
            },
            "DataItemP": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DataItemPType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes a single data item within the file including its variable reference, information on the data type, and any item specific proprietary information."
            }
          }
        }
      ]
    },
    "QualityScheme": {
      "description": "This scheme contains a set of quality statements and quality standards referenced by the metadata at different points in the lifecycle. In addition to the name, label, and description of the scheme, the structure supports the inclusion of another QualityScheme by reference and a set of QualityStatement descriptions either in-line or by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "QualitySchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the QualityScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the QualityScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the QualityScheme."
            },
            "QualitySchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Inclusion of an existing QualityScheme by reference."
            },
            "QualityStatementReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityStatement"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line description of a QualityStatement. These are used by reference at various points in the lifecycle."
            },
            "QualityStandardReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityStandard"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line description of a QualityStandard. These are used by reference at various points in the lifecycle."
            },
            "QualityStatementGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityStatementGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line description of a group of QualityStatements."
            },
            "QualityStandardGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityStandardGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line description of a group of QualityStandards."
            }
          }
        }
      ]
    },
    "QualityStandard": {
      "description": "A formal description of a quality standard, and the quality concepts which it requires.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "QualityStandardName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Name of the QualityStandard using the DDI Name structure."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the QualityStandard."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the QualityStandard."
            },
            "StandardUsed": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/StandardUsedType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Provide the citation and location of the source published standard using the OtherMaterialType."
            },
            "ComplianceDefinition": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ComplianceDefinitionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides a list of quality concepts in the quality standard."
            }
          }
        }
      ]
    },
    "QualityStandardGroup": {
      "description": "Contains a group of QualityStatements, which may describe an ordered or hierarchical relationship structure. Specifies the purpose of the group, a name, label, and description of the group, its relationship to a specific universe, population, or concept, and lists the members of the group.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfQualityStandardGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a QualityStatementGroup. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "QualityStandardGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the QualityStandardGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the QualityStatementGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the QualityStatementGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this QualityStandardGroup pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "QualityStandardReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityStandard"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent QualityStandard. TypeOfObject should be set to QualityStandard."
            },
            "QualityStandardGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityStandardGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent QualityStandardGroup. This allows for nesting of QualityStandardGroups.  TypeOfObject should be set to QualityStandardGroup."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "QualityStatement": {
      "description": "A statement of quality which may be related to an external standard or contain a simple statement of internal quality goals or expectations. When relating to an external standard information on compliance may be added providing a reference to a ComplianceConcept, an ExternalComplianceCode, as well as a description. Optionally, a general statement of quality may be provided using OtherQualityStatement.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "QualityStatementName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Name of the QualityStatement using the DDI Name structure."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the QualityStatement."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the QualityStatement."
            },
            "QualityStandardReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "QualityStandard"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A formal description of a quality standard, and the quality concepts which it requires."
            },
            "OtherStatementOfQuality": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Describes the steps taken to ensure quality that are not related to a specific standard. Repeat the OtherQualityStatement for differing content if needed."
            },
            "ComplianceStatement": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A descriptive statement regarding the application of the selected standard or other means of quality control."
            },
            "Compliance": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ComplianceType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Allows for a quality statement based on frameworks to be described using itemized properties. A reference to a concept, a coded value, or both can be used to specify the property from the standard framework identified in StandardUsed. ComplianceDescription can provide further details or a general description of compliance with a standard."
            }
          }
        }
      ]
    },
    "QualityStatementGroup": {
      "description": "Contains a group of QualityStatements, which may describe an ordered or hierarchical relationship structure. Specifies the purpose of the group, a name, label, and description of the group, its relationship to a specific universe, population, or concept, and lists the members of the group.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfQualityStatementGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a QualityStatementGroup. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "QualityStatementGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the QualityStatementGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the QualityStatementGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the QualityStatementGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this QualityStatementGroup pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "QualityStatementReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityStatement"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent QualityStatement. TypeOfObject should be set to QualityStatement."
            },
            "QualityStatementGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityStatementGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent QualityStatementGroup. This allows for nesting of QualityStatementGroups.  TypeOfObject should be set to QualityStatementGroup."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "Question": {
      "description": "Serves as a common extension base for different forms of Questions",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "DevelopmentResultsReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DevelopmentResults"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the development implementation results which gave rise to this version of the object. TypeOfObject should be DevelopmentResults."
            }
          }
        }
      ]
    },
    "QuestionBlock": {
      "description": "A QuestionBlock is a specific structure used in educational and other types of testing where an object (Stimulus Material) is provided and a set of questions are asked regarding the object. The QuestionBlock generally has related QuestionBlocks that measure similar skills or aptitudes and is used randomly within a set of questionnaires to create multiple versions of a single questionnaire that can be used with large groups for testing purposes. Assembly of the QuestionBlocks into a questionnaire may the result of selection based on an experimental design model. It contains information on what the QuestionBlock is intended to measure, input and output parameters for the QuestionBlock, a description of the stimulus material and the questions related to it, instructions on sequencing and number of allowed responses, references to external aids and instructions, and an estimate of the time needed to complete the question. Note that the QuestionBlock is a reusable format for use in any number of applied uses. External aids, instructions, response sequencing etc. should contain information consistent with the general use of the QuestionBlock (QuestionItems and QuestionGrids will contain information specific to the individual question). Additional materials and information can be added within the QuestionConstruct which is the applied use of a question.",
      "allOf": [
        {
          "$ref": "#/$defs/Question"
        },
        {
          "type": "object",
          "properties": {
            "QuestionBlockName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the QuestionBlock."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the QuestionBlock."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the QuestionBlock."
            },
            "InParameter": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InParameterType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides an identity for input objects required for the QuestionBlock."
            },
            "OutParameter": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ParameterType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides an identify for the output objects of the QuestionBlock."
            },
            "Binding": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/BindingType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A structure used to bind the content of a parameter declared as the source to a parameter declared as the target. For example, binding the OutParameter of one Question to the InParameter of another Question in order to personalize a question text. Care should be taken to bind only reusable information at this level. Binding is also available at the QuestionConstruct to reflect bindings particular to the use of the question in a specific question flow or instrument."
            },
            "QuestionBlockIntent": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "The purpose of the QuestionBlock in terms of what it is designed to test. May contain information on specific aspects of the Block and its construction."
            },
            "StimulusMaterial": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/StimulusMaterialType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Material that is visual, verbal and/or auditory used to communicate ideas or information which can be researched or provide a source for a response. For example, a picture about which a number of questions are asked, or a sound for which a measurable response is taken (as in a hearing test)."
            },
            "QuestionItemReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QuestionItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a QuestionItem containing a question regarding the stimulus material."
            },
            "QuestionGridReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QuestionGrid"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a QuestionGrid containing a question regarding the stimulus material."
            },
            "QuestionSequence": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/QuestionSequenceType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows for recommending that the sequence of questions should vary according to a specified pattern, i.e., random, rotation, etc."
            },
            "ResponseCardinality": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ResponseCardinalityType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Indicates the minimum and maximum number of responses to expect from the QuestionBlock."
            },
            "ConceptReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Concept"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to the concept the QuestionBlock is intended to gather data on."
            },
            "ExternalAid": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ExternalAidType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A pointer to an external aid presented by the instrument such as a text card, image, audio, or audiovisual aid. Typically a URN. Use type attribute to describe the type of external aid provided. Example of terms to use would include: imageOnly audioOnly audioVisual multiMedia."
            },
            "ExternalInterviewerInstruction": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ExternalInterviewerInstructionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "External reference to an interviewer instruction not expressed as DDI XML using OtherMaterial."
            },
            "InterviewerInstructionAttachment": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/AttachedInstructionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "an interviewer instruction expressed as DDI XML."
            },
            "EstimatedSecondsResponseTime": {
              "$ref": "#/$defs/decimal",
              "description": "The estimated amount of time required to answer a question expressed in seconds. Decimal values should be used to define fractions of seconds."
            }
          }
        }
      ]
    },
    "QuestionConstruct": {
      "description": "A member of the ControlConstruct substitution group. A construct which ties question content to the programmatic logic of the control constructs. Contains a reference to a QuestionItem, QuestionGrid or QuestionBlock, can set response or dimension sequence for use in a specific application, identifies the response unit, analysis unit, and universe. May provide an estimate of the number of minutes needed to respond.",
      "allOf": [
        {
          "$ref": "#/$defs/ControlConstruct"
        },
        {
          "type": "object",
          "properties": {
            "QuestionReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "QuestionBlock",
                        "QuestionGrid",
                        "QuestionItem"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to a QuestionItem, QuestionGrid, or QuestionBlock."
            },
            "ResponseSequence": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/SpecificSequenceType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describes the sequencing of the response options to the question for this application."
            },
            "DimensionSequence": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/SpecificSequenceType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describes the sequencing of the dimension within a QuestionGrid for this application."
            },
            "ResponseUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the intended Response unit (respondent). Supports the use of an external controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (ResponseUnit) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "AnalysisUnit": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "The analysis unit, expressed as a term which may come from a controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (AnalysisUnit) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement containing a description of the persons or other elements that this variable refers to, and to which any analytic results refer. If more than one universe is referenced the universe of the variable is the intersect of the referenced universes."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other elements that this question construct applies to. If more than one population is referenced, the population of the question construct is the intersection of the referenced populations."
            },
            "EstimatedSecondsResponseTime": {
              "$ref": "#/$defs/decimal",
              "description": "The estimated amount of time required to answer a question expressed in seconds. Decimal values should be used to define fractions of seconds. At the question construct level it refers to the estimated time within the context of is use in a questionnaire."
            }
          }
        }
      ]
    },
    "QuestionGrid": {
      "description": "Structures the QuestionGrid as an NCube-like structure providing dimension information, labeling options, and response domains attached to one or more cells within the grid. Provides the intent of the QuestionGrid, input and output parameters for the grid, the question text for the grid, details on the dimensions, allowed responses, and additional cell contents of the grid, references to external aids and instructions, and an estimate of the time required to complete the grid. Note that the QuestionGrid is a reusable format for use in any number of applied uses. External aids, instructions, response sequencing etc. should contain information consistent with the general use of the QuestionGrid. Additional materials and information can be added within the QuestionConstruct which is the applied use of a question.",
      "allOf": [
        {
          "$ref": "#/$defs/Question"
        },
        {
          "type": "object",
          "properties": {
            "QuestionGridName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the QuestionGrid."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the QuestionGrid."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the QuestionGrid."
            },
            "InParameter": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InParameterType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides an identity for input objects required for the QuestionGrid."
            },
            "OutParameter": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ParameterType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides an identify for the output objects of the QuestionGrid."
            },
            "Binding": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/BindingType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A structure used to bind the content of a parameter declared as the source to a parameter declared as the target. For example, binding the OutParameter of one Question to the InParameter of another Question in order to personalize a question text. Care should be taken to bind only reusable information at this level. Binding is also available at the QuestionConstruct to reflect bindings particular to the use of the question in a specific question flow or instrument."
            },
            "QuestionText": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DynamicTextType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "The text of a question. Supports the use of DynamicText. Note that when using QuestionText, the full QuestionText must be repeated for multi-language versions of the content. Different languages may handle the dynamic portions in different locations and/or with different content. Therefore languages cannot be mixed within a dynamic text except when the full text itself has multiple language sections, for example, a foreign language term in a text. The DisplayText may also be repeated to provide a dynamic and plain text version of the display. This allows for accurate rendering of the QuestionText in a non-dynamic environment like print."
            },
            "QuestionIntent": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "The purpose of the QuestionGrid in terms of what it is designed to test. May contain information on specific aspects of the Grid and its construction."
            },
            "GridDimension": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/GridDimensionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes each dimension of the grid including dimension rank (for the purpose of identifying a cell address), a text for the dimension, and optional labels and codes used as column and row stubs. May also describe a roster (a set of unlabeled rows or columns depending upon display situation)."
            },
            "ResponseDomain": {
              "type": "object",
              "oneOf": [
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CategoryDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CategoryDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CategoryRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CategoryRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CodeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CodeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CodeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CodeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CoordinatePairsType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CoordinatePairsType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DateTimeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DateTimeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DateTimeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DateTimeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DistributionDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DistributionDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DistributionRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DistributionRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/ExternalCategoryRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "ExternalCategoryRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicLocationCodeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicLocationCodeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicLocationCodeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicLocationCodeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicStructureCodeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicStructureCodeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicStructureCodeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicStructureCodeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/LocationDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "LocationDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/LocationRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "LocationRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NominalDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NominalDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NominalRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NominalRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NumericDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NumericDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NumericRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NumericRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/RankingDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "RankingDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/RankingRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "RankingRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/ScaleDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "ScaleDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/ScaleRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "ScaleRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/TextDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "TextDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/TextRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "TextRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                }
              ],
              "unevaluatedProperties": false,
              "description": "Contains a response domain for the question grid. All cells in the grid have the same response domain. Any cell may also contain an internal label."
            },
            "ResponseDomainReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ManagedCategoryRepresentation",
                        "ManagedCodeRepresentation",
                        "ManagedDateTimeRepresentation",
                        "ManagedDistributionRepresentation",
                        "ManagedExternalCategoryRepresentation",
                        "ManagedGeographicLocationCodeRepresentation",
                        "ManagedGeographicRepresentation",
                        "ManagedGeographicStructureCodeRepresentation",
                        "ManagedLocationRepresentation",
                        "ManagedMissingValuesRepresentation",
                        "ManagedNominalRepresentation",
                        "ManagedNumericRepresentation",
                        "ManagedRankingRepresentation",
                        "ManagedScaleRepresentation",
                        "ManagedTextRepresentation"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "The inclusion of a response domain by reference (must be supported by a managed representation). An abstract element. May be substituted by any valid object of substitution type DomainReference."
            },
            "StructuredMixedGridResponseDomain": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/StructuredMixedGridResponseDomainType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Contains a mixture of response domains for the grid cells. Each response domain can be attached to a specific region of the grid, for example a single column or row."
            },
            "CellLabel": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CellLabelType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides for the addition of a label within a cell or cells of the grid."
            },
            "FixedCellValue": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/FixedCellValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides for the ability to fix a value within a cell or cells of the grid."
            },
            "ConceptReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Concept"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to the concept the QuestionGrid is intended to gather data on."
            },
            "ExternalAid": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ExternalAidType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A pointer to an external aid presented by the instrument such as a text card, image, audio, or audiovisual aid. Typically a URN. Use type attribute to describe the type of external aid provided. Example of terms to use would include: imageOnly audioOnly audioVisual multiMedia."
            },
            "ExternalInterviewerInstruction": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ExternalInterviewerInstructionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "External reference to an interviewer instruction not expressed as DDI XML using OtherMaterial."
            },
            "InterviewerInstructionAttachment": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/AttachedInstructionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "an interviewer instruction expressed as DDI XML."
            },
            "RepresentedVariableReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RepresentedVariable"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the RepresentedVariable that describes the data to be collected by this question grid. The RepresentedVariable contains the broad reusable specification of the Variable, i.e., concept, universe, and value representation. When more than one ResponseDomain exists, one RepresentedVariable should be created for each ResponseDomain in the same order as the corresponding ResponseDomain. TypeOfObject should be set to RepresentedVariable."
            },
            "EstimatedSecondsResponseTime": {
              "$ref": "#/$defs/decimal",
              "description": "The estimated amount of time required to answer a question expressed in seconds. Decimal values should be used to define fractions of seconds."
            }
          }
        }
      ]
    },
    "QuestionGroup": {
      "description": "Contains a group of Questions, which may be ordered or hierarchical. In addition to the name, label, and description of the group, the structure allows for defining the type of group using an optional controlled vocabulary, a reference to a defining universe, population, or concept for the group, a subject classification for the group, and a listing of Questions and QuestionGroups in any order.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfQuestionGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A brief textual identification of the group type. Supports the use of an external controlled vocabulary."
            },
            "QuestionGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the QuestionGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the QuestionGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the QuestionGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this question group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this question group pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the Questions in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "QuestionItemReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QuestionItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent QuestionItem."
            },
            "QuestionGridReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QuestionGrid"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent QuestionGrid."
            },
            "QuestionBlockReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QuestionBlock"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent QuestionBlock."
            },
            "QuestionGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QuestionGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent QuestionGroup. This allows for nesting of QuestionGroups."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "QuestionItem": {
      "description": "Structure a single Question which may contain one or more response domains (i.e., a list of valid category responses where if \u0022Other\u0022 is indicated a text response can be used to specify the intent of \u0022Other\u0022). The structure provides detail on the intent of the question, the text of the question, the valid response options and the number of allowed responses, references to external aids and instructions, and an estimation of the time needed to respond to the question. Note that the QuestionItem is a reusable format for use in any number of applied uses. External aids, instructions, response sequencing etc. should contain information consistent with the general use of the QuestionItem. Additional materials and information can be added within the QuestionConstruct which is the applied use of a question.",
      "allOf": [
        {
          "$ref": "#/$defs/Question"
        },
        {
          "type": "object",
          "properties": {
            "QuestionItemName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the QuestionItem."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the QuestionItem."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the QuestionItem."
            },
            "InParameter": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InParameterType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides an identity for input objects required for the QuestionItem."
            },
            "OutParameter": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ParameterType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides an identify for the output objects of the QuestionItem."
            },
            "Binding": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/BindingType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A structure used to bind the content of a parameter declared as the source to a parameter declared as the target. For example, binding the OutParameter of one Question to the InParameter of another Question in order to personalize a question text. Care should be taken to bind only reusable information at this level. Binding is also available at the QuestionConstruct to reflect bindings particular to the use of the question in a specific question flow or instrument."
            },
            "QuestionText": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DynamicTextType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "The text of a question. Supports the use of DynamicText. Note that when using QuestionText, the full QuestionText must be repeated for multi-language versions of the content. Different languages may handle the dynamic portions in different locations and/or with different content. Therefore languages cannot be mixed within a dynamic text except when the full text itself has multiple language sections, for example, a foreign language term in a text. The DisplayText may also be repeated to provide a dynamic and plain text version of the display. This allows for accurate rendering of the QuestionText in a non-dynamic environment like print."
            },
            "QuestionIntent": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "The purpose of the QuestionItem in terms of what it is designed to measure."
            },
            "ResponseDomain": {
              "type": "object",
              "oneOf": [
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CategoryDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CategoryDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CategoryRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CategoryRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CodeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CodeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CodeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CodeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CoordinatePairsType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CoordinatePairsType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DateTimeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DateTimeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DateTimeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DateTimeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DistributionDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DistributionDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DistributionRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DistributionRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/ExternalCategoryRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "ExternalCategoryRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicLocationCodeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicLocationCodeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicLocationCodeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicLocationCodeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicStructureCodeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicStructureCodeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicStructureCodeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicStructureCodeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/LocationDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "LocationDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/LocationRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "LocationRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NominalDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NominalDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NominalRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NominalRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NumericDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NumericDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NumericRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NumericRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/RankingDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "RankingDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/RankingRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "RankingRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/ScaleDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "ScaleDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/ScaleRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "ScaleRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/TextDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "TextDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/TextRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "TextRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                }
              ],
              "unevaluatedProperties": false,
              "description": "Contains a response domain for the question item. Typically used to describe simple response domains (textual, numeric, etc.)."
            },
            "ResponseDomainReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ManagedCategoryRepresentation",
                        "ManagedCodeRepresentation",
                        "ManagedDateTimeRepresentation",
                        "ManagedDistributionRepresentation",
                        "ManagedExternalCategoryRepresentation",
                        "ManagedGeographicLocationCodeRepresentation",
                        "ManagedGeographicRepresentation",
                        "ManagedGeographicStructureCodeRepresentation",
                        "ManagedLocationRepresentation",
                        "ManagedMissingValuesRepresentation",
                        "ManagedNominalRepresentation",
                        "ManagedNumericRepresentation",
                        "ManagedRankingRepresentation",
                        "ManagedScaleRepresentation",
                        "ManagedTextRepresentation"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "The inclusion of a response domain by reference (must be supported by a managed representation). An abstract element. May be substituted by any valid object of substitution type ResponseDomainReference."
            },
            "StructuredMixedResponseDomain": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/StructuredMixedResponseDomainType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Use in cases where the question requires the option for multiple response domains, such as a category response and a text response to specify a value for \u0022Other\u0022, or when text needs to be inserted before, after, or between response options for the question."
            },
            "ResponseCardinality": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ResponseCardinalityType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows the designation of the minimum and maximum number of responses allowed for this question. Note that each response domain has its own response cardinality."
            },
            "ConceptReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Concept"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to the concept associated with the response to the question."
            },
            "ExternalAid": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ExternalAidType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A pointer to an external aid presented by the instrument such as a text card, image, audio, or audiovisual aid. Typically a URN. Use type attribute to describe the type of external aid provided. Example of terms to use would include: imageOnly audioOnly audioVisual multiMedia."
            },
            "ExternalInterviewerInstruction": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ExternalInterviewerInstructionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "External reference to an interviewer instruction not expressed as DDI XML using OtherMaterial."
            },
            "InterviewerInstructionAttachment": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/AttachedInstructionType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "an interviewer instruction expressed as DDI XML."
            },
            "RepresentedVariableReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RepresentedVariable"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the RepresentedVariable that describes the data to be collected by this question. The RepresentedVariable contains the broad reusable specification of the Variable, i.e., concept, universe, and value representation. When more than one ResponseDomain exists, one RepresentedVariable should be created for each ResponseDomain in the same order as the corresponding ResponseDomain. TypeOfObject should be set to RepresentedVariable."
            },
            "EstimatedSecondsResponseTime": {
              "$ref": "#/$defs/decimal",
              "description": "The estimated amount of time required to answer a question expressed in seconds. Decimal values should be used to define fractions of seconds."
            }
          }
        }
      ]
    },
    "QuestionScheme": {
      "description": "Contains a set of QuestionItems, QuestionGrids, QuestionBlocks, and QuestionGroups. In addition to the standard name, label, and description of the Question Scheme, may contain another QuestionScheme by reference, a listing of Questions by type (in-line or by reference), and a listing of QuestionGroups (in-line or by reference).",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "QuestionSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the QuestionScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the QuestionScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the QuestionScheme."
            },
            "QuestionSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QuestionScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for the inclusion of another QuestionScheme by reference."
            },
            "QuestionItemReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QuestionItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a QuestionItem in-line."
            },
            "QuestionGridReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QuestionGrid"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a QuestionGrid in-line."
            },
            "QuestionBlockReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QuestionBlock"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a QuestionBlock in-line."
            },
            "QuestionGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QuestionGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Contains a group of Questions, which may be ordered or hierarchical."
            }
          }
        }
      ]
    },
    "RecordLayout": {
      "description": "A member of the BaseRecordLayout substitution group intended for use with archival formats of microdata held in an external file with fixed or delimited locations for data items. In addition to the link to the PhysicalStructure provided by BaseRecordLayout, the record layout is this namespace (p) identifies the character set and array base for the stored data, an optional reference to the default VariableScheme for the data items, a flag indicating that the variable names are provided on the first row of the data file, and a full description of each data item including a link to its description and its physical location in the record.",
      "allOf": [
        {
          "$ref": "#/$defs/BaseRecordLayout"
        },
        {
          "type": "object",
          "properties": {
            "CharacterSet": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Character set used in the data file (e.g., US ASCII, EBCDIC, UTF-8). This is a required field. The DDI Alliance has provided a controlled vocabulary (CharacterSet) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "ArrayBase": {
              "$ref": "#/$defs/int",
              "description": "Sets the array base for any arrays used in the definition (that is, whether the first value is in position 0 or 1, etc.). This may be the data array in a delimited data file or the measure array for measures that are bundled and stored in a single location. Array base is generally set to either 0 or 1. There is no override provided as systems processing a record would use a consistent array base."
            },
            "DefaultVariableSchemeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "VariableScheme"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "References a variable scheme for the RecordLayout. This can be overridden by individual data items if they are from a different variable scheme."
            },
            "DataItem": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DataItemType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Includes a reference to a variable, and information about its data item location and its data type/format."
            },
            "NCubeInstanceReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "NCubeInstance"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A container for defining an instance of an NCube, indicating the matrix address of each cell and where the data for each measure within a cell of the NCube is stored. Allows specifying the values of the attributes attached to a NCube."
            },
            "NamesOnFirstRow": {
              "$ref": "#/$defs/boolean",
              "description": "Set this item to \u0022true\u0022 if the first row of the file contains the names of the variables (data items)."
            }
          }
        }
      ]
    },
    "RecordLayoutGroup": {
      "description": "Contains a group of RecordLayout descriptions for administrative or conceptual purposes, which may be hierarchical. In addition to the standard name, label, and description, allows for a classification of the type of group, references to a Universe, Population, and Concept, and inclusion of RecordLayouts and RecordLayoutGroups by reference, plus a flag indicating if the group is ordered.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfRecordLayoutGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a RecordLayoutGroup. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "RecordLayoutGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the RecordLayoutGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the RecordLayoutGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the RecordLayoutGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other elements that the data refer to, and to which any analytic results refer."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other elements that the data refer to, and to which any analytic results refer."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept represented by the record layout in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "RecordLayoutReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RecordLayout"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent RecordLayout."
            },
            "InLineNCubeRecordLayoutReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "InLineNCubeRecordLayout"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent RecordLayout."
            },
            "ProprietaryRecordLayoutReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ProprietaryRecordLayout"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent RecordLayout."
            },
            "TabularNCubeRecordLayoutReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "TabularNCubeRecordLayout"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent RecordLayout."
            },
            "RecordLayoutGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RecordLayoutGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent RecordLayoutGroup. This allows for nesting of variable RecordLayoutGroups."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "RecordLayoutScheme": {
      "description": "A scheme containing a set of RecordLayouts describing the location of individual data items within the physical record and how to address them (locate and retrieve). RecordLayouts provide a link to the PhysicalStructure description and to individual variables or NCubes describing the data items.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "RecordLayoutSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the RecordLayoutScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the RecordLayoutScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the RecordLayoutScheme."
            },
            "RecordLayoutSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RecordLayoutScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to an existing RecordLayoutScheme for inclusion."
            },
            "RecordLayoutReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "RecordLayout"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Allows for the inclusion of a RecordLayout by reference."
            },
            "InLineNCubeRecordLayoutReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "InLineNCubeRecordLayout"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Allows for the inclusion of a RecordLayout by reference."
            },
            "TabularNCubeRecordLayoutReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "TabularNCubeRecordLayout"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Allows for the inclusion of a RecordLayout by reference."
            },
            "ProprietaryRecordLayoutReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ProprietaryRecordLayout"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Allows for the inclusion of a RecordLayout by reference."
            },
            "RecordLayoutGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RecordLayoutGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a group of RecordLayout descriptions for administrative or conceptual purposes."
            }
          }
        }
      ]
    },
    "Relation": {
      "description": "Describes the relationship between any two organizations or individual, or an individual and an organization. This is a pairwise relationship and relationships may be unidirectional. Identifies the Source organization or individual and the Target organization or individual, describes the relationship, provides a keyword to classify the relationship, provides and effective period for the relationship, allows for addition information to be provided, and can contain a privacy specification.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "SourceObject": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/SourceObjectType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the Source organization or individual in the relationship. Source to Target provides a directional perception when defining the relationship."
            },
            "TargetObject": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/TargetObjectType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Identifies the Target organization or individual in the relationship. The Target object describes its role in relationship to the Source object."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the relationship."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A brief textual identification of the relation type. Supports the use of an external controlled vocabulary."
            },
            "EffectivePeriod": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DateType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Time period during which this relationship is valid."
            },
            "AdditionalInformation": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Any information not captured by the other descriptive objects. The privacy code may be set to indicate access restriction to this information."
            },
            "Privacy": {
              "$ref": "#/$defs/string",
              "enum": [
                "public",
                "restricted",
                "private"
              ],
              "description": "A basic set of privacy codes for the parent element. These may be stricter than the general access restrictions for the overall metadata. If available codes are insufficient this may also contain any string."
            }
          }
        }
      ]
    },
    "RepeatUntil": {
      "description": "A member of the ControlConstruct substitution group. Specifies a ControlConstruct to be repeated until a specified condition is met. Before each iteration the condition is tested. When the condition is met, control passes back to the containing control construct.",
      "allOf": [
        {
          "$ref": "#/$defs/ControlConstruct"
        },
        {
          "type": "object",
          "properties": {
            "UntilCondition": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CommandCodeType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Information on the command used to determine whether the \u0022Until\u0022 condition is met."
            },
            "UntilConstructReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Sequence"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A reference to the ControlConstruct to implement until the UntilCondition is met. This could be a single ControlConstruct or a set of ControlConstructs within a Sequence."
            }
          }
        }
      ]
    },
    "RepeatWhile": {
      "description": "A member of the ControlConstruct substitution group. Specifies a ControlConstruct to be repeated while a specified condition is met. Before each iteration the condition is tested. When the condition is not met, control passes back to the containing control construct.",
      "allOf": [
        {
          "$ref": "#/$defs/ControlConstruct"
        },
        {
          "type": "object",
          "properties": {
            "WhileCondition": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CommandCodeType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Information on the command used to determine whether the \u0022While\u0022 condition is met."
            },
            "WhileConstructReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Sequence"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A reference to the ControlConstruct to implement until the WhileCondition is met. This could be a single ControlConstruct or a set of ControlConstructs within a Sequence."
            }
          }
        }
      ]
    },
    "RepresentationMap": {
      "description": "Maps between any two managed representations. In addition to representation types held in a ManagagedRepresentationScheme, managed representations include CategoryScheme and coded representations which include CodeList, GeographicStructureCode or GeographicLocationCode. Note that the source can be any managed representation including a CodeList, GeographicStructure or GeographicLocation. Note that comparisons between two category schemes is best handled by CategoryMap. In addition to the standard name, label, and description of the RepresentationMap, identifies the source representation and target representation (which should be a CodeList, GeographicStructure, or GeographicLocation), describes the correspondence between the source and target, allows for the use of a GenerationInstruction to describe the recoding process, and indicates if this a general mapping or a mapping for a specific purpose.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "RepresentationMapName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the RepresentationMap."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the RepresentationMap."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the RepresentationMap."
            },
            "SourceRepresentation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/SourceRepresentationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Provides a reference to the managed content of a representation which acts as the source object in the Source/Target comparison pair. May be a ManagedRepresentation or a specific CategoryScheme, CodeList, GeographicRepresentation, or GeographicLocation. Allows for the optional reference to a Concept when context is important. For example, a ManagedNumericRepresentation within the context of Age."
            },
            "TargetRepresentation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/TargetRepresentationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Provides a reference to the managed content of a representation which acts as the target object in the Source/Target comparison pair. May be a ManagedRepresentation or a specific CategoryScheme, CodeList, GeographicRepresentation, or GeographicLocation. Supports the ability to limit code coverage as appropriate for the coding structure referenced."
            },
            "Correspondence": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CorrespondenceType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describe the level of similarity and difference between the Source and the Target contents."
            },
            "ProcessingInstructionReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "GeneralInstruction",
                        "GenerationInstruction"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Allows for use of programmatic logic to construct a detailed comparison map between individual codes in the source and target structures by reference. TypeOfObject should be set to GenerationInstruction or GeneralInstruction. This reference allows for specifying ParameterLinkages at point of use."
            },
            "ContextSpecificComparison": {
              "$ref": "#/$defs/boolean",
              "description": "Set to \u0022true\u0022 when a Concept has been identified in the SourceRepresentation."
            }
          }
        }
      ]
    },
    "RepresentedVariable": {
      "description": "Describes a RepresentedVariable contained in the RepresentedVariableScheme. In addition to the standard name, label, and description a RepresentedVariable contains a reference to the Concept and Universe (or ConceptualVariable) as well as the representation of the RepresentedVariable. Representation may be provided in-line or by reference to a managed representation. RepresentedVariables are the core reusable parts of a Variable. RepresentedVariable maps to the GSIM Represented Variable. In addition to the standard name, label, and description",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "RepresentedVariableName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the RepresentedVariable."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the RepresentedVariable."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the RepresentedVariable."
            },
            "ConceptualVariableReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ConceptualVariable"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A reference to a ConceptualVariable which provides the linkage to the Universe and Concept used by this RepresentedVariable. TypeOfObject should be set to ConceptualVariable."
            },
            "UnitTypeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "UnitType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the unit type containing a description of the unit type that this RepresentedVariable refers to, and to which any analytic results refer. TypeOfObject should be set to UnitType."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept measured by this RepresentedVariable. TypeOfObject should be set to Concept."
            },
            "CategorySchemeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "CategoryScheme"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "DEPRECATED. DDI strongly recommends use of the CategorySchemeReference provided by the ConceptualVariable. Reference to a category scheme that contains the representation domain of the RepresentedVariable. Use this element when only the category specifications are provided. If both a code and the related category must be specified use CodeRepresentation (member of the substitution group ValueRepresentation). TypeOfObject should be set to CategoryScheme."
            },
            "ValueRepresentation": {
              "type": "object",
              "oneOf": [
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CategoryDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CategoryDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CategoryRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CategoryRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CodeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CodeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CodeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CodeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/CoordinatePairsType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "CoordinatePairsType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DateTimeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DateTimeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DateTimeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DateTimeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DistributionDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DistributionDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/DistributionRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "DistributionRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/ExternalCategoryRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "ExternalCategoryRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicLocationCodeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicLocationCodeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicLocationCodeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicLocationCodeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicStructureCodeDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicStructureCodeDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/GeographicStructureCodeRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "GeographicStructureCodeRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/LocationDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "LocationDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/LocationRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "LocationRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NominalDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NominalDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NominalRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NominalRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NumericDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NumericDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/NumericRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "NumericRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/RankingDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "RankingDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/RankingRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "RankingRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/ScaleDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "ScaleDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/ScaleRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "ScaleRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/TextDomainType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "TextDomainType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/$defs/TextRepresentationBaseType"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "$type": {
                          "type": "string",
                          "enum": [
                            "TextRepresentationBaseType"
                          ]
                        }
                      },
                      "required": [
                        "$type"
                      ]
                    }
                  ]
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describes the actual representation of the RepresentedVariables\u0027 values. ValueRepresentation is the head of a substitution group which supports a number of representation types, i.e. CodeRepresentation, NumericRepresentation, TextRepresentation, DateTimeRepresentation, ScaleRepresentation, GeographicStructureCodeRepresentation, and GeographicLocationCodeRepresentation. Although the structure allows for specification of missing values these features should be used with caution. Like the definition of the universe and concept, the specification of the representation can be constrained by the Variable (the GSIM ImplementedVariable), for example a NumericRepresentation could be constrained with a lower top coding specification. Missing Values can be assigned separately by the Variable without impact on the ValueRepresentation of the specified valid values provided here."
            },
            "ValueRepresentationReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ManagedCategoryRepresentation",
                        "ManagedCodeRepresentation",
                        "ManagedDateTimeRepresentation",
                        "ManagedDistributionRepresentation",
                        "ManagedExternalCategoryRepresentation",
                        "ManagedGeographicLocationCodeRepresentation",
                        "ManagedGeographicRepresentation",
                        "ManagedGeographicStructureCodeRepresentation",
                        "ManagedLocationRepresentation",
                        "ManagedMissingValuesRepresentation",
                        "ManagedNominalRepresentation",
                        "ManagedNumericRepresentation",
                        "ManagedRankingRepresentation",
                        "ManagedScaleRepresentation",
                        "ManagedTextRepresentation"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Allows for the use of managed value representations by reference. ValueRepresentationReference is the head of a substitution group which supports a number of representation types not managed within existing schemes, i.e. ManagedNumericRepresentation, ManagedTextRepresentation, ManagedDateTimeRepresentation, and ManagedScaleRepresentation. TypeOfObject should be set to ManagedNumericRepresentation, ManagedTextRepresentation, ManagedDateTimeRepresentation, or ManagedScaleRepresentation."
            },
            "MissingValuesReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ManagedMissingValuesRepresentation"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to an existing MissingValuesRepresentation using the Reference structure. If this content conflicts with content provided in the ValueRepresentation regarding Missing Values the content of the MissingValuesRepresentation overrides. TypeOfObject will be MissingValuesRepresentation"
            }
          }
        }
      ]
    },
    "RepresentedVariableGroup": {
      "description": "Contains a group of RepresentedVariables, which may describe an ordered or hierarchical relationship structure. RepresentedVariables may be grouped for a wide range of reasons including conceptual, universe, or population grouping, usage, subject or keyword relationships, or other grouping reason that will assist in the management of a group of RepresentedVariables. Specifies the purpose of the group, a name, label, and description of the group, its relationship to a specific universe, population, or concept, and lists the members of the group.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfRepresentedVariableGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a RepresentedVariableGroup. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "RepresentedVariableGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the RepresentedVariableGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the RepresentedVariableGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the RepresentedVariableGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain. TypeOfObject should be set to Universe."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this RepresentedVariableGroup pertain. TypeOfObject should be set to Population."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group. TypeOfObject should be set to Concept."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "RepresentedVariableReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RepresentedVariable"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent RepresentedVariable (from the substitution group). TypeOfObject should be set to RepresentedVariable."
            },
            "RepresentedVariableGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RepresentedVariableGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent RepresentedVariableGroup. This allows for nesting of RepresentedVariableGroups. TypeOfObject should be set to RepresentedVariableGroup."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "RepresentedVariableScheme": {
      "description": "A set of RepresentedVariables managed by an agency. RepresentedVariables are the core reusable parts of a Variable. RepresentedVariable maps to the GSIM Represented Variable. In addition to the standard name, label, and description, allows for the inclusion of an existing RepresentedVariableScheme by reference and RepresentedVariables either in-line or by reference. RepresentedVariables may be grouped for management purposes.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "RepresentedVariableSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the RepresentedVariableScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the RepresentedVariableScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the RepresentedVariableScheme."
            },
            "RepresentedVariableSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RepresentedVariableScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Inclusion of an existing RepresentedVariableScheme by reference. TypeOfObject should be set to RepresentedVariableScheme"
            },
            "RepresentedVariableReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RepresentedVariable"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a RepresentedVariable contained in the RepresentedVariableScheme. A RepresentedVariable contains a reference to the Concept and Universe (or ConceptualVariable) as well as the representation of the RepresentedVariable. Representation may be provided in-line or by reference to a managed representation. RepresentedVariables are the core reusable parts of a Variable. RepresentedVariable maps to the GSIM Represented Variable."
            },
            "RepresentedVariableGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RepresentedVariableGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line description of a group of RepresentedVariables. RepresentedVariables may be grouped for a wide range of reasons including conceptual or universe grouping, usage, subject or keyword relationships, or other grouping reason that will assist in the management of a group of RepresentedVariables."
            }
          }
        }
      ]
    },
    "ResourcePackage": {
      "description": "The Resource Package is a specialized structure which is intended to hold reusable metadata outside of the structures of a single StudyUnit or Group. For example this may be common methodological approaches bound in a DataCollection module, DataRelationship information bound in a LogicalProduct, or any maintainable scheme. The ResourcePackage is often used to manage and publish metadata that is used by StudyUnits or Groups by reference. Any maintainable object with the exception of a Group, StudyUnit or LocalHoldingPackage may be published in a Resource Package. Each maintainable object may be entered as either an in-line representation or by reference. Within each maintainable type the ordering of in-line or referenced content may be mixed. In addition the ResourcePackage contains self identifying information including: a citation, abstract, authorization source, a universe reference, series statement, references to applicable quality statements, funding and budget information, purpose, coverage, other material, embargo, and the resource package archive (as opposed to an Archive module intended as the part of the published reusable content).",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "Citation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CitationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The citation for the ResourcePackage. DDI strongly recommends that at minimum a Title be provided."
            },
            "TypeOfResourcePackage": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A brief description of the resource package type. Supports the use of a controlled vocabulary."
            },
            "Abstract": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "An abstract of the ResourcePackage unit describing the nature and scope of the data collection, special characteristics of its content. Note that detailed information on the purpose of the ResourcePackage and structured coverage information are to be entered in Purpose and Coverage."
            },
            "AuthorizationSource": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/AuthorizationSourceType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Identifies the authorizing agency for the ResourcePackage and allows for the full text of the authorization (law, regulation, or other form of authorization). May be used to list authorizations from oversight committees and other regulatory agencies."
            },
            "ApprovalReviewReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ApprovalReview"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Provides information about the Approval Review undertaken in relation to the activity. Identifies the organization processing the review, the role of the approval review organization, case number, description, and related dates. Allows the inclusion of a reference to an external source detailing the approval review."
            },
            "DefiningConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A concept that defines or aids in understanding the content of the resource package."
            },
            "UniverseReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Universe"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to a Universe describing the persons or other units to which the contents of this ResourcePackage and any analytic results refer. A Universe is defined by a Unit Type and shared characteristics, independently of geographic area and time period. Examples include persons of a specified gender, businesses with at least 50 employees, or businesses in the manufacturing industry. The description should make it possible to determine whether a given unit belongs to the Universe. A Universe may be described using inclusion or exclusion criteria. Use Population to specify geographic and temporal scope. This ResourcePackage level reference is normally to the top level of the UniverseScheme."
            },
            "PopulationReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Population"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the population describing the persons or other elements to which the contents of this ResourcePackage and any analytic results refer."
            },
            "SeriesStatement": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/SeriesStatementType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A ResourcePackage, particularly one in a series, may be the result of two series merging into a single ResourcePackage. The new ResourcePackage belongs to both series. For example, Niger now fields the UNICEF Multiple Indicators Cluster Survey (MICS) and the Demographic and Health Survey as a single merged instrument."
            },
            "InformationClassificationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "InformationClassification"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Used to describe the rules and guidelines on how the data is allowed to be handled, transferred, stored and disposed. These confidentiality policies are often dictated by national laws and/or data owners on handling of personal, proprietary, and other sensitive information."
            },
            "QualityStatementReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityStatement"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to a QualityScheme containing statements of quality related to the quality of the ResourcePackage methodology, metadata, or data. Quality statements may be related to external quality standards."
            },
            "FundingInformation": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/FundingInformationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Contains details of the ResourcePackage unit\u0027s funding, including information about grants, agencies, etc."
            },
            "ProjectBudget": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/BudgetType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "This describes the overall budget of the ResourcePackage. It can be repeated for distinct budget activities. It contains a structured description and one or more budget documents described by an OtherMaterial type."
            },
            "Purpose": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "The purpose of the ResourcePackage, why the ResourcePackage took place. This should include detailed information on the investigator\u0027s primary ResourcePackage questions or hypotheses as well as information on any legal basis for the data collection, such as laws requiring the collection of census data for apportionment purposes. Legal or other authorization should be provided in detail within AuthorizationSource."
            },
            "Coverage": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CoverageType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describes the coverage of the ResourcePackage unit. Detailed information on Topical, Temporal, and Spatial Coverage is contained here. Note that Coverage at this level should be inclusive all lower level modules or section. Lower level descriptions serve to constrain coverage within the scope described here."
            },
            "Embargo": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/EmbargoType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Embargo information about the ResourcePackage unit. References to embargo information in this section can be made from individual variables."
            },
            "OtherMaterialSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "OtherMaterialScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "This scheme contains a set of other materials referenced by the metadata."
            },
            "ResourcePackageArchive": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ResourcePackageArchiveType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "This is archive information specific to the creation, maintenance, and archiving of the ResourcePackage provided either in-line or by reference. This packaging element differentiates this \u0022Archive\u0022 from one being published as a product within a ResourcePackage."
            },
            "ConceptualComponentReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ConceptualComponent"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for in-line entry of an ConceptualComponent."
            },
            "DataCollectionReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DataCollection"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for in-line entry of an DataCollection."
            },
            "LogicalProductReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "LogicalProduct"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for in-line entry of any LogicalProduct. l:BaseLogicalProduct is a substitution group base."
            },
            "PhysicalDataProductReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PhysicalDataProduct"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for in-line entry of an PhysicalDataProduct."
            },
            "PhysicalInstanceReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PhysicalInstance"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for in-line entry of an PhysicalInstance."
            },
            "PhysicalInstanceGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PhysicalInstanceGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows physical instance modules to be grouped with or without hierarchical structure."
            },
            "ArchiveReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Archive"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for in-line entry of an Archive."
            },
            "DDIProfileReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DDIProfile"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for in-line entry of an DDIProfile."
            },
            "ComparisonReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Comparison"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for in-line entry of an Comparison."
            },
            "ClassificationFamilyReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ClassificationFamily"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for in-line entry of a Classification Family."
            },
            "ClassificationCorrespondenceTableReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ClassificationCorrespondenceTable"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for in-line entry of a Classification Correspondence Table."
            },
            "OrganizationSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "OrganizationScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a OrganizationScheme."
            },
            "ConceptSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ConceptScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a ConceptScheme."
            },
            "UniverseSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "UniverseScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a UniverseScheme."
            },
            "PopulationSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PopulationScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a PopulationScheme."
            },
            "ConceptualVariableSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ConceptualVariableScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a ConceptualVariableScheme."
            },
            "RepresentedVariableSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RepresentedVariableScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a RepresentedVariableScheme."
            },
            "GeographicStructureSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicStructureScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a GeographicStructureScheme."
            },
            "GeographicLocationSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "GeographicLocationScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a GeographicLocationScheme."
            },
            "InterviewerInstructionSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "InterviewerInstructionScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a InterviewerInstructionScheme."
            },
            "ControlConstructSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ControlConstructScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a ControlConstructScheme."
            },
            "QuestionSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QuestionScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a QuestionScheme."
            },
            "MeasurementSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "MeasurementScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a MeasurementScheme."
            },
            "CategorySchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CategoryScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a CategoryScheme."
            },
            "CodeListSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "CodeListScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a CodeListScheme."
            },
            "NCubeSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "NCubeScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a NCubeScheme."
            },
            "VariableSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "VariableScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a VariableScheme."
            },
            "PhysicalStructureSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PhysicalStructureScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a PhysicalStructureScheme."
            },
            "RecordLayoutSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "RecordLayoutScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a RecordLayoutScheme."
            },
            "QualitySchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a QualityScheme."
            },
            "InstrumentSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "InstrumentScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a InstrumentScheme."
            },
            "ProcessingEventSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ProcessingEventScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a ProcessingEventScheme."
            },
            "ProcessingInstructionSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ProcessingInstructionScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a ProcessingInstructionScheme."
            },
            "ManagedRepresentationSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ManagedRepresentationScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a ManagedRepresentationScheme."
            },
            "UnitTypeSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "UnitTypeScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line inclusion of a UnitTypeScheme."
            },
            "SamplingInformationSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "SamplingInformationScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A set of sample frames maintained by an agency, and used in the instrument."
            },
            "DevelopmentActivitySchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DevelopmentActivityScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A set of development activities maintained by an agency, and used in the development, review, or creation of a question, measurement, data capture flow (control construct), or instrument."
            }
          }
        }
      ]
    },
    "Sample": {
      "description": "Describes a sample created by the implementation of a sample plan.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfSample": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic means of classifying a SamplingProcedure. Supports the use of an external controlled vocabulary."
            },
            "SampleName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the sample."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the sample."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Full description of the sample. Supports structured content and multiple language content."
            },
            "PopulationOfConcern": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/PopulationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describe the population being sampled through a combination of textual description and reference to a structured Universe."
            },
            "OverallTargetSampleSize": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/PopulationSizeType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "The target value of the sample size for the primary and any secondary or sub-population."
            },
            "OverallSampleSize": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/SizeType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The size of the overall sample actually used."
            },
            "ApplicationDetails": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ApplicationDetailsType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides sample stage level details where needed. Repeat for individual stages or sub-stages."
            },
            "DateOfSample": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DateType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Date the sample was taken. May be expressed as a single date or range. If the sample was created using multiple extractions at different dates, repeat for each date."
            },
            "SampleLocationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "OtherMaterial"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Description of general limitations of the frame, including  over/under-coverage and update schedules and procedures."
            },
            "SamplingPlanImplementedReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "SamplingPlan"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to the SamplingPlan implemented to creating the sample. Target object should be SamplingPlan"
            },
            "SampleFrameUsedReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "SampleFrame"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to the SampleFrame used for creating the sample. Target object should be SampleFrame"
            },
            "ComponentSampleReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Sample"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to a previously created sample that was used as a component of the current sample. Target object should be Sample."
            }
          }
        }
      ]
    },
    "SampleFrame": {
      "description": "An inline description of a sample frame (the source material from which a sample is drawn), i.e. phone book, data base, etc. A sample frame is intended to be versioned over time and can be reused by multiple studies.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "SampleFrameName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for a sample frame which may be repeated to express differing names for different systems."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A full display label for the sample frame."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Full description of the sample frame."
            },
            "ValidPeriod": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DateType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Period for which the current version is valid."
            },
            "CustodianReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Individual",
                        "Organization"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Organization or individual holding the rights to the frame"
            },
            "SampleFrameAccess": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/AccessType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Provides full description of access, forms for access, contact, etc."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to the Universe of this sample frame"
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to the Population of this sample frame."
            },
            "UnitsOfFrame": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/PopulationSizeType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A sample frame may identify multiple units. One unit should be identified as the primary unit. Additional units are listed as secondary."
            },
            "FrameLimitations": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Description of general limitations of the frame, including  over/under-coverage and update schedules and procedures."
            },
            "AuxiliaryInformation": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Description of information within the frame that could support stratification, including listing of available fields."
            },
            "ReferencePeriod": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/DateType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The date/period of reference for this frame"
            },
            "UpdateProcedure": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Describes how this frame gets updated."
            },
            "SourceFrameReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "SampleFrame"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to a frame that this frame was derived from."
            }
          }
        }
      ]
    },
    "SampleStep": {
      "description": "A ControlConstruct that provides a specialized act for generating a sample.",
      "allOf": [
        {
          "$ref": "#/$defs/ControlConstruct"
        },
        {
          "type": "object",
          "properties": {
            "ConditionForAcceptance": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A distinct \u0022strata\u0022 within a population used to define a group to be sampled within that population, for example an Income Level or Postal Code."
            },
            "CommandCode": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CommandCodeType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The Code which contains the value of the variable in programming terms."
            },
            "Stratification": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/StratificationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A distinct \u0022strata\u0022 within a population used to define a group to be sampled within that population, for example an Income Level or Postal Code."
            }
          }
        }
      ]
    },
    "SamplingInformationGroup": {
      "description": "A grouping of Sampling Information objects for organizational and management purposes. Contains a group of sampling information objects and/or sampling information groups, which may be hierarchical.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfSamplingInformationGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a sampling information group. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "SamplingInformationGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the sampling information group."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the sampling information group."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Additional textual description of the sampling information group."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other elements that the sampling information objects refer to, and to which any analytic results refer."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other elements that the sampling information objects refer to, and to which any analytic results refer."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept measured by the sampling information objects in this group."
            },
            "SampleFrameReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "SampleFrame"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A sample frame item included in the scheme by reference."
            },
            "SamplingPlanReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "SamplingPlan"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A sampling plan item included in the scheme by reference."
            },
            "SampleReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Sample"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A sample included in the scheme by reference."
            },
            "SamplingInformationGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "SamplingInformationGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Inclusion of a SamplingInformationGroup by reference."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "Indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "SamplingInformationScheme": {
      "description": "A set of sampling information maintained by an agency including sampling plans, sample frames, and samples.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "SamplingInformationSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the sampling information scheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the sampling information scheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the use of the sampling information scheme."
            },
            "SamplingInformationSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "SamplingInformationScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Provides for inclusion by reference of external sampling information schemes."
            },
            "SampleFrameReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "SampleFrame"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "An item (that is, a sample frame) belonging to the sampling information Scheme."
            },
            "SamplingPlanReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "SamplingPlan"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "An item (that is, a sampling plan) belonging to the sampling information Scheme."
            },
            "SampleReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Sample"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "An item (that is, a sample) belonging to the sampling information Scheme."
            },
            "SamplingInformationGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "SamplingInformationGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "An item (that is, a sampling information group) belonging to the sampling information Scheme."
            }
          }
        }
      ]
    },
    "SamplingPlan": {
      "description": "An inline description of a sampling plan (how the sample is drawn). A sampling plan is intended to be versioned over time and can be reused by multiple studies.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfSamplingPlan": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A controlled vocabulary covering probability and non-probability sampling methods and modeling approaches. If this is a multi-stage sample the plan at this level should indicate the broadest description of the sampling approaches used in each stage."
            },
            "SamplingPlanName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for a sampling plan which may be repeated to express differing names for different systems."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A full display label for the sampling plan."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Full description of the sampling plan."
            },
            "IntendedTargetPopulation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/PopulationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A description of the population that the survey is intended to question (i.e. \u0022Likely voters\u0022)."
            },
            "IntendedSurveyPopulation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/PopulationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The survey population is the set of elements identified by the frame.  For instance, pre-election polls have \u0022likely voters\u0022 as a target population, but the survey is conducted using RDD (usually).  The survey population is households with active land-line telephones, because that\u0027s who we can initially identify.  Survey questions help narrow the respondents into the desired set, but then eliminating sampled units increases variance.  It is reusable in the sense that the same survey population will be used each time the named frame is used."
            },
            "SplitRationale": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Rationale for dividing the frame at this stage into subsets and using a different sampling technique (e.g., Simple Random Sampling or Probability Proportional to Size) on each subset."
            },
            "ControlConstructReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ComputationItem",
                        "DevelopmentStep",
                        "IfThenElse",
                        "Loop",
                        "MeasurementConstruct",
                        "QuestionConstruct",
                        "RepeatUntil",
                        "RepeatWhile",
                        "SampleStep",
                        "SamplingStage",
                        "Sequence",
                        "Split",
                        "SplitJoin",
                        "StatementItem"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Generally reference to a single SamplingStage or to a Sequence which orders multiple SamplingStages. TypeOfObject should be any valid member of the group of Control Constructs."
            },
            "StratificationRationale": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/StratificationRationaleType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describe the purpose for stratifying the sampling process."
            }
          }
        }
      ]
    },
    "SamplingStage": {
      "description": "A ControlConstruct that provides a sequence order within Sampling Stages expressed as control constructs.",
      "allOf": [
        {
          "$ref": "#/$defs/ControlConstruct"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfSequence": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides the ability to \u0022type\u0022 a sequence for classification or processing purposes. Supports the use of an external controlled vocabulary."
            },
            "ControlConstructReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ComputationItem",
                          "DevelopmentStep",
                          "IfThenElse",
                          "Loop",
                          "MeasurementConstruct",
                          "QuestionConstruct",
                          "RepeatUntil",
                          "RepeatWhile",
                          "SampleStep",
                          "SamplingStage",
                          "Sequence",
                          "Split",
                          "SplitJoin",
                          "StatementItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "References control constructs in the order that they should appear within the instrument."
            },
            "ConstructSequence": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/SpecificSequenceType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describes alternate ordering for different cases using the SpecificSequence structure. If you set the sequence to anything other than order of appearance the only allowable children are QuestionConstruct or Sequence. Contents must be randomizable."
            },
            "FrameRequirements": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Describes the minimum requirements of the frame needed to use this sample stage. For example, if a stratification by age is specified in the stage the sample frame would need to support this stratification."
            },
            "RecommendedSampleFrameReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "SampleFrame"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Identifies a specific sample frame or frames appropriate for this plan."
            },
            "Stratification": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/StratificationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A distinct \u0022strata\u0022 within a population used to define a group to be sampled within that population, for example an Income Level or Postal Code."
            },
            "SamplingUnitReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "UnitType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Sampling unit for this stage"
            },
            "SelectionProbability": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "If known and available, provide the selection probability for each sampling unit.  This is one number for equal probability sampling, such as SRS.  For PPS, a description of the size criterion is needed.  For other unequal designs, a description of of how the probabilities are assigned is needed."
            }
          }
        }
      ]
    },
    "Sequence": {
      "description": "A member of the ControlConstruct substitution group. Provides a sequence order for operations expressed as control constructs. The sequence can be typed to support local processing or classification flags and alternate sequencing instructions (such as randomize for each respondent).",
      "allOf": [
        {
          "$ref": "#/$defs/ControlConstruct"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfSequence": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides the ability to \u0022type\u0022 a sequence for classification or processing purposes. Supports the use of an external controlled vocabulary."
            },
            "ControlConstructReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ComputationItem",
                          "DevelopmentStep",
                          "IfThenElse",
                          "Loop",
                          "MeasurementConstruct",
                          "QuestionConstruct",
                          "RepeatUntil",
                          "RepeatWhile",
                          "SampleStep",
                          "SamplingStage",
                          "Sequence",
                          "Split",
                          "SplitJoin",
                          "StatementItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "References control constructs in the order that they should appear within the instrument."
            },
            "ConstructSequence": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/SpecificSequenceType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describes alternate ordering for different cases using the SpecificSequence structure. If you set the sequence to anything other than order of appearance the only allowable children are QuestionConstruct or Sequence. Contents must be randomizable."
            }
          }
        }
      ]
    },
    "Split": {
      "description": "A member of the ControlConstruct substitution group. The components of a Split consists of a number of process steps to be executed concurrently with partial synchronization. Split completes as soon as all of its component process steps have been scheduled for execution.",
      "allOf": [
        {
          "$ref": "#/$defs/ControlConstruct"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfSequence": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides the ability to \u0022type\u0022 a spit for classification or processing purposes. Supports the use of an external controlled vocabulary."
            },
            "ControlConstructReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ComputationItem",
                          "DevelopmentStep",
                          "IfThenElse",
                          "Loop",
                          "MeasurementConstruct",
                          "QuestionConstruct",
                          "RepeatUntil",
                          "RepeatWhile",
                          "SampleStep",
                          "SamplingStage",
                          "Sequence",
                          "Split",
                          "SplitJoin",
                          "StatementItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "References control constructs that can be executed concurrently."
            }
          }
        }
      ]
    },
    "SplitJoin": {
      "description": "A member of the ControlConstruct substitution group. The components of a SplitJoin consists of a number of process steps to be executed concurrently with partial synchronization. SplitJoin consists of process steps that are executed concurrently (execution with barrier synchronization). That is, SplitJoin completes when all of its components processes have completed. Supports parallel processing that requires completion of all included process steps to exit.",
      "allOf": [
        {
          "$ref": "#/$defs/ControlConstruct"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfSequence": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Provides the ability to \u0022type\u0022 a split for classification or processing purposes. Supports the use of an external controlled vocabulary."
            },
            "ControlConstructReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ComputationItem",
                          "DevelopmentStep",
                          "IfThenElse",
                          "Loop",
                          "MeasurementConstruct",
                          "QuestionConstruct",
                          "RepeatUntil",
                          "RepeatWhile",
                          "SampleStep",
                          "SamplingStage",
                          "Sequence",
                          "Split",
                          "SplitJoin",
                          "StatementItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "References control constructs that can be executed concurrently."
            }
          }
        }
      ]
    },
    "StatementItem": {
      "description": "A textual statement used in the Instrument. A substitution for ControlConstruct. In addition to the objects found in ControlConstruct StatementItem adds the text for display at the specified point within the instrument.",
      "allOf": [
        {
          "$ref": "#/$defs/ControlConstruct"
        },
        {
          "type": "object",
          "properties": {
            "DisplayText": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DynamicTextType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Text to be displayed by the instrument. Supports the use of DynamicText. Note that when using Dynamic Text, the full DisplayText must be repeated for multi-language versions of the content. Different languages may handle the dynamic portions in different locations and/or with different content. Therefore languages cannot be mixed within a dynamic text except when the full text itself has multiple language sections, for example, a foreign language term in a text. The DisplayText may also be repeated to provide a dynamic and plain text version of the display. This allows for accurate rendering of the display in a non-dynamic environment like print."
            }
          }
        }
      ]
    },
    "StatisticalClassification": {
      "description": "A Statistical Classification is a set of categories which may be assigned to one or more variables registered in statistical surveys or administrative files, and used in the production and dissemination of statistics. The categories at each level of the classification structure must be mutually exclusive and jointly exhaustive of all objects/units in the population of interest. The categories are defined with reference to one or more characteristics of a particular population of units of observation. A Statistical Classification may have a flat, linear structure or may be hierarchically structured, such that all categories at lower Levels are sub-categories of categories at the next Level up. Categories in Statistical Classifications are represented in the information model as Classification Items. ",
      "allOf": [
        {
          "$ref": "#/$defs/Describable"
        },
        {
          "type": "object",
          "properties": {
            "ReleaseDate": {
              "$ref": "#/$defs/cogsDate",
              "description": "Date on which the Statistical Classification was released."
            },
            "TerminationDate": {
              "$ref": "#/$defs/cogsDate",
              "description": "Date on which the Statistical Classification was superseded by a successor version or otherwise ceased to be valid."
            },
            "IsCurrent": {
              "$ref": "#/$defs/boolean",
              "description": "Indicates whether or not the Statistical Classification is currently valid."
            },
            "MaintenanceUnitReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Individual",
                          "Organization"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "The unit or group of persons within the organization  who are responsible for the Statistical Classification (i.e, for maintaining, updating and changing it). TypeOfObject should be set to Organization or Individual."
            },
            "ContactPersonReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Individual",
                          "Organization"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Person(s) who may be contacted for additional information about the Statistical Classification. TypeOfObject should be set to Organization or Individual."
            },
            "LegalBase": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Indicates that the Statistical Classification is covered by a legal act or by some other formal agreement."
            },
            "Publication": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/PublicationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A list of the publications, including print, PDF, HTML and other electronic formats, in which the Statistical Classification has been published."
            },
            "Copyright": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Statistical Classifications may have restricted copyrights. Such Statistical Classifications might be excluded from downloading. Notes the copyright statement that should be displayed in official publications to indicate the copyright owner."
            },
            "IsDisseminationAllowed": {
              "$ref": "#/$defs/boolean",
              "description": "Indicates whether or not the Statistical Classification may be published or otherwise disseminated (e.g. electronic dissemination)."
            },
            "LevelContext": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/LevelContextType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Level Context provides the depth of a Level within a Statistical Classification together with its membership. Both depth and membership can be specified per Statistical Classification."
            },
            "ClassificationIndexReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ClassificationIndex"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A Statistical Classification can be associated with one or a number of Classification Indexes in which Classification Index Entries are linked to the appropriate Classification Item. Include here links to any relevant Classification Indexes. Allows for in-line entry of a Classification Indexes."
            },
            "IsVersion": {
              "$ref": "#/$defs/boolean",
              "description": "Indicates if the Statistical Classification is a version."
            },
            "IsUpdate": {
              "$ref": "#/$defs/boolean",
              "description": "Indicates if the Statistical Classification is an update."
            },
            "IsFloating": {
              "$ref": "#/$defs/boolean",
              "description": "Indicates if the Statistical Classification is a floating classification. In a floating statistical classification, a validity period should be defined for all Classification Items which will allow the display of the item structure and content at different points of time."
            },
            "PredecessorReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "StatisticalClassification"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "For those Statistical Classifications that are versions or updates, notes the preceding Statistical Classification of which the actual Statistical Classification is the successor. TypeOfObject should be set to StatisticalClassification."
            },
            "SuccessorReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "StatisticalClassification"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Notes the Statistical Classification that superseded the actual Statistical Classification. TypeOfObject should be set to StatisticalClassification."
            },
            "DerivedFromReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "StatisticalClassification"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A Statistical Classification can be derived from one of the classification versions of another Classification Series. The derived Statistical Classification can either inherit the structure of the classification version from which it is derived, usually adding more detail, or use a large part of its Classification Items, rearranging them in a different structure. Indicates the classification version from which the actual Statistical Classification is derived. TypeOfObject should be set to StatisticalClassification."
            },
            "ChangesFromPreceding": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A summary description of the nature and content of changes from the preceding version or update. Specific changes are recorded in the Classification Item object under the -Changes from previous version and updates- attribute."
            },
            "UpdatesAllowed": {
              "$ref": "#/$defs/boolean",
              "description": "Indicates whether or not updates are allowed within the classification version i.e. without leading to a new version."
            },
            "PermissibleUpdates": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "If Updates are Allowed, Indicate here what structural changes, if any, are permissible within a version. Note whether Classification Items can be added to the structure and whether they can be revalidated or invalidated. Such changes are more likely to be permissible in floating classifications. Also indicate whether changes to such things as Classification Item names and explanatory notes that do not involve structural changes are permissible within a version."
            },
            "Updates": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Summary description of changes which have occurred since the most recent classification version or classification update came into force."
            },
            "VariantOfReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "StatisticalClassification"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "For those Statistical Classifications that are variants, notes the Statistical Classification on which it is based and any subsequent versions of that Statistical Classification to which it is also applicable. TypeOfObject should be set to StatisticalClassification."
            },
            "VariantChangesFromBase": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Describes the relationship between the variant and its base Statistical Classification, including regrouping, aggregations added and extensions."
            },
            "VariantPurpose": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "If the Statistical Classification is a variant, notes the specific purpose for which it was developed."
            }
          }
        }
      ]
    },
    "StudyUnit": {
      "description": "A primary packaging and publication module within DDI representing the purpose, background, development, data capture, and data products related to a study. In DDI a study is defined as a single coordinated set of data collection/capture activities, such as a one-time survey or a single iteration of a multi-year repeated study (such as one year of a longitudinal survey). The StudyUnit brings together all of the components of the study including the description of its purpose, funding, quality statements, data collection and capture methods and activities, processing activities, and a description of the resulting data (description of its intellectual or logical content plus a description of its physical store). A study unit may have only a single data collection or capture process resulting in one or more data products (i.e., Census). A complex study unit may contain multiple means of data capture that are integrated into one or more data products (i.e., a medical study collecting bio-markers, patient background, health care service information, etc.). A longitudinal study with multiple waves or iterations of data collection is considered to be a group of studies, each wave or iteration captured as a single study unit. As a primary packaging module, the Study Unit contains a full citation, abstract, authorization information, a universe reference, series statement, quality statement, information on post study evaluation, funding information, budget, purpose, coverage, type of analysis units covered, kind of data, other materials, a list of required resource packages, embargoes,  the conceptual components (universe, concept, data element, geographic structure and locations), data collection, logical products, physical data products, physical instance, archive, and DDI profile. The maintainable elements within a Study Unit may be included in-line or by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfStudyUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A brief textual identification of the StudyUnit. Supports the use of an external controlled vocabulary."
            },
            "Citation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CitationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The citation for the study. DDI strongly recommends that at minimum a Title be provided."
            },
            "Abstract": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "An abstract of the study unit describing the nature and scope of the data collection, special characteristics of its content. Note that detailed information on the purpose of the study and structured coverage information are to be entered in Purpose and Coverage. Abstract"
            },
            "AuthorizationSource": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/AuthorizationSourceType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Identifies the authorizing agency for the study and allows for the full text of the authorization (law, regulation, or other form of authorization). May be used to list authorizations from oversight committees and other regulatory agencies."
            },
            "ApprovalReviewReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ApprovalReview"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Provides information about the Approval Review undertaken in relation to the activity. Identifies the organization processing the review, the role of the approval review organization, case number, description, and related dates. Allows the inclusion of a reference to an external source detailing the approval review."
            },
            "DefiningConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A concept that defines or aids in understanding the content of the study unit."
            },
            "UniverseReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Universe"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to a Universe describing the persons or other units to which this study and any analytic results refer. A Universe is defined by a Unit Type and shared characteristics, independently of geographic area and time period. Examples include persons of a specified gender, businesses with at least 50 employees, or businesses in the manufacturing industry. The description should make it possible to determine whether a given unit belongs to the Universe. A Universe may be described using inclusion or exclusion criteria. Use Population to specify geographic and temporal scope. This StudyUnit level reference is normally to the top level of the UniverseScheme."
            },
            "PopulationReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Population"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the population describing the persons or other elements that are the object of this study and to which any analytic results refer."
            },
            "SeriesStatement": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/SeriesStatementType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A study, particularly one in a series, may be the result of two series merging into a single study. The new study belongs to both series. For example, Niger now fields the UNICEF Multiple Indicators Cluster Survey (MICS) and the Demographic and Health Survey as a single merged instrument."
            },
            "InformationClassificationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "InformationClassification"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Used to describe the rules and guidelines on how the data is allowed to be handled, transferred, stored and disposed. These confidentiality policies are often dictated by national laws and/or data owners on handling of personal, proprietary, and other sensitive information."
            },
            "QualityStatementReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityStatement"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to a Quality Statement pertaining to the quality of the study overall, metadata, or data to which it is associated. Quality statements may be related to external quality standards."
            },
            "QualitySchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QualityScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A scheme containing statements of quality related to the quality of methodologies, metadata, or data. Quality statements and standards may be related to external quality standards."
            },
            "ExPostEvaluation": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/ExPostEvaluationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "An evaluation of the study process, often taking place after the completion of the study. These may include issues such as timing of the study, sequencing issues, cost/budget issues, relevance, institutional or legal arrangements etc. of the study. If the study is part of a series or group (i.e., a single wave in a longitudinal study) this may include evaluation of earlier waves which resulted in changes to the current wave."
            },
            "FundingInformation": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/FundingInformationType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Contains details of the study unit\u0027s funding, including information about grants, agencies, etc."
            },
            "StudyBudget": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/BudgetType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "This describes the overall budget of the study. It can be repeated for distinct budget activities. It contains a structured description and one or more budget documents described by an OtherMaterial type."
            },
            "Purpose": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "The purpose of the study, why the study took place. This should include detailed information on the investigator\u0027s primary study questions or hypotheses as well as information on any legal basis for the data collection, such as laws requiring the collection of census data for apportionment purposes. Legal or other authorization should be provided in detail within AuthorizationSource."
            },
            "Coverage": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CoverageType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describes the coverage of the study unit. Detailed information on Topical, Temporal, and Spatial Coverage is contained here. Note that Coverage at this level should be inclusive all lower level modules or section. Lower level descriptions serve to constrain coverage within the scope described here."
            },
            "AnalysisUnit": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Allows the use of a controlled vocabulary to list all of the units of analysis used in the study. Should be repeated to describe multiple units of analysis. The DDI Alliance has provided a controlled vocabulary (AnalysisUnit) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "AnalysisUnitsCovered": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A narrative of the units of analysis in the study unit."
            },
            "KindOfData": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/KindOfDataType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Briefly describes the kind of data documented in a study unit. Examples include survey data, census/enumeration data, administrative data, measurement data, assessment data, demographic data, voting data, etc. Supports the use of an external controlled vocabulary."
            },
            "GeneralDataFormat": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Briefly describes the data formats documented in the logical product(s) of a study unit. Examples include Numeric, Text, Audio, Visual, Geospatial, StillImage, Software, 3D, etc. Supports the use of an external controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (GeneralDataFormat) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "RequiredResourcePackages": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/RequiredResourcePackagesType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Specifies by reference the ResourcePackages required to resolve the Study. This list is informational and assists in creating full transmissions of metadata or creating archival packages. Primarily used after the instance is relatively stable and published."
            },
            "Embargo": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/EmbargoType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Embargo information about the study unit. References to embargo information in this section can be made from individual variables."
            },
            "OtherMaterialSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "OtherMaterialScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "This scheme contains a set of other materials referenced by the metadata."
            },
            "ConceptualComponentReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ConceptualComponent"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Documents the content and relational structure of the concepts, universes, data elements, geographic structures and geographic locations used by the study unit."
            },
            "DataCollectionReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DataCollection"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Documents the content of the Data Collection activities used in this study; development of data collection processes, questions, question flows (control constructs), data collection instrument, instructions, processing events and instructions, methodology, etc."
            },
            "LogicalProductReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "LogicalProduct"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Documents the logical (intellectual) content of the data produced by the study unit. Note that l:BaseLogicalProduct is the head of a substitution group and is replaced by the appropriate member of that substitution group."
            },
            "PhysicalDataProductReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PhysicalDataProduct"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Documents the physical structure of the data produced by the study unit."
            },
            "PhysicalInstanceReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PhysicalInstance"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Documents the link to a specific external data file produced by the study unit. May contain summary and category level statistics on the variables contained in the data file."
            },
            "PhysicalInstanceGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "PhysicalInstanceGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows physical instance modules to be grouped with or without hierarchical structure."
            },
            "ArchiveReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Archive"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Archive serves as a packet containing both persistent and transient information. Describes archive-specific material including item record information as well as lifecycle information. The metadata in the package is divided into elements that are persistent (should remain with the Study Unit through its life-cycle), and transient (pertinent only to the Study Unit as held by that archive)."
            },
            "ClassificationFamilyReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "ClassificationFamily"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for in-line entry of a Classification Family."
            },
            "DDIProfileReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "DDIProfile"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Contains a DDI Profile which is used by the study unit."
            }
          }
        }
      ]
    },
    "SubUniverseClass": {
      "description": "A SubUniverseClass groups Universes using a defining characteristic. For example, a SubUniverseClass defined by number of employees for the parent Universe \u0022Manufacturing businesses\u0022 may contain the Universes \u0022Businesses with fewer than 50 employees\u0022 and \u0022Businesses with at least 50 employees\u0022. Each member is interpreted within the parent Universe, independently of geographic area or time period. In addition to the standard name, label, and description, the SubUniverseClass references a concept which defines it, and references to the universes and or other sub-universe groups it contains. The contents of the SubUniverseClass may be designated as ordered.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "SubUniverseClassName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the SubUniverseClass."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the SubUniverseClass."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the SubUniverseClass."
            },
            "DefiningConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A concept that provides a grouping factor for the Universes contained by the SubUniverseClass. For example, if the parent Universe is \u0022Manufacturing businesses\u0022 and the member Universes are \u0022Businesses with fewer than 50 employees\u0022 and \u0022Businesses with at least 50 employees\u0022, the defining concept is \u0022Number of employees\u0022."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to a Universe contained in this SubUniverseClass. Different parent Universes may reuse the same SubUniverseClass and its member Universes. For example, the Universes \u0022Manufacturing businesses\u0022 and \u0022Retail businesses\u0022 may both reference a SubUniverseClass defined by number of employees, with member Universes \u0022Businesses with fewer than 50 employees\u0022 and \u0022Businesses with at least 50 employees\u0022. The SubUniverseClass always restricts its parent Universe, so the latter member means \u0022Manufacturing businesses with at least 50 employees\u0022 in one case and \u0022Retail businesses with at least 50 employees\u0022 in the other. A question or variable should reference each relevant Universe to identify the intended intersection. Geographic areas and reference periods are specified in Population descriptions."
            },
            "SubUniverseClassReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "SubUniverseClass"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to a SubUniverseClass contained in this SubUniverseClass (a means of nesting hierarchies)."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "TabularNCubeRecordLayout": {
      "description": "A member of the BaseRecordLayout substitution group intended for use with tabular formats of NCube Instances held in an external file with location for data items arranged as two-dimensional rows (identified by row and column). In addition to the link to the PhysicalStructure provided by BaseRecordLayout, the record layout is this namespace (m3) identifies the character set and array base for the stored data, a full description of each data item contained within an NCube Instance including a link to its description (matrix address) and its physical location in the file.",
      "allOf": [
        {
          "$ref": "#/$defs/BaseRecordLayout"
        },
        {
          "type": "object",
          "properties": {
            "CharacterSet": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Character set used in the data file (e.g., US ASCII, EBCDIC, UTF-8). This is a required field. The DDI Alliance has provided a controlled vocabulary (CharacterSet) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "ArrayBase": {
              "$ref": "#/$defs/int",
              "description": "Sets the array base for any arrays used in the definition (that is, whether the first value is in position 0 or 1, etc.). This may be the data array in a delimited data file or the measure array for measures that are bundled and stored in a single location. Array base is generally set to either 0 or 1. There is no override provided as systems processing a record would use a consistent array base."
            },
            "NCubeInstanceTReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "NCubeInstanceT"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A container for defining an instance of an NCube, indicating the matrix address of each cell and where the data for each measure within a cell of the NCube is stored. Allows specifying the values of the attributes attached to a NCube."
            },
            "TopLeftTableAnchor": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/TopLeftTableAnchorType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Notes the column and row position of the top left corner of the data table in the spreadsheet."
            }
          }
        }
      ]
    },
    "TranslationActivity": {
      "description": "A substitution for DevelopmentActivity which describes the specifics of translation, looking at source and target languages, aids available for translation, and translator requirements regarding language ability and method of translation.",
      "allOf": [
        {
          "$ref": "#/$defs/DevelopmentActivity"
        },
        {
          "type": "object",
          "properties": {
            "TranslationMethod": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/TranslationMethodType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes the method of translation required through use of a controlled vocabulary and description. Repeat for multiple methods."
            },
            "TranslationRequirements": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/TranslationRequirementsType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Provides a detailed description of the requirements for an acceptable translation and indicate if the translation should be oral and/or written."
            },
            "TranslationAid": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/TranslationAidType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes available aids for translation typed by a controlled vocabulary and supporting a description and resource identification where appropriate. This may include items such as the availability of an interpreter, key word material, etc."
            },
            "TranslatorRequirements": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/TranslatorRequirementsType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Describes both minimum and preferred language abilities sought for the translation work as a set of source and target language requirements. Details requirements for the translator in terms of language ability for reading, speaking, and writing the source and target languages. Repeat for each language pair sought."
            },
            "TranslationSourceLanguage": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/language"
              },
              "minItems": 0,
              "description": "List the language or language codes. The language original may or may not be provided in this bundle of language specific strings."
            },
            "TranslationTargetLanguage": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/language"
              },
              "minItems": 0,
              "description": "List the language or language codes."
            }
          }
        }
      ]
    },
    "UnitType": {
      "description": "A Unit Type is a class of objects of interest. A Unit Type is used to describe a class or group of Units based on a single characteristic with no specification of time and geography. For example, the Unit Type of \u0022Person\u0022 groups together a set of Units based on the characteristic that they are \u0022Persons\u0022. It concerns not only Unit Types used in dissemination, but anywhere in the statistical process. For example, using administrative data might involve the use of a fiscal unit. \u0022Object class (ISO 11179)\u0022 is a synonym of UnitType. [GSIM 1.2]",
      "allOf": [
        {
          "$ref": "#/$defs/Describable"
        },
        {
          "type": "object",
          "properties": {
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the Concept that defines the UnitType. TypeOfObject should be set to Concept."
            }
          }
        }
      ]
    },
    "UnitTypeGroup": {
      "description": "Contains a group of UnitTypes, which may describe an ordered or hierarchical relationship structure. Specifies the purpose of the group, a name, label, and description of the group, its relationship to a specific universe, population, or concept, and lists the members of the group.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfUnitTypeGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a UnitTypeGroup. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "UnitTypeGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the group."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the UnitTypeGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the UnitTypeGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this UnitTypeGroup pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "UnitTypeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "UnitType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent UnitType. TypeOfObject should be set to UnitType."
            },
            "UnitTypeGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "UnitTypeGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent UnitTypeGroup. This allows for nesting of UnitTypeGroups.  TypeOfObject should be set to UnitTypeGroup."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "UnitTypeScheme": {
      "description": "This scheme contains a set of Unit Types referenced by the metadata at different points in the lifecycle. In addition to the name, label, and description of the scheme, the structure supports the inclusion of another UnitTypeScheme by reference and a set of UnitType descriptions either in-line or by reference.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "UnitTypeSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the scheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the scheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the scheme."
            },
            "UnitTypeSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "UnitTypeScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Inclusion of an existing UnitTypeScheme by reference."
            },
            "UnitTypeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "UnitType"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line description of a UnitType. These are used by reference at various points in the lifecycle."
            },
            "UnitTypeGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "UnitTypeGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "In-line description of a group of UnitTypes."
            }
          }
        }
      ]
    },
    "Universe": {
      "description": "A Universe describes units of a Unit Type that meet shared defining characteristics, independently of time and geography. For example, \u0022women aged 18 or older\u0022 narrows the Unit Type \u0022persons\u0022 without specifying a place or reference period. This follows the Universe level of the [DDI Common Core, version 1](https://doi.org/10.5281/zenodo.17297309) Unit Cascade (p. 5).\r\n\r\nA Universe may be organized into hierarchical sub-universes. Alongside its name, label, and description, it can identify a defining concept, provide generation code describing how it is defined or derived from another Universe, and indicate whether its definition uses inclusion or exclusion criteria.\r\n\r\nFor new descriptions, use Population to add both geographic and temporal scope to a Universe. Universe retains \u0060LocationValueReference\u0060, \u0060GeographyOfUniverse\u0060, and \u0060TimePeriod\u0060 for compatibility with existing metadata, but these properties are deprecated. Record geography in Population\u0027s \u0060GeographyOfPopulation\u0060 and time in \u0060TimePeriodOfPopulation\u0060.\r\n",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "UniverseName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the Universe."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the Universe."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the Universe."
            },
            "DefiningConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "A concept that defines or aids in understanding the content of the universe. For example the Universe \u0022Males\u0022 may link to the concept of \u0022Male\u0022."
            },
            "UnitTypeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "UnitType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to a unit type being associated with this Universe. TypeOfObject should be set to UnitType."
            },
            "TypeOfUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The entity type associated with this Universe. For example, individuals, families or households, groups, institutions/organizations, administrative units, etc. Supports the use of an external controlled vocabulary."
            },
            "LocationValueReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/LocationValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Deprecated - Use Population and GeographyOfPopulation instead. Reference to specific LocationValue for the Universe as described in a GeographicLocation."
            },
            "GeographyOfUniverse": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Deprecated - Use Population and GeographyOfPopulation instead. A description of the content and purpose of the Universe."
            },
            "TimePeriod": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/DateType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Deprecated - Use Population and TimePeriodOfPopulation instead. Reference to specific time period for the Universe. Repeat for non-continuous time periods."
            },
            "UniverseGenerationCode": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/CommandCodeType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "An expression of the Universe in terms of the code used to generate or define it. For example how a given Universe may be differentiated within a parent universe."
            },
            "SubUniverseClassReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "SubUniverseClass"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A Sub-Universe class provides a definition to the Universes contained within it. For example the Sub-Universe Class of Gender for the Universe Resident Population may contain the Universe Males and the Universe Females"
            },
            "IsInclusive": {
              "$ref": "#/$defs/boolean",
              "description": "The default value is \u0022true\u0022. The description of a Universe is generally stated in inclusive terms, such as \u0022All persons at least 18 years old\u0022. If the description instead states which persons are excluded, such as \u0022All persons except those younger than 18 years old\u0022, set the value to \u0022false\u0022."
            }
          }
        }
      ]
    },
    "UniverseGroup": {
      "description": "Contains a group of Universes, which may describe an ordered or hierarchical relationship structure. Specifies the purpose of the group, a name, label, and description of the group, its relationship to a specific universe, population, or concept, and lists the members of the group. Use primarily for organizational and management purposes. If structuring nesting of Universes to represent a hierarchical set of universes use the SubUniverseClass found in Universe.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfUniverseGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A generic element for specifying a reason for a UniverseGroup. Note that this element can contain either a term from a controlled vocabulary list or a textual description."
            },
            "UniverseGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the UniverseGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the UniverseGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the UniverseGroup."
            },
            "GroupingUniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this group pertain. This is not a universe contained by the group but one that helps define the purpose and application of the group."
            },
            "GroupingPopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this UniverseGroup apply. This reference defines the context and application of the group; it does not identify a constituent member."
            },
            "GroupingConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the objects in this group. Note that this is not a formal linking of a concept to a universe such as found in a ConceptualVariable. It is a means of helping to define the context within which this ConceptGroup is relevant."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent Universe (from the substitution group). TypeOfObject should be set to Universe."
            },
            "UniverseGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "UniverseGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent UniverseGroup. This allows for nesting of UniverseGroups. TypeOfObject should be set to UniverseGroup."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "UniverseScheme": {
      "description": "Contains a set of Universe descriptions that may be organized into sub-universe structures. A Universe may also be known as a population. A Universe describes the \u0022object\u0022 of a Data Element Concept or Data Element as defined by ISO/IEC 11179.",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "UniverseSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the UniverseScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the UniverseScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the UniverseScheme."
            },
            "UniverseSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "UniverseScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows the inclusion of a UniverseScheme by reference."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to a Universe, such as businesses in the manufacturing industry. A Universe describes units sharing a Unit Type and defining characteristics, independently of geographic area and time period. A Universe may be organized into hierarchical sub-universe classes."
            },
            "UniverseGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "UniverseGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a group of Universes for organizational and management purposes."
            }
          }
        }
      ]
    },
    "Variable": {
      "description": "Describes the structure of a Variable. This is the applied expression of a data item within a data set and maps to the GSIM ImplementedVariable. In addition to the standard name, label, and description, includes a reference to a source parameter, represented variable, conceptual variable, universe, concept, question, source variable, and embargo information. It identifies the normal source of the data in the variable, the unit of analysis, whether the variable provides temporal or geographic information, or serves as a weight for other variables in the data, and provides a full description of its representation.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "VariableName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the Variable."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the Variable."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the Variable."
            },
            "OutParameter": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Assigns a parameter that contains output from the Variable so that it can be bound to an InParameter of an instruction or act as the SourceParameter of another Variable."
            },
            "SourceParameterReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/ParameterType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Reference to an OutParameter that serves as the source for the content of this variable."
            },
            "SourceVariableReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Variable"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to variable(s) used as a basis for recoding, derivation, or other means of calculating the data for this variable. This reference is intended to provide basic information on the source variable structure including value representation, measurement unit, etc. Note that if a variable is used by reference within multiple VariableSchemes you can identify its role within a specific VariableScheme by including that VariableScheme in the sourceContext attribute of the reference. Use ProcessingInstructionReference to provide additional information on the transformation of the source variable(s) into the data for this variable. If additional processing detail is required use the InParameter, OutParameter, and ParameterLinkage options in the GenerationInstruction and ProcessingInstructionReference."
            },
            "RepresentedVariableReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "RepresentedVariable"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the RepresentedVariable that describes the core of this variable (the RepresentedVariable that the variable is the implementation of). The RepresentedVariable contains the broad reusable specification of the Variable, i.e., concept, universe, and value representation. These may be constrained by specifications within the Variable description. TypeOfObject should be set to RepresentedVariable."
            },
            "ConceptualVariableReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ConceptualVariable"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the ConceptualVariable that describes the core of this variable. The ConceptualVariable provides linked Concept and Universe specifications. These may be constrained by specifications within the Variable description. TypeOfObject should be set to ConceptualVariable."
            },
            "WeightingProcessReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Weighting"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "When isWeight is set to true provide a reference to the Weighting process description used to generate this value. TypeOfObject will be Weighting"
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement containing a description of the persons or other elements that this variable refers to, and to which any analytic results refer. If more than one universe is referenced the universe of the variable is the intersect of the referenced universes."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other elements that this variable and its analytic results refer to. If more than one population is referenced, the population of the variable is the intersection of the referenced populations."
            },
            "ConceptReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Concept"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the concepts measured by this variable."
            },
            "QuestionReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "QuestionBlock",
                          "QuestionGrid",
                          "QuestionItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to question(s) used to collect data for this variable. This references the wording and response domain of the question, not the question flow (if the same question was asked in reference to multiple objects (i.e., Age of each child). Use SourceParameterReference and/or VariableRepresentation/ProcessingInstructionReference to differentiate sources associated with flow patterns or data processing instructions."
            },
            "MeasurementItemReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "MeasurementItem"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to measurement(s) used to collect data for this variable."
            },
            "EmbargoReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/EmbargoType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Reference to any embargoes placed on the contents of this variable. Embargoes may limit access to the data and/or metadata to specific groups and/or for specified periods of time."
            },
            "SourceUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The normal source of the information contained in the variable. In the case of a survey this may be a respondent, proxy, interviewer, or other source. In the case of administrative data the position of a field on a form e.g., \u0022top of page\u0022, \u0022item 3\u0022, \u0022generated by data processor\u0022, etc. Supports the use of an external controlled vocabulary."
            },
            "AnalysisUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The entity to which the data refer, for example, individuals, families or households, groups, institutions/organizations, administrative units, etc. Supports the use of an external controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (AnalysisUnit) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "UnitTypeReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "UnitType"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the unit type containing a description of the unit type that this Variable refers to, and to which any analytic results refer. TypeOfObject should be set to UnitType."
            },
            "VariableRepresentation": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/VariableRepresentationType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Describes the representation of the variable in the data set, including allowed content, data typing, and computation information."
            },
            "IsTemporal": {
              "$ref": "#/$defs/boolean",
              "description": "Set to \u0022true\u0022 if the variable relays time-related information (date, time, season, relative time, etc.)."
            },
            "IsGeographic": {
              "$ref": "#/$defs/boolean",
              "description": "Set to \u0022true\u0022 if the variable relays geographic information, i.e., geographic code, area name, relative location, etc."
            },
            "IsWeight": {
              "$ref": "#/$defs/boolean",
              "description": "Set to \u0022true\u0022 if the variable is used a weight when analyzing data within the data set. If set to true provide a reference to the Applied Usage of the appropriate Processing Event Weight using WeightingAppliedUsage."
            }
          }
        }
      ]
    },
    "VariableGroup": {
      "description": "Contains a group of Variables, which may be ordered or hierarchical. In addition to the name, label, and description of the group, the structure allows for defining the type of group using an optional controlled vocabulary, a reference to a defining universe, population, or concept for the group, a subject classification for the group, and a listing of Variables and VariableGroups in any order.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfVariableGroup": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A brief textual identification of the group type. Supports the use of an external controlled vocabulary."
            },
            "VariableGroupName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the VariableGroup."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the VariableGroup."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the VariableGroup."
            },
            "UniverseReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Universe"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the universe statement describing the persons or other objects to which the contents of this variable group pertain."
            },
            "PopulationReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Population"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to the population statement describing the persons or other objects to which the contents of this variable group pertain."
            },
            "ConceptReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Concept"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the concept expressed by the Variables in this group."
            },
            "Subject": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If subjects are listed for this group, it is strongly recommended that the subjects listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of subject at the group level allows for associating objects as a type of subject based group or to identify subject characteristics of a reusable group of objects."
            },
            "Keyword": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/InternationalCodeValueType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "If keywords are listed for this group, it is strongly recommended that the keywords listed also be found in the TopicalCoverage element for the parent packaging element when this group is included directly or by reference in a module containing a coverage element. Use of keyword at the group level allows for associating objects as a type of keyword based group or to identify keyword characteristics of a reusable group of objects."
            },
            "VariableReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Variable"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent Variable."
            },
            "VariableGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "VariableGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Reference to constituent VariableGroup. This allows for nesting of VariableGroups."
            },
            "IsOrdered": {
              "$ref": "#/$defs/boolean",
              "description": "If set to \u0022true\u0022 indicates that the content of the group is ordered."
            }
          }
        }
      ]
    },
    "VariableScheme": {
      "description": "Contains a set of Variables and VariableGroups. In addition to the standard name, label, and description of the Variable Scheme, may contain another VariableScheme by reference, a listing of Variables (in-line or by reference), and a listing of VariableGroups (in-line or by reference).",
      "allOf": [
        {
          "$ref": "#/$defs/Maintainable"
        },
        {
          "type": "object",
          "properties": {
            "VariableSchemeName": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A name for the VariableScheme."
            },
            "Label": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A display label for the VariableScheme."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "A description of the content and purpose of the VariableScheme."
            },
            "VariableSchemeReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "VariableScheme"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Allows for the inclusion of another VariableScheme by reference."
            },
            "VariableReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Variable"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Describes a Variable in-line. This is the applied expression of a data item within a data set."
            },
            "VariableGroupReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "VariableGroup"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "Contains a group of Variables, which may be ordered or hierarchical."
            }
          }
        }
      ]
    },
    "VariableStatistics": {
      "description": "Contains summary and category level statistics for the referenced variable. Includes information on the total number of responses, the weights in calculating the statistics, variable level summary statistics, and category statistics. The category statistics may be provided as unfiltered values or filtered through a single variable. For example the category statistics for Sex filtered by the variable Country for a multi-national data file. Note that if no weighting factor is identified, all of the statistics provided are unweighted. ",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "VariableReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Variable"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to the variable to which the statistics apply."
            },
            "TotalResponses": {
              "$ref": "#/$defs/nonNegativeInteger",
              "description": "The total number of responses to this variable. This element is especially useful if the number of responses does not match added case counts. It may also be used to sum the frequencies for variable categories."
            },
            "StandardWeightReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/StandardWeightType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Reference to the StandardWeight value provided in Weighting."
            },
            "WeightVariableReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "Variable"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Reference to a variable to use for weight in calculating the statistic."
            },
            "MissingValuesReference": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/Reference"
                },
                {
                  "type": "object",
                  "properties": {
                    "$type": {
                      "type": "string",
                      "enum": [
                        "ManagedMissingValuesRepresentation"
                      ]
                    }
                  },
                  "required": [
                    "$type"
                  ]
                }
              ],
              "description": "Indicates the missing values that were excluded from the statistic by referencing the ManagedMissingValuesRepresentation used by the Variable."
            },
            "SummaryStatistic": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/SummaryStatisticType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A summary statistic for the referenced variable."
            },
            "UnfilteredCategoryStatistics": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/UnfilteredCategoryStatisticsType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "The unfiltered values of any number of statistics by category value representing the full response distribution of the variable."
            },
            "FilteredCategoryStatistics": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/FilteredCategoryStatisticsType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "Includes category-level statistic for the referenced variable using another variable to filter the categories through. For example, the Eurobarometer may filter its category statistics by country as represented in a variable \u0022CountryCode\u0022."
            }
          }
        }
      ]
    },
    "Versionable": {
      "type": "object",
      "properties": {
        "$type": {
          "type": "string",
          "enum": [
            "ApprovalReview",
            "Archive",
            "Category",
            "CategoryGroup",
            "CategoryScheme",
            "ClassificationCorrespondenceTable",
            "ClassificationFamily",
            "ClassificationIndex",
            "ClassificationItem",
            "ClassificationLevel",
            "ClassificationSeries",
            "CodeList",
            "CodeListGroup",
            "CodeListScheme",
            "CognitiveExpertReviewActivity",
            "CognitiveInterviewActivity",
            "Comparison",
            "ComputationItem",
            "Concept",
            "ConceptGroup",
            "ConceptScheme",
            "ConceptualComponent",
            "ConceptualVariable",
            "ConceptualVariableGroup",
            "ConceptualVariableScheme",
            "ContentReviewActivity",
            "ControlConstructGroup",
            "ControlConstructScheme",
            "DDIInstance",
            "DDIProfile",
            "DataCaptureDevelopment",
            "DataCollection",
            "DataRelationship",
            "DataSet",
            "DevelopmentActivityGroup",
            "DevelopmentActivityScheme",
            "DevelopmentImplementation",
            "DevelopmentPlan",
            "DevelopmentResults",
            "DevelopmentStep",
            "FocusGroupActivity",
            "GeneralInstruction",
            "GenerationInstruction",
            "GenericMap",
            "GeographicLocation",
            "GeographicLocationGroup",
            "GeographicLocationScheme",
            "GeographicStructure",
            "GeographicStructureGroup",
            "GeographicStructureScheme",
            "Group",
            "IfThenElse",
            "InLineNCubeRecordLayout",
            "Individual",
            "InformationClassification",
            "Instruction",
            "InstructionGroup",
            "Instrument",
            "InstrumentGroup",
            "InstrumentScheme",
            "InterviewerInstructionScheme",
            "LocalHoldingPackage",
            "LogicalProduct",
            "Loop",
            "ManagedCategoryRepresentation",
            "ManagedCodeRepresentation",
            "ManagedDateTimeRepresentation",
            "ManagedDistributionRepresentation",
            "ManagedExternalCategoryRepresentation",
            "ManagedGeographicLocationCodeRepresentation",
            "ManagedGeographicRepresentation",
            "ManagedGeographicStructureCodeRepresentation",
            "ManagedLocationRepresentation",
            "ManagedMissingValuesRepresentation",
            "ManagedNominalRepresentation",
            "ManagedNumericRepresentation",
            "ManagedRankingRepresentation",
            "ManagedRepresentationGroup",
            "ManagedRepresentationScheme",
            "ManagedScaleRepresentation",
            "ManagedTextRepresentation",
            "MeasurementConstruct",
            "MeasurementGroup",
            "MeasurementItem",
            "MeasurementScheme",
            "Methodology",
            "NCube",
            "NCubeGroup",
            "NCubeInstance",
            "NCubeInstanceI",
            "NCubeInstanceT",
            "NCubeScheme",
            "Organization",
            "OrganizationGroup",
            "OrganizationScheme",
            "OtherMaterial",
            "OtherMaterialGroup",
            "OtherMaterialScheme",
            "PhysicalDataProduct",
            "PhysicalInstance",
            "PhysicalInstanceGroup",
            "PhysicalStructure",
            "PhysicalStructureGroup",
            "PhysicalStructureScheme",
            "Population",
            "PopulationGroup",
            "PopulationScheme",
            "PretestActivity",
            "ProcessingEvent",
            "ProcessingEventGroup",
            "ProcessingEventScheme",
            "ProcessingInstructionGroup",
            "ProcessingInstructionScheme",
            "ProprietaryRecordLayout",
            "QualityScheme",
            "QualityStandard",
            "QualityStandardGroup",
            "QualityStatement",
            "QualityStatementGroup",
            "QuestionBlock",
            "QuestionConstruct",
            "QuestionGrid",
            "QuestionGroup",
            "QuestionItem",
            "QuestionScheme",
            "RecordLayout",
            "RecordLayoutGroup",
            "RecordLayoutScheme",
            "Relation",
            "RepeatUntil",
            "RepeatWhile",
            "RepresentationMap",
            "RepresentedVariable",
            "RepresentedVariableGroup",
            "RepresentedVariableScheme",
            "ResourcePackage",
            "Sample",
            "SampleFrame",
            "SampleStep",
            "SamplingInformationGroup",
            "SamplingInformationScheme",
            "SamplingPlan",
            "SamplingStage",
            "Sequence",
            "Split",
            "SplitJoin",
            "StatementItem",
            "StatisticalClassification",
            "StudyUnit",
            "SubUniverseClass",
            "TabularNCubeRecordLayout",
            "TranslationActivity",
            "UnitType",
            "UnitTypeGroup",
            "UnitTypeScheme",
            "Universe",
            "UniverseGroup",
            "UniverseScheme",
            "Variable",
            "VariableGroup",
            "VariableScheme",
            "VariableStatistics",
            "Weighting",
            "WeightingMethodology"
          ]
        },
        "URN": {
          "$ref": "#/$defs/string",
          "pattern": "[Uu][Rr][Nn]:[Dd][Dd][Ii]:[a-zA-Z0-9\\-]{1,63}(\\.[a-zA-Z0-9\\-]{1,63})*:[A-Za-z0-9\\*@$\\-_]\u002B(\\.[A-Za-z0-9\\*@$\\-_]\u002B)?:[0-9]\u002B(\\.[0-9]\u002B)*",
          "description": ""
        },
        "Agency": {
          "$ref": "#/$defs/string",
          "pattern": "[a-zA-Z0-9\\-]{1,63}(\\.[a-zA-Z0-9\\-]{1,63})*",
          "minLength": 1,
          "maxLength": 253,
          "description": ""
        },
        "ID": {
          "$ref": "#/$defs/string",
          "pattern": "[A-Za-z0-9\\*@$\\-_]\u002B(\\.[A-Za-z0-9\\*@$\\-_]\u002B)?",
          "description": ""
        },
        "Version": {
          "$ref": "#/$defs/string",
          "pattern": "[0-9]\u002B(\\.[0-9]\u002B)*",
          "description": ""
        },
        "UserID": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/UserIDType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "Allows for the specification of identifiers other than the specified DDI identification of the object. This may be a legacy ID from DDI-C, a system specific ID such as for a database or registry, or a non-DDI unique identifier. As the identifier is specific to a system the system must be identified with the UserID structure."
        },
        "UserAttributePair": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/StandardKeyValuePairType"
              }
            ],
            "unevaluatedProperties": false
          },
          "minItems": 0,
          "description": "A system specific user defined property of the object expressed as a key/value pair. As this is specific to an individual system the use of controlled vocabularies for the key is strongly recommended."
        },
        "VersionResponsibility": {
          "$ref": "#/$defs/string",
          "description": "Person or organization within the MaintenanceAgency responsible for the version change. If it is important to retain the affiliation between and individual responsible for the version and his/her agency, it may be included in this notation. This is primarily intended for internal use."
        },
        "VersionResponsibilityReference": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/Reference"
            },
            {
              "type": "object",
              "properties": {
                "$type": {
                  "type": "string",
                  "enum": [
                    "Individual",
                    "Organization"
                  ]
                }
              },
              "required": [
                "$type"
              ]
            }
          ],
          "description": "Reference person or organization within the MaintenanceAgency responsible for the version change, as described in an OrganizationScheme. If it is important to retain the affiliation between and individual responsible for the version and his/her agency, a Relation should be created between the individual referenced here and his/her organization. This is primarily intended for internal use."
        },
        "VersionRationale": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/VersionRationaleType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Textual description of the rationale/purpose for the version change and a coded value to provide an internal processing flag within and organization or system. Note that versioning can only take place on objects owned by the specified DDI Agency. If you are creating a local instance of an object from another agency for current or future modification use BasedOnObject. If the changes being made result in what you determine to be new object rather than a version of a previous object, i.e. the change is too extensive to consider it a version of the existing object, create a new object and use BasedOnObject to provide a link to the object or objects that were a basis for the new object."
        },
        "BasedOnObject": {
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/BasedOnObjectType"
            }
          ],
          "unevaluatedProperties": false,
          "description": "Use when creating an object that is based on an existing object or objects that are managed by a different agency or when the new object is NOT simply a version change but you wish to maintain a reference to the object that served as a basis for the new object. BasedOnObject may contain references to any number of objects which serve as a basis for this object, a BasedOnRationalDescription of how the content of the referenced object was incorporated or altered, and a BasedOnRationalCode to allow for specific typing of the BasedOnReference according to an external controlled vocabulary."
        },
        "RelatedOtherMaterialReference": {
          "type": "array",
          "items": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/$defs/Reference"
              },
              {
                "type": "object",
                "properties": {
                  "$type": {
                    "type": "string",
                    "enum": [
                      "OtherMaterial"
                    ]
                  }
                },
                "required": [
                  "$type"
                ]
              }
            ]
          },
          "minItems": 0,
          "description": "The inclusion of an existing OtherMaterial by reference. Use for any type of OtherMaterial not specifically addressed by an inline description for such as ExternalAid in QuestionItem."
        },
        "VersionDate": {
          "$ref": "#/$defs/cogsDate",
          "description": "Date of version using the union set BaseDateType. Duration should not be used in this field, even though allowed by the ISO format enforced by the parser."
        },
        "IsPublished": {
          "$ref": "#/$defs/boolean",
          "description": "Indicates that the maintainable will not be changed without versioning, and is a stable target for referencing."
        }
      },
      "required": [
        "$type",
        "URN",
        "Agency",
        "ID",
        "Version"
      ],
      "description": "Adds the attribute identifying this as a versionable object as well as the MaintainableObject. All versionable objects should provide their contextual information, the identity of their maintainable parent. The deprecated form of the URN contains all the information to identify and object and its context. A Canonical URN scoped to the Maintainable contains the ID of the Maintainable as part of its structure. To provide full contextual information use the MaintainableObject structure. The use of the Canonical URN scoped to the agency or the identification sequence alone requires the content of the MaintainableObject to provide full contextual information. All content of Versionable is considered to be administrative metadata. Note that changes to the administrative metadata does not drive a change in the version of the parent objects. See DDI 3.2 Technical Documentation: Part I for further details."
    },
    "Weighting": {
      "description": "Describes the weighting used in the process. In addition to a description of the weighting process it may be designated as a specific type of weighting. If the data uses a standard weight (each record has an equal weight) it may be expressed here with StandardWeight.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfWeighting": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows brief identification of Weighting Process used with the option of using a controlled vocabulary."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Full description of the weighting process."
            },
            "WeightingMethodologyReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "WeightingMethodology"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "A reference to the methodology used for the weighting process."
            },
            "AnalysisUnit": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "The entity to which the weights apply, for example, individuals, families or households, groups, institutions/organizations, administrative units, etc. Supports the use of an external controlled vocabulary. The DDI Alliance has provided a controlled vocabulary (AnalysisUnit) to support this element at http://www.ddialliance.org/controlled-vocabularies."
            },
            "UsageGuide": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/UsageGuideType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "A guide to the appropriate usage of the weights generated by the processing event."
            },
            "StandardWeight": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/StandardWeightType"
                  }
                ],
                "unevaluatedProperties": false
              },
              "minItems": 0,
              "description": "A standard weighting factor used by all or a group of variables within the data set."
            },
            "BasedOnSampleReference": {
              "type": "array",
              "items": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/$defs/Reference"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "$type": {
                        "type": "string",
                        "enum": [
                          "Sample"
                        ]
                      }
                    },
                    "required": [
                      "$type"
                    ]
                  }
                ]
              },
              "minItems": 0,
              "description": "The sample that was the basis for the weighting. TypeOfObject should be Sample."
            }
          }
        }
      ]
    },
    "WeightingMethodology": {
      "description": "A basic structure for describing the methodology used for weighting. In addition to a descriptive narrative, the methodology may be classified by a short term or external controlled vocabulary.",
      "allOf": [
        {
          "$ref": "#/$defs/Versionable"
        },
        {
          "type": "object",
          "properties": {
            "TypeOfWeightingMethodology": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/$defs/CodeValueType"
                }
              ],
              "unevaluatedProperties": false,
              "description": "Allows for brief identification of the type of weighting methodology using an optional controlled vocabulary."
            },
            "Description": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/langString"
              },
              "minItems": 0,
              "description": "Full description of the weighting methodology."
            }
          }
        }
      ]
    },
    "Reference": {
      "type": "object",
      "description": "A reference to an item containing its concrete $type and every configured identification property.",
      "properties": {
        "$type": {
          "type": "string",
          "enum": [
            "ApprovalReview",
            "Archive",
            "Category",
            "CategoryGroup",
            "CategoryScheme",
            "ClassificationCorrespondenceTable",
            "ClassificationFamily",
            "ClassificationIndex",
            "ClassificationItem",
            "ClassificationLevel",
            "ClassificationSeries",
            "CodeList",
            "CodeListGroup",
            "CodeListScheme",
            "CognitiveExpertReviewActivity",
            "CognitiveInterviewActivity",
            "Comparison",
            "ComputationItem",
            "Concept",
            "ConceptGroup",
            "ConceptScheme",
            "ConceptualComponent",
            "ConceptualVariable",
            "ConceptualVariableGroup",
            "ConceptualVariableScheme",
            "ContentReviewActivity",
            "ControlConstructGroup",
            "ControlConstructScheme",
            "DDIInstance",
            "DDIProfile",
            "DataCaptureDevelopment",
            "DataCollection",
            "DataRelationship",
            "DataSet",
            "DevelopmentActivityGroup",
            "DevelopmentActivityScheme",
            "DevelopmentImplementation",
            "DevelopmentPlan",
            "DevelopmentResults",
            "DevelopmentStep",
            "FocusGroupActivity",
            "GeneralInstruction",
            "GenerationInstruction",
            "GenericMap",
            "GeographicLocation",
            "GeographicLocationGroup",
            "GeographicLocationScheme",
            "GeographicStructure",
            "GeographicStructureGroup",
            "GeographicStructureScheme",
            "Group",
            "IfThenElse",
            "InLineNCubeRecordLayout",
            "Individual",
            "InformationClassification",
            "Instruction",
            "InstructionGroup",
            "Instrument",
            "InstrumentGroup",
            "InstrumentScheme",
            "InterviewerInstructionScheme",
            "LocalHoldingPackage",
            "LogicalProduct",
            "Loop",
            "ManagedCategoryRepresentation",
            "ManagedCodeRepresentation",
            "ManagedDateTimeRepresentation",
            "ManagedDistributionRepresentation",
            "ManagedExternalCategoryRepresentation",
            "ManagedGeographicLocationCodeRepresentation",
            "ManagedGeographicRepresentation",
            "ManagedGeographicStructureCodeRepresentation",
            "ManagedLocationRepresentation",
            "ManagedMissingValuesRepresentation",
            "ManagedNominalRepresentation",
            "ManagedNumericRepresentation",
            "ManagedRankingRepresentation",
            "ManagedRepresentationGroup",
            "ManagedRepresentationScheme",
            "ManagedScaleRepresentation",
            "ManagedTextRepresentation",
            "MeasurementConstruct",
            "MeasurementGroup",
            "MeasurementItem",
            "MeasurementScheme",
            "Methodology",
            "NCube",
            "NCubeGroup",
            "NCubeInstance",
            "NCubeInstanceI",
            "NCubeInstanceT",
            "NCubeScheme",
            "Organization",
            "OrganizationGroup",
            "OrganizationScheme",
            "OtherMaterial",
            "OtherMaterialGroup",
            "OtherMaterialScheme",
            "PhysicalDataProduct",
            "PhysicalInstance",
            "PhysicalInstanceGroup",
            "PhysicalStructure",
            "PhysicalStructureGroup",
            "PhysicalStructureScheme",
            "Population",
            "PopulationGroup",
            "PopulationScheme",
            "PretestActivity",
            "ProcessingEvent",
            "ProcessingEventGroup",
            "ProcessingEventScheme",
            "ProcessingInstructionGroup",
            "ProcessingInstructionScheme",
            "ProprietaryRecordLayout",
            "QualityScheme",
            "QualityStandard",
            "QualityStandardGroup",
            "QualityStatement",
            "QualityStatementGroup",
            "QuestionBlock",
            "QuestionConstruct",
            "QuestionGrid",
            "QuestionGroup",
            "QuestionItem",
            "QuestionScheme",
            "RecordLayout",
            "RecordLayoutGroup",
            "RecordLayoutScheme",
            "Relation",
            "RepeatUntil",
            "RepeatWhile",
            "RepresentationMap",
            "RepresentedVariable",
            "RepresentedVariableGroup",
            "RepresentedVariableScheme",
            "ResourcePackage",
            "Sample",
            "SampleFrame",
            "SampleStep",
            "SamplingInformationGroup",
            "SamplingInformationScheme",
            "SamplingPlan",
            "SamplingStage",
            "Sequence",
            "Split",
            "SplitJoin",
            "StatementItem",
            "StatisticalClassification",
            "StudyUnit",
            "SubUniverseClass",
            "TabularNCubeRecordLayout",
            "TranslationActivity",
            "UnitType",
            "UnitTypeGroup",
            "UnitTypeScheme",
            "Universe",
            "UniverseGroup",
            "UniverseScheme",
            "Variable",
            "VariableGroup",
            "VariableScheme",
            "VariableStatistics",
            "Weighting",
            "WeightingMethodology"
          ]
        },
        "URN": {
          "$ref": "#/$defs/string",
          "pattern": "[Uu][Rr][Nn]:[Dd][Dd][Ii]:[a-zA-Z0-9\\-]{1,63}(\\.[a-zA-Z0-9\\-]{1,63})*:[A-Za-z0-9\\*@$\\-_]\u002B(\\.[A-Za-z0-9\\*@$\\-_]\u002B)?:[0-9]\u002B(\\.[0-9]\u002B)*",
          "description": ""
        },
        "Agency": {
          "$ref": "#/$defs/string",
          "pattern": "[a-zA-Z0-9\\-]{1,63}(\\.[a-zA-Z0-9\\-]{1,63})*",
          "minLength": 1,
          "maxLength": 253,
          "description": ""
        },
        "ID": {
          "$ref": "#/$defs/string",
          "pattern": "[A-Za-z0-9\\*@$\\-_]\u002B(\\.[A-Za-z0-9\\*@$\\-_]\u002B)?",
          "description": ""
        },
        "Version": {
          "$ref": "#/$defs/string",
          "pattern": "[0-9]\u002B(\\.[0-9]\u002B)*",
          "description": ""
        }
      },
      "required": [
        "$type",
        "URN",
        "Agency",
        "ID",
        "Version"
      ],
      "additionalProperties": false
    }
  },
  "x-cogs-version": "2.0",
  "x-cogs-vocabulary": "https://cogsdata.org/schema/vocabulary/2.0"
}