Announcement

Collapse
No announcement yet.

JSON Schema zu XSD Convertieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • JSON Schema zu XSD Convertieren

    Hallo zusammen,

    ich fasse mich mal ganz kurz, ich habe ein JSON Schema und möchte das gerne zu XSD Convertieren. Stundenlange Suche hat bei Google nichts gebracht.
    Hier ist das JSON Schema:

    Code:
    {
       "$schema": "http://json-schema.org/schema#",
       "type": "object",
       "definitions": {
          "DynamicAttribute": {
             "properties": {
                "c": {
                   "allOf": [
                      {
                         "$ref": "IF-000.01_common_batch_cmn.json#/definitions/MandatoryString"
                      },
                      {
                         "maxLength": 10
                      }
                   ]
                },
                "v": {
                   "allOf": [
                      {
                         "$ref": "IF-000.01_common_batch_cmn.json#/definitions/MandatoryString"
                      },
                      {
                         "maxLength": 1000
                      }
                   ]
                }
             },
             "additionalProperties": false,
             "required": [
                "c",
                "v"
             ]
          },
          "HouseholdProgramContext": {
             "properties": {
                "pc": {
                   "$ref": "IF-000.01_common_batch_cmn.json#/definitions/ProgramCode"
                },
                "hsc": {
                   "$ref": "IF-000.01_common_batch_cmn.json#/definitions/DictionaryCode1"
                }
             },
             "additionalProperties": false,
             "required": [
                "pc",
                "hsc"
             ]
          },
          "LoyaltyCard": {
             "properties": {
                "cid": {
                   "$ref": "IF-000.01_common_batch_cmn.json#/definitions/Long10"
                },
                "ciid": {
                   "$ref": "IF-000.01_common_batch_cmn.json#/definitions/CIID"
                },
                "pc": {
                   "$ref": "IF-000.01_common_batch_cmn.json#/definitions/ProgramCode"
                },
                "ctc": {
                   "$ref": "IF-000.01_common_batch_cmn.json#/definitions/DictionaryCode1"
                },
                "csc": {
                   "$ref": "IF-000.01_common_batch_cmn.json#/definitions/DictionaryCode1"
                }
             },
             "additionalProperties": false,
             "required": [
                "cid",
                "ciid",
                "pc",
                "ctc",
                "csc"
             ]
          },
          "LoyaltyMember": {
             "properties": {
                "mid": {
                   "$ref": "IF-000.01_common_batch_cmn.json#/definitions/Long10"
                },
                "uuid": {
                   "$ref": "IF-000.01_common_batch_cmn.json#/definitions/UUID"
                },
                "tuuid": {
                   "$ref": "IF-000.01_common_batch_cmn.json#/definitions/UUID"
                },
                "cs": {
                   "allOf": [
                      {
                         "$ref": "IF-000.01_common_batch_cmn.json#/definitions/MandatoryArray"
                      },
                      {
                         "items": {
                            "$ref": "#/definitions/LoyaltyCard"
                         }
                      }
                   ]
                },
                "ps": {
                   "allOf": [
                      {
                         "$ref": "IF-000.01_common_batch_cmn.json#/definitions/MandatoryArray"
                      },
                      {
                         "items": {
                            "$ref": "#/definitions/MemberProgramContext"
                         }
                      }
                   ]
                },
                "das": {
                   "allOf": [
                      {
                         "$ref": "IF-000.01_common_batch_cmn.json#/definitions/MandatoryArray"
                      },
                      {
                         "items": {
                            "$ref": "#/definitions/DynamicAttribute"
                         }
                      }
                   ]
                }
             },
             "additionalProperties": false,
             "required": [
                "mid"
             ]
          },
          "MemberProgramContext": {
             "properties": {
                "pc": {
                   "$ref": "IF-000.01_common_batch_cmn.json#/definitions/ProgramCode"
                },
                "msc": {
                   "$ref": "IF-000.01_common_batch_cmn.json#/definitions/DictionaryCode1"
                },
                "mtc": {
                   "$ref": "IF-000.01_common_batch_cmn.json#/definitions/DictionaryCode2"
                },
                "ed": {
                   "$ref": "IF-000.01_common_batch_cmn.json#/definitions/ClmDateTime"
                },
                "td": {
                   "$ref": "IF-000.01_common_batch_cmn.json#/definitions/ClmDateTime"
                },
                "das": {
                   "allOf": [
                      {
                         "$ref": "IF-000.01_common_batch_cmn.json#/definitions/MandatoryArray"
                      },
                      {
                         "items": {
                            "$ref": "#/definitions/DynamicAttribute"
                         }
                      }
                   ]
                }
             },
             "additionalProperties": false,
             "required": [
                "pc",
                "msc"
             ]
          }
       },
       "properties": {
          "cc": {
             "$ref": "IF-000.01_common_batch_cmn.json#/definitions/DictionaryCode2"
          },
          "bc": {
             "$ref": "IF-000.01_common_batch_cmn.json#/definitions/DictionaryCode2"
          },
          "hid": {
             "$ref": "IF-000.01_common_batch_cmn.json#/definitions/Long10"
          },
          "ms": {
             "allOf": [
                {
                   "$ref": "IF-000.01_common_batch_cmn.json#/definitions/MandatoryArray"
                },
                {
                   "items": {
                      "$ref": "#/definitions/LoyaltyMember"
                   }
                }
             ]
          },
          "ps": {
             "allOf": [
                {
                   "$ref": "IF-000.01_common_batch_cmn.json#/definitions/MandatoryArray"
                },
                {
                   "items": {
                      "$ref": "#/definitions/HouseholdProgramContext"
                   }
                }
             ]
          }
       },
       "additionalProperties": false,
       "required": [
          "cc",
          "bc",
          "hid"
       ]
    }
    Gruß
    semcor

  • #2
    sowas z.B. ?
    https://github.com/ethlo/jsons2xsd (2.Eintrag google Suche, 1. war xsd nach json)
    Gruß, defo

    Comment


    • #3
      Hi defo,

      ich habe bis Seite 59 alles ausprobiert aber nichts davon hat funktioniert.
      Vielleicht liegt es an der JSON Schema Datei die ich habe aber "eigentlich" sollte diese korrekt sein.

      Trotzdem Danke.

      Gruß
      semcor

      Comment


      • #4
        59 google Ergebnisseiten?!
        Tja, also ich find das Thema spannend, hab aber selber keinen Plan.
        Hast Du Dein jsons mal validiert?

        Ansonsten bin ich bei der Suche über einen Artikel gestolpert, der darstellt, dass es hier wahrscheinlich keine vollständige Lösung gibt. Was gemäß der Natur von json und xml ja auch plausibel ist. Json Richtung XML geht da vlt noch besser als umgekehrt, da XML etwas mächtiger sein dürfte als json. Ob es eine vollständige Teilmenge von XML ist, ist aber zu bezweifeln.

        Es gibt einen online Validierer für jsons, der löst zwar nicht Dein Problem, bietet aber vielleicht mit seinen Sourcen einen Ansatz. (Ich denke da so an Dreisprung)
        Gruß, defo

        Comment


        • #5
          Ansonsten bin ich bei der Suche über einen Artikel gestolpert, der darstellt, dass es hier wahrscheinlich keine vollständige Lösung gibt. Was gemäß der Natur von json und xml ja auch plausibel ist. Json Richtung XML geht da vlt noch besser als umgekehrt, da XML etwas mächtiger sein dürfte als json. Ob es eine vollständige Teilmenge von XML ist, ist aber zu bezweifeln.
          Sehe ich auch so. Da das JSON Schema jetzt nicht so umfangreich ist sehe ich keinen Grund das äquivalente Xsd nicht von Hand möglichst sinngleich zu erstellen. Das sollte schneller gehen als viele Stunden sinnfrei mit google zu verbringen. (ich weiß das weiß man meist erst nachher )

          Comment

          Working...
          X