예제 #1
0
        /// <inheritdoc />
        public override JsonSchemaXsdMetadata AnalyzeSchema(JsonSchema schema, Uri uri)
        {
            JsonSchema = schema;
            Metadata   = new JsonSchemaXsdMetadata()
            {
                SchemaOrigin = "Seres"
            };

            if (JsonSchema.TryGetKeyword(out InfoKeyword info))
            {
                var messageNameElement     = info.Value.GetProperty("meldingsnavn");
                var messageTypeNameElement = info.Value.GetProperty("modellnavn");

                Metadata.MessageName     = messageNameElement.ValueKind == JsonValueKind.Undefined ? "melding" : messageNameElement.GetString();
                Metadata.MessageTypeName = messageTypeNameElement.ValueKind == JsonValueKind.Undefined ? null : messageNameElement.GetString();
            }
            else
            {
                Metadata.MessageName = "melding";
            }

            DetermineRootModel(JsonSchema);
            AnalyzeSchema(JsonPointer.Parse("#"), JsonSchema);

            return(Metadata);
        }
예제 #2
0
        /// <summary>
        /// Converts a Json Schema string to a <see cref="ModelMetadata"/>
        /// </summary>
        /// <param name="modelName">The name of the model.</param>
        /// <param name="jsonSchema">The Json Schema to be converted</param>
        /// <returns>An flattened representation of the Json Schema in the form of <see cref="ModelMetadata"/></returns>
        public ModelMetadata Convert(string modelName, string jsonSchema)
        {
            ModelName = modelName;

            _modelMetadata = new ModelMetadata();
            _schema        = JsonSchema.FromText(jsonSchema);
            var schemaUri = _schema.GetKeyword <IdKeyword>().Id;

            _schemaXsdMetadata = _schemaAnalyzer.AnalyzeSchema(_schema, schemaUri);

            ProcessSchema(_schema);

            return(_modelMetadata);
        }
예제 #3
0
        /// <inheritdoc/>
        public override JsonSchemaXsdMetadata AnalyzeSchema(JsonSchema schema, Uri uri)
        {
            JsonSchema = schema;
            Metadata   = new JsonSchemaXsdMetadata
            {
                SchemaOrigin    = "Standard",
                MessageName     = UrlHelper.GetName(uri.ToString()),
                MessageTypeName = string.Empty
            };

            DetermineRootModel(JsonSchema);
            AnalyzeSchema(JsonPointer.Parse("#"), JsonSchema);

            return(Metadata);
        }
예제 #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonSchemaAnalyzer"/> bseclass.
 /// </summary>
 protected JsonSchemaAnalyzer()
 {
     Metadata = new JsonSchemaXsdMetadata();
 }