{"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"discriminator-object","__idx":0},"children":["Discriminator Object"]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":["\nExcerpt from the OpenAPI 3.1 specification about the Discriminator Object\n"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"discriminator-object-1","__idx":1},"children":["Discriminator Object"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When request bodies or response payloads may be one of a number of different schemas, a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["discriminator"]}," object can be used to aid in serialization, deserialization, and validation.  The discriminator is a specific object in a schema which is used to inform the consumer of the document of an alternative schema based on the value associated with it."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When using the discriminator, ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["inline"]}," schemas will not be considered."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"fixed-fields","__idx":2},"children":["Fixed Fields"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field Name"},"children":["Field Name"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"center","data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["propertyName"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"center"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["string"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["REQUIRED"]},". The name of the property in the payload that will hold the discriminator value."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["mapping"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"center"},"children":["Map[",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["string"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["string"]},"]"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["An object to hold mappings between payload values and schema names or references."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This object MAY be extended with ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/learn/openapi/openapi-visual-reference/specification-extensions"},"children":["Specification Extensions"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The discriminator object is legal only when using one of the composite keywords ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["oneOf"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["anyOf"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["allOf"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In OAS 3.0, a response payload MAY be described to be exactly one of any number of types:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"MyResponseType:\n  oneOf:\n  - $ref: '#/components/schemas/Cat'\n  - $ref: '#/components/schemas/Dog'\n  - $ref: '#/components/schemas/Lizard'\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["which means the payload ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["MUST"]},", by validation, match exactly one of the schemas described by ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Cat"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Dog"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Lizard"]},".  In this case, a discriminator MAY act as a \"hint\" to shortcut validation and selection of the matching schema which may be a costly operation, depending on the complexity of the schema. We can then describe exactly which field tells us which schema to use:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"MyResponseType:\n  oneOf:\n  - $ref: '#/components/schemas/Cat'\n  - $ref: '#/components/schemas/Dog'\n  - $ref: '#/components/schemas/Lizard'\n  discriminator:\n    propertyName: petType\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The expectation now is that a property with name ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["petType"]}," ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["MUST"]}," be present in the response payload, and the value will correspond to the name of a schema defined in the OAS document.  Thus the response payload:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"id\": 12345,\n  \"petType\": \"Cat\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Will indicate that the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Cat"]}," schema be used in conjunction with this payload."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In scenarios where the value of the discriminator field does not match the schema name or implicit mapping is not possible, an optional ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["mapping"]}," definition MAY be used:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"MyResponseType:\n  oneOf:\n  - $ref: '#/components/schemas/Cat'\n  - $ref: '#/components/schemas/Dog'\n  - $ref: '#/components/schemas/Lizard'\n  - $ref: 'https://gigantic-server.com/schemas/Monster/schema.json'\n  discriminator:\n    propertyName: petType\n    mapping:\n      dog: '#/components/schemas/Dog'\n      monster: 'https://gigantic-server.com/schemas/Monster/schema.json'\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Here the discriminator ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["value"]}," of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["dog"]}," will map to the schema ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["#/components/schemas/Dog"]},", rather than the default (implicit) value of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Dog"]},".  If the discriminator ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["value"]}," does not match an implicit or explicit mapping, no schema can be determined and validation SHOULD fail. Mapping keys MUST be string values, but tooling MAY convert response values to strings for comparison."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When used in conjunction with the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["anyOf"]}," construct, the use of the discriminator can avoid ambiguity where multiple schemas may satisfy a single payload."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In both the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["oneOf"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["anyOf"]}," use cases, all possible schemas MUST be listed explicitly.  To avoid redundancy, the discriminator MAY be added to a parent schema definition, and all schemas comprising the parent schema in an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["allOf"]}," construct may be used as an alternate schema."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For example:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"components:\n  schemas:\n    Pet:\n      type: object\n      required:\n      - petType\n      properties:\n        petType:\n          type: string\n      discriminator:\n        propertyName: petType\n        mapping:\n          dog: Dog\n    Cat:\n      allOf:\n      - $ref: '#/components/schemas/Pet'\n      - type: object\n        # all other properties specific to a `Cat`\n        properties:\n          name:\n            type: string\n    Dog:\n      allOf:\n      - $ref: '#/components/schemas/Pet'\n      - type: object\n        # all other properties specific to a `Dog`\n        properties:\n          bark:\n            type: string\n    Lizard:\n      allOf:\n      - $ref: '#/components/schemas/Pet'\n      - type: object\n        # all other properties specific to a `Lizard`\n        properties:\n          lovesRocks:\n            type: boolean\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["a payload like this:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"petType\": \"Cat\",\n  \"name\": \"misty\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["will indicate that the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Cat"]}," schema be used.  Likewise this schema:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"petType\": \"dog\",\n  \"bark\": \"soft\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["will map to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Dog"]}," because of the definition in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["mapping"]}," element."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"visuals","__idx":3},"children":["Visuals"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Read ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"https://redocly.com/docs/resources/discriminator/"},"children":["how to use the discriminator"]}," (it has visual examples)."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"types","__idx":4},"children":["Types"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Discriminator"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["DiscriminatorMapping"]}]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"erDiagram\n          Schema ||..o| Discriminator : has\n          Discriminator ||..o| DiscriminatorMapping : has\n","diagramHtml":"<svg id=\"diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"erDiagram\" style=\"max-width: 210.71875px;\" viewBox=\"0 0 210.71875 470\" role=\"graphics-document document\" aria-roledescription=\"er\"><style>\n    #diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .error-icon{fill:#552222;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .error-text{fill:#552222;stroke:#552222;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .edge-thickness-normal{stroke-width:1px;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .edge-thickness-thick{stroke-width:3.5px;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .edge-pattern-solid{stroke-dasharray:0;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .marker{fill:#333333;stroke:#333333;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .marker.cross{stroke:#333333;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 p{margin:0;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .entityBox{fill:#ECECFF;stroke:#9370DB;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .relationshipLabelBox{fill:hsl(80, 100%, 96.2745098039%);opacity:0.7;background-color:hsl(80, 100%, 96.2745098039%);}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .relationshipLabelBox rect{opacity:0.5;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .labelBkg{background-color:rgba(248.6666666666, 255, 235.9999999999, 0.5);}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .edgeLabel{background-color:rgba(232,232,232, 0.8);}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .edgeLabel .label rect{fill:rgba(232,232,232, 0.8);}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .edgeLabel .label text{fill:#333;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .edgeLabel .label{fill:#9370DB;font-size:14px;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .label{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;color:#333;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .edge-pattern-dashed{stroke-dasharray:8,8;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .node rect,#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .node circle,#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .node ellipse,#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .node polygon{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .relationshipLine{stroke:#333333;stroke-width:1px;fill:none;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .marker{fill:none!important;stroke:#333333!important;stroke-width:1;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 [data-look=neo].labelBkg{background-color:rgba(248.6666666666, 255, 235.9999999999, 0.5);}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 .node .neo-node{stroke:#9370DB;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 [data-look=\"neo\"].node rect,#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 [data-look=\"neo\"].cluster rect,#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><defs><marker id=\"diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31_er-onlyOneStart\" class=\"marker onlyOne er\" refX=\"0\" refY=\"9\" markerWidth=\"18\" markerHeight=\"18\" orient=\"auto\"><path d=\"M9,0 L9,18 M15,0 L15,18\"></path></marker></defs><defs><marker id=\"diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31_er-onlyOneEnd\" class=\"marker onlyOne er\" refX=\"18\" refY=\"9\" markerWidth=\"18\" markerHeight=\"18\" orient=\"auto\"><path d=\"M3,0 L3,18 M9,0 L9,18\"></path></marker></defs><defs><marker id=\"diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31_er-zeroOrOneStart\" class=\"marker zeroOrOne er\" refX=\"0\" refY=\"9\" markerWidth=\"30\" markerHeight=\"18\" orient=\"auto\"><circle fill=\"white\" cx=\"21\" cy=\"9\" r=\"6\"></circle><path d=\"M9,0 L9,18\"></path></marker></defs><defs><marker id=\"diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31_er-zeroOrOneEnd\" class=\"marker zeroOrOne er\" refX=\"30\" refY=\"9\" markerWidth=\"30\" markerHeight=\"18\" orient=\"auto\"><circle fill=\"white\" cx=\"9\" cy=\"9\" r=\"6\"></circle><path d=\"M21,0 L21,18\"></path></marker></defs><defs><marker id=\"diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31_er-oneOrMoreStart\" class=\"marker oneOrMore er\" refX=\"18\" refY=\"18\" markerWidth=\"45\" markerHeight=\"36\" orient=\"auto\"><path d=\"M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27\"></path></marker></defs><defs><marker id=\"diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31_er-oneOrMoreEnd\" class=\"marker oneOrMore er\" refX=\"27\" refY=\"18\" markerWidth=\"45\" markerHeight=\"36\" orient=\"auto\"><path d=\"M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18\"></path></marker></defs><defs><marker id=\"diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31_er-zeroOrMoreStart\" class=\"marker zeroOrMore er\" refX=\"18\" refY=\"18\" markerWidth=\"57\" markerHeight=\"36\" orient=\"auto\"><circle fill=\"white\" cx=\"48\" cy=\"18\" r=\"6\"></circle><path d=\"M0,18 Q18,0 36,18 Q18,36 0,18\"></path></marker></defs><defs><marker id=\"diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31_er-zeroOrMoreEnd\" class=\"marker zeroOrMore er\" refX=\"39\" refY=\"18\" markerWidth=\"57\" markerHeight=\"36\" orient=\"auto\"><circle fill=\"white\" cx=\"9\" cy=\"18\" r=\"6\"></circle><path d=\"M21,18 Q39,0 57,18 Q39,36 21,18\"></path></marker></defs><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"><path d=\"M105.359,92L105.359,100.417C105.359,108.833,105.359,125.667,105.359,142.5C105.359,159.333,105.359,176.167,105.359,184.583L105.359,193\" id=\"diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31-id_entity-Schema-0_entity-Discriminator-1_0\" class=\"edge-thickness-normal edge-pattern-dashed relationshipLine\" style=\"undefined;;;undefined\" data-edge=\"true\" data-et=\"edge\" data-id=\"id_entity-Schema-0_entity-Discriminator-1_0\" data-points=\"W3sieCI6MTA1LjM1OTM3NSwieSI6OTJ9LHsieCI6MTA1LjM1OTM3NSwieSI6MTQyLjV9LHsieCI6MTA1LjM1OTM3NSwieSI6MTkzfV0=\" data-look=\"classic\" marker-start=\"url(#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31_er-onlyOneStart)\" marker-end=\"url(#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31_er-zeroOrOneEnd)\"></path><path d=\"M105.359,277L105.359,285.417C105.359,293.833,105.359,310.667,105.359,327.5C105.359,344.333,105.359,361.167,105.359,369.583L105.359,378\" id=\"diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31-id_entity-Discriminator-1_entity-DiscriminatorMapping-2_1\" class=\"edge-thickness-normal edge-pattern-dashed relationshipLine\" style=\"undefined;;;undefined\" data-edge=\"true\" data-et=\"edge\" data-id=\"id_entity-Discriminator-1_entity-DiscriminatorMapping-2_1\" data-points=\"W3sieCI6MTA1LjM1OTM3NSwieSI6Mjc3fSx7IngiOjEwNS4zNTkzNzUsInkiOjMyNy41fSx7IngiOjEwNS4zNTkzNzUsInkiOjM3OH1d\" data-look=\"classic\" marker-start=\"url(#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31_er-onlyOneStart)\" marker-end=\"url(#diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31_er-zeroOrOneEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\" transform=\"translate(105.359375, 142.5)\"><g class=\"label\" data-id=\"id_entity-Schema-0_entity-Discriminator-1_0\" transform=\"translate(-11.2890625, -10.5)\"><foreignObject width=\"22.578125\" height=\"21\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>has</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(105.359375, 327.5)\"><g class=\"label\" data-id=\"id_entity-Discriminator-1_entity-DiscriminatorMapping-2_1\" transform=\"translate(-11.2890625, -10.5)\"><foreignObject width=\"22.578125\" height=\"21\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>has</p></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31-entity-Schema-0\" data-look=\"classic\" transform=\"translate(105.359375, 50)\"><rect class=\"basic label-container\" style=\"\" x=\"-50\" y=\"-42\" width=\"100\" height=\"84\"></rect><g class=\"label\" style=\"\" transform=\"translate(-29.3515625, -12)\"><rect></rect><foreignObject width=\"58.703125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 100px; text-align: center;\"><span class=\"nodeLabel markdown-node-label\"><p>Schema</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31-entity-Discriminator-1\" data-look=\"classic\" transform=\"translate(105.359375, 235)\"><rect class=\"basic label-container\" style=\"\" x=\"-66.671875\" y=\"-42\" width=\"133.34375\" height=\"84\"></rect><g class=\"label\" style=\"\" transform=\"translate(-46.671875, -12)\"><rect></rect><foreignObject width=\"93.34375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel markdown-node-label\"><p>Discriminator</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31-entity-DiscriminatorMapping-2\" data-look=\"classic\" transform=\"translate(105.359375, 420)\"><rect class=\"basic label-container\" style=\"\" x=\"-97.359375\" y=\"-42\" width=\"194.71875\" height=\"84\"></rect><g class=\"label\" style=\"\" transform=\"translate(-77.359375, -12)\"><rect></rect><foreignObject width=\"154.71875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel markdown-node-label\"><p>DiscriminatorMapping</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs><defs><filter id=\"diagram-ac069c80fde46d8f87c8afb65505ba8965db793adce48a3e32be6d293f5fbb31-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs></svg>","diagramHtmlDark":"<svg id=\"diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"erDiagram\" style=\"max-width: 210.71875px;\" viewBox=\"0 0 210.71875 470\" role=\"graphics-document document\" aria-roledescription=\"er\"><style>\n    #diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .error-icon{fill:#a44141;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .error-text{fill:#ddd;stroke:#ddd;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .edge-thickness-normal{stroke-width:1px;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .edge-thickness-thick{stroke-width:3.5px;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .edge-pattern-solid{stroke-dasharray:0;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .marker.cross{stroke:lightgrey;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 p{margin:0;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .entityBox{fill:#1f2020;stroke:#ccc;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .relationshipLabelBox{fill:hsl(20, 1.5873015873%, 12.3529411765%);opacity:0.7;background-color:hsl(20, 1.5873015873%, 12.3529411765%);}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .relationshipLabelBox rect{opacity:0.5;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .labelBkg{background-color:rgba(32.0000000001, 31.3333333334, 31.0000000001, 0.5);}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .edgeLabel .label rect{fill:hsl(0, 0%, 34.4117647059%);}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .edgeLabel .label text{fill:#ccc;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .edgeLabel .label{fill:#ccc;font-size:14px;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .label{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;color:#ccc;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .edge-pattern-dashed{stroke-dasharray:8,8;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .node rect,#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .node circle,#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .node ellipse,#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .node polygon{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .relationshipLine{stroke:lightgrey;stroke-width:1px;fill:none;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .marker{fill:none!important;stroke:lightgrey!important;stroke-width:1;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 [data-look=neo].labelBkg{background-color:rgba(32.0000000001, 31.3333333334, 31.0000000001, 0.5);}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 .node .neo-node{stroke:#ccc;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 [data-look=\"neo\"].node rect,#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 [data-look=\"neo\"].cluster rect,#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 [data-look=\"neo\"].node polygon{stroke:url(#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 [data-look=\"neo\"].node path{stroke:url(#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662-gradient);stroke-width:1px;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 [data-look=\"neo\"].node circle{stroke:url(#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><defs><marker id=\"diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662_er-onlyOneStart\" class=\"marker onlyOne er\" refX=\"0\" refY=\"9\" markerWidth=\"18\" markerHeight=\"18\" orient=\"auto\"><path d=\"M9,0 L9,18 M15,0 L15,18\"></path></marker></defs><defs><marker id=\"diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662_er-onlyOneEnd\" class=\"marker onlyOne er\" refX=\"18\" refY=\"9\" markerWidth=\"18\" markerHeight=\"18\" orient=\"auto\"><path d=\"M3,0 L3,18 M9,0 L9,18\"></path></marker></defs><defs><marker id=\"diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662_er-zeroOrOneStart\" class=\"marker zeroOrOne er\" refX=\"0\" refY=\"9\" markerWidth=\"30\" markerHeight=\"18\" orient=\"auto\"><circle fill=\"white\" cx=\"21\" cy=\"9\" r=\"6\"></circle><path d=\"M9,0 L9,18\"></path></marker></defs><defs><marker id=\"diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662_er-zeroOrOneEnd\" class=\"marker zeroOrOne er\" refX=\"30\" refY=\"9\" markerWidth=\"30\" markerHeight=\"18\" orient=\"auto\"><circle fill=\"white\" cx=\"9\" cy=\"9\" r=\"6\"></circle><path d=\"M21,0 L21,18\"></path></marker></defs><defs><marker id=\"diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662_er-oneOrMoreStart\" class=\"marker oneOrMore er\" refX=\"18\" refY=\"18\" markerWidth=\"45\" markerHeight=\"36\" orient=\"auto\"><path d=\"M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27\"></path></marker></defs><defs><marker id=\"diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662_er-oneOrMoreEnd\" class=\"marker oneOrMore er\" refX=\"27\" refY=\"18\" markerWidth=\"45\" markerHeight=\"36\" orient=\"auto\"><path d=\"M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18\"></path></marker></defs><defs><marker id=\"diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662_er-zeroOrMoreStart\" class=\"marker zeroOrMore er\" refX=\"18\" refY=\"18\" markerWidth=\"57\" markerHeight=\"36\" orient=\"auto\"><circle fill=\"white\" cx=\"48\" cy=\"18\" r=\"6\"></circle><path d=\"M0,18 Q18,0 36,18 Q18,36 0,18\"></path></marker></defs><defs><marker id=\"diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662_er-zeroOrMoreEnd\" class=\"marker zeroOrMore er\" refX=\"39\" refY=\"18\" markerWidth=\"57\" markerHeight=\"36\" orient=\"auto\"><circle fill=\"white\" cx=\"9\" cy=\"18\" r=\"6\"></circle><path d=\"M21,18 Q39,0 57,18 Q39,36 21,18\"></path></marker></defs><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"><path d=\"M105.359,92L105.359,100.417C105.359,108.833,105.359,125.667,105.359,142.5C105.359,159.333,105.359,176.167,105.359,184.583L105.359,193\" id=\"diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662-id_entity-Schema-0_entity-Discriminator-1_0\" class=\"edge-thickness-normal edge-pattern-dashed relationshipLine\" style=\"undefined;;;undefined\" data-edge=\"true\" data-et=\"edge\" data-id=\"id_entity-Schema-0_entity-Discriminator-1_0\" data-points=\"W3sieCI6MTA1LjM1OTM3NSwieSI6OTJ9LHsieCI6MTA1LjM1OTM3NSwieSI6MTQyLjV9LHsieCI6MTA1LjM1OTM3NSwieSI6MTkzfV0=\" data-look=\"classic\" marker-start=\"url(#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662_er-onlyOneStart)\" marker-end=\"url(#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662_er-zeroOrOneEnd)\"></path><path d=\"M105.359,277L105.359,285.417C105.359,293.833,105.359,310.667,105.359,327.5C105.359,344.333,105.359,361.167,105.359,369.583L105.359,378\" id=\"diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662-id_entity-Discriminator-1_entity-DiscriminatorMapping-2_1\" class=\"edge-thickness-normal edge-pattern-dashed relationshipLine\" style=\"undefined;;;undefined\" data-edge=\"true\" data-et=\"edge\" data-id=\"id_entity-Discriminator-1_entity-DiscriminatorMapping-2_1\" data-points=\"W3sieCI6MTA1LjM1OTM3NSwieSI6Mjc3fSx7IngiOjEwNS4zNTkzNzUsInkiOjMyNy41fSx7IngiOjEwNS4zNTkzNzUsInkiOjM3OH1d\" data-look=\"classic\" marker-start=\"url(#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662_er-onlyOneStart)\" marker-end=\"url(#diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662_er-zeroOrOneEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\" transform=\"translate(105.359375, 142.5)\"><g class=\"label\" data-id=\"id_entity-Schema-0_entity-Discriminator-1_0\" transform=\"translate(-11.2890625, -10.5)\"><foreignObject width=\"22.578125\" height=\"21\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>has</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(105.359375, 327.5)\"><g class=\"label\" data-id=\"id_entity-Discriminator-1_entity-DiscriminatorMapping-2_1\" transform=\"translate(-11.2890625, -10.5)\"><foreignObject width=\"22.578125\" height=\"21\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>has</p></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662-entity-Schema-0\" data-look=\"classic\" transform=\"translate(105.359375, 50)\"><rect class=\"basic label-container\" style=\"\" x=\"-50\" y=\"-42\" width=\"100\" height=\"84\"></rect><g class=\"label\" style=\"\" transform=\"translate(-29.3515625, -12)\"><rect></rect><foreignObject width=\"58.703125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 100px; text-align: center;\"><span class=\"nodeLabel markdown-node-label\"><p>Schema</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662-entity-Discriminator-1\" data-look=\"classic\" transform=\"translate(105.359375, 235)\"><rect class=\"basic label-container\" style=\"\" x=\"-66.671875\" y=\"-42\" width=\"133.34375\" height=\"84\"></rect><g class=\"label\" style=\"\" transform=\"translate(-46.671875, -12)\"><rect></rect><foreignObject width=\"93.34375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel markdown-node-label\"><p>Discriminator</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662-entity-DiscriminatorMapping-2\" data-look=\"classic\" transform=\"translate(105.359375, 420)\"><rect class=\"basic label-container\" style=\"\" x=\"-97.359375\" y=\"-42\" width=\"194.71875\" height=\"84\"></rect><g class=\"label\" style=\"\" transform=\"translate(-77.359375, -12)\"><rect></rect><foreignObject width=\"154.71875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel markdown-node-label\"><p>DiscriminatorMapping</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><defs><filter id=\"diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><linearGradient id=\"diagram-ef1db9d8e9b6b1846d2107f0c8236821f63057f56bc1d5b5add903aac289c662-gradient\" gradientUnits=\"objectBoundingBox\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\"><stop offset=\"0%\" stop-color=\"#cccccc\" stop-opacity=\"1\"></stop><stop offset=\"100%\" stop-color=\"hsl(180, 0%, 18.3529411765%)\" stop-opacity=\"1\"></stop></linearGradient></svg>"},"children":[]}]},"frontmatter":{},"tagList":["html"],"title":"Discriminator Object","lastModified":"2025-05-28T16:01:32.000Z"}