SlideShare a Scribd company logo
JSON Schema
Design Mode
© 2021 Syncro Soft SRL. All rights reserved.
Octavian Nadolu, Syncro Soft
octavian.nadolu@oxygenxml.com
@OctavianNadolu
JSON Schema Design Mode
Agenda
● JSON Schema Support in Oxygen
● Create JSON Schema from Scratch
● Visualize and Edit Complex JSON Schemas
● Generate JSON Schema Documentation
JSON Schema Design Mode
JSON Schema
JSON Schema is a vocabulary that allows you to
annotate and validate JSON documents
http://json-schema.org
JSON Schema Design Mode
JSON Schema Definition
● It is recommended to to have the schema definition on the first level
"$schema": "http://json-schema.org/draft-07/schema#"
● JSON Schema used versions:
– draft-04
– draft-06
– draft-07
– draft/2020-12
JSON Schema Design Mode
Question: Do you use JSON Schema, what versions?
 No
 Yes. Draft 4, 6 or 7
 Yes. (2020-12)
 Yes. Other (use the Questions pane to
provide more details)
JSON Schema Design Mode
JSON Schema Support in Oxygen
● JSON Schema Editor - specialized editor with various editing features
● Validation against JSON Schema
● Editing based on JSON Schema
● Tools
– Generate JSON Schema Documentation
– Generate Sample JSON Files from a JSON Schema
– Generate JSON Schema from a JSON File
– XSD to JSON Schema Converter
JSON Schema Design Mode
JSON Schema Editor
Design, develop, and edit JSON Schemas in:
● Text Editing Mode
● Author Editing Mode
● Schema Design Mode
JSON Schema Design Mode
Text Editing Mode
Text editing mode is packed full of
editing helpers
● JSON Outline View
● JSON-specific Syntax Highlighting
● Search and Find/Replace
● Drag and Drop
● Validation
● Format and Indent (Pretty Print)
JSON Schema Design Mode
Author Editing Mode
Visual editing mode for JSON
Schema documents:
● JSON Schema framework
● Content completion support
● Validation
● Specific CSS for rendering
● Create your own custom JSON
framework
JSON Schema Design Mode
Schema Design Mode
Visualize, edit, and understand JSON Schemas
● In-Place Component Editing
● Edit Properties
● Edit Annotations
● Schema Editing Actions
● Move Component Up/Down Actions
● Print/Save as Image
JSON Schema Design Mode
Create JSON Schema from Scratch
● JSON-based product catalog
productID – the product identifier
productName – the product name
price – the selling price of the product
tags – an optional set of tags
{
"productId": 1,
"productName": "A green door",
"price": 12.50,
"tags": ["home","green"]
}
JSON Schema Design Mode
Create JSON Schema from Scratch
● productID – The identifier for a product
– Is a numeric value
– Is required
{
"productId": 1,
"productName": "A green door",
"price": 12.50,
"tags": ["home","green"]
}
JSON Schema Design Mode
Create JSON Schema from Scratch
● productName – The name of the product
– Is a string value
– Is required
{
"productId": 1,
"productName": "A green door",
"price": 12.50,
"tags": ["home","green"]
}
JSON Schema Design Mode
Create JSON Schema from Scratch
● price – The price of the product
– Is a number value
– Is required
– Must be greater that 0
{
"productId": 1,
"productName": "A green door",
"price": 12.50,
"tags": ["home","green"]
}
JSON Schema Design Mode
Create JSON Schema from Scratch
● tags – Tags for the product
– Is an array of string values
– Is not required
– At least one item in the array
– Must be unique relative to one another
{
"productId": 1,
"productName": "A green door",
"price": 12.50,
"tags": ["home","green"]
}
JSON Schema Design Mode
JSON Schema for Product Catalog
Easy to create a schema from scratch
● Use document template
● Edit the components in-place
● Edit the component properties in the in-
place view
● Add new components using the
append/insert contextual actions
● Change the documentation using the
Annotation dialog box
JSON Schema Design Mode
Schema Diagram Components
● schema – defines the root schema
component
● properties – defines a group of property
components
● definitions – contains a group of definition
components
● pattern properties – contains a group of
pattern property components
JSON Schema Design Mode
Schema Diagram Components
● property – defines a property declaration
● definition – contains a declaration of a
reusable definition
● pattern property – defines a pattern
property
● additional properties – contains a
definition for the additional properties
JSON Schema Design Mode
Schema Diagram Components- Arrays
● items – contains the array definition or
definitions
● Items definition – definition for all array
items
● Items array – an array of definitions, one
for each item from the array
● additional items – contains a definition for
the additional items from an array
JSON Schema Design Mode
Schema Diagram Components- Composition
● allOf – a list of definitions, data must be
valid against all definitions
● oneOf – a list of definitions, data must be
valid against exactly one of the definitions
● anyOf – a list of definitions, data must be
valid against any definition
● not – a definition, data must not be valid
against the given definition
JSON Schema Design Mode
Schema Diagram Components- Conditional
● if – contains a schema definition for the if
condition
● then – contains a schema definition, data
must be valid against it when the if
condition is true
● else – contains a schema definition, data
must be valid against it when the if
condition is false
JSON Schema Design Mode
Question: How do you use/intend to use JSON Schema?
 To define an API
 In a database
 To validate JSON documents
 Other (use the Questions pane to provide
more details)
JSON Schema Design Mode
Visualize and Edit Complex JSON Schemas
JSON Schema Design Mode
Visualize and Edit Complex JSON Schemas
● Smart navigation
● Zoom in/out
● Expand/Collapse components
● Go to references
● Go back and forward between components viewed or edited
● Validation markers
JSON Schema Design Mode
Generate JSON Schema Documentation
● Tool for generating detailed documentation for a JSON Schema file in
HTML format
JSON Schema Design Mode
JSON Schema Documentation
● Generate documentation in one file
or split into multiple files
● Option to include components details
● Display the diagram image for each
component
JSON Schema Design Mode
Conclusion
● Complete support for JSON Schemas
● JSON Schema Editor
● Validate JSON with JSON Schema
● Editing based on JSON Schema
● Useful JSON Schema Tools
JSON Schema Design Mode
Future Plans
● Improve JSON Schema Diagram
● Better JSON Schema Documentation
● Quick fixes for JSON problems
● OpenAPI support
● YAML support
JSON Schema Design Mode
Question: What features are the most important for you?
 JSON Schema Diagram
 JSON Schema Documentation
 Quick fixes for JSON problems
 OpenAPI support
 YAML support
JSON Schema Design Mode
Resources
● https://json-schema.org/
● oxygenxml.com/json_schema_editor.html
● oxygenxml.com/doc/ug-editor/topics/editing-JSON-schema.html
Video Demos:
● oxygenxml.com/demo/json_author.html
● oxygenxml.com/demo/json_tools.html
● oxygenxml.com/demo/json_validation.html
● oxygenxml.com/demo/json_editing.html
● oxygenxml.com/demo/json_query.html
Questions?
Octavian Nadolu
Product Manager at Syncro Soft
octavian.nadolu@oxygenxml.com
Twitter: @OctavianNadolu
LinkedIn: octaviannadolu

More Related Content

What's hot

Aem asset optimizations & best practices
Aem asset optimizations & best practicesAem asset optimizations & best practices
Aem asset optimizations & best practices
Kanika Gera
 
Document Object Model (DOM)
Document Object Model (DOM)Document Object Model (DOM)
Document Object Model (DOM)
GOPAL BASAK
 
Entity framework code first
Entity framework code firstEntity framework code first
Entity framework code firstConfiz
 
Intent in android
Intent in androidIntent in android
Intent in android
Durai S
 
Presentation of bootstrap
Presentation of bootstrapPresentation of bootstrap
Presentation of bootstrap
1amitgupta
 
Fragment
Fragment Fragment
Introduction of Xcode
Introduction of XcodeIntroduction of Xcode
Introduction of Xcode
Dhaval Kaneria
 
Xml dom
Xml domXml dom
Xml dom
sana mateen
 
ORM: Object-relational mapping
ORM: Object-relational mappingORM: Object-relational mapping
ORM: Object-relational mapping
Abhilash M A
 
Content Management with MongoDB by Mark Helmstetter
 Content Management with MongoDB by Mark Helmstetter Content Management with MongoDB by Mark Helmstetter
Content Management with MongoDB by Mark Helmstetter
MongoDB
 
React Native - Getting Started
React Native - Getting StartedReact Native - Getting Started
React Native - Getting Started
Tracy Lee
 
Basics and different xml files used in android
Basics and different xml files used in androidBasics and different xml files used in android
Basics and different xml files used in android
Mahmudul Hasan
 
JSON: The Basics
JSON: The BasicsJSON: The Basics
JSON: The Basics
Jeff Fox
 
Angular Data Binding
Angular Data BindingAngular Data Binding
Angular Data Binding
Jennifer Estrada
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
Vikash Singh
 
Android styles and themes
Android styles and themesAndroid styles and themes
Android styles and themes
Sourabh Sahu
 
Introduction to JavaScript
Introduction to JavaScriptIntroduction to JavaScript
Introduction to JavaScript
Andres Baravalle
 
Parceable serializable
Parceable serializableParceable serializable
Parceable serializable
Sourabh Sahu
 
Introduction to the Web API
Introduction to the Web APIIntroduction to the Web API
Introduction to the Web API
Brad Genereaux
 

What's hot (20)

Aem asset optimizations & best practices
Aem asset optimizations & best practicesAem asset optimizations & best practices
Aem asset optimizations & best practices
 
Document Object Model (DOM)
Document Object Model (DOM)Document Object Model (DOM)
Document Object Model (DOM)
 
Entity framework code first
Entity framework code firstEntity framework code first
Entity framework code first
 
Intent in android
Intent in androidIntent in android
Intent in android
 
Presentation of bootstrap
Presentation of bootstrapPresentation of bootstrap
Presentation of bootstrap
 
Fragment
Fragment Fragment
Fragment
 
Introduction of Xcode
Introduction of XcodeIntroduction of Xcode
Introduction of Xcode
 
Xml dom
Xml domXml dom
Xml dom
 
ORM: Object-relational mapping
ORM: Object-relational mappingORM: Object-relational mapping
ORM: Object-relational mapping
 
Content Management with MongoDB by Mark Helmstetter
 Content Management with MongoDB by Mark Helmstetter Content Management with MongoDB by Mark Helmstetter
Content Management with MongoDB by Mark Helmstetter
 
React Native - Getting Started
React Native - Getting StartedReact Native - Getting Started
React Native - Getting Started
 
Basics and different xml files used in android
Basics and different xml files used in androidBasics and different xml files used in android
Basics and different xml files used in android
 
JSON: The Basics
JSON: The BasicsJSON: The Basics
JSON: The Basics
 
Angular Data Binding
Angular Data BindingAngular Data Binding
Angular Data Binding
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Android styles and themes
Android styles and themesAndroid styles and themes
Android styles and themes
 
Introduction to JavaScript
Introduction to JavaScriptIntroduction to JavaScript
Introduction to JavaScript
 
Parceable serializable
Parceable serializableParceable serializable
Parceable serializable
 
Gradle Introduction
Gradle IntroductionGradle Introduction
Gradle Introduction
 
Introduction to the Web API
Introduction to the Web APIIntroduction to the Web API
Introduction to the Web API
 

Similar to JSON Schema Design

Create an Design JSON Schema
Create an Design JSON SchemaCreate an Design JSON Schema
Create an Design JSON Schema
Octavian Nadolu
 
Oxygen JSON Editor
Oxygen JSON EditorOxygen JSON Editor
Oxygen JSON Editor
Octavian Nadolu
 
JSON, JSON Schema, and OpenAPI
JSON, JSON Schema, and OpenAPIJSON, JSON Schema, and OpenAPI
JSON, JSON Schema, and OpenAPI
Octavian Nadolu
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
Jussi Pohjolainen
 
AngularJS: an introduction
AngularJS: an introductionAngularJS: an introduction
AngularJS: an introduction
Luigi De Russis
 
There is Javascript in my SQL
There is Javascript in my SQLThere is Javascript in my SQL
There is Javascript in my SQL
PGConf APAC
 
Postgrtesql as a NoSQL Document Store - The JSON/JSONB data type
Postgrtesql as a NoSQL Document Store - The JSON/JSONB data typePostgrtesql as a NoSQL Document Store - The JSON/JSONB data type
Postgrtesql as a NoSQL Document Store - The JSON/JSONB data type
Jumping Bean
 
Webdev bootcamp
Webdev bootcampWebdev bootcamp
Webdev bootcamp
DSCMESCOE
 
MongoDB Basics
MongoDB BasicsMongoDB Basics
MongoDB Basics
Sarang Shravagi
 
JSON-LD Update
JSON-LD UpdateJSON-LD Update
JSON-LD Update
Gregg Kellogg
 
Salesforce Developer Online Training.pdf
Salesforce Developer Online Training.pdfSalesforce Developer Online Training.pdf
Salesforce Developer Online Training.pdf
SpiritsoftsTraining
 
Object(ive) Thinking
Object(ive) ThinkingObject(ive) Thinking
Object(ive) Thinking
Michael McGarel
 
Joomla templates2011
Joomla templates2011Joomla templates2011
Joomla templates2011Linda Coonen
 
Inline style best practices in reactjs
Inline style best practices in reactjsInline style best practices in reactjs
Inline style best practices in reactjs
BOSC Tech Labs
 
Next Generation Spring MVC with Spring Roo
Next Generation Spring MVC with Spring RooNext Generation Spring MVC with Spring Roo
Next Generation Spring MVC with Spring Roo
Stefan Schmidt
 
Thinking in Components
Thinking in ComponentsThinking in Components
Thinking in Components
Anton Ivanov
 
No sql bigdata and postgresql
No sql bigdata and postgresqlNo sql bigdata and postgresql
No sql bigdata and postgresql
Zaid Shabbir
 
Odoo Experience 2018 - The Odoo JS Framework
Odoo Experience 2018 - The Odoo JS FrameworkOdoo Experience 2018 - The Odoo JS Framework
Odoo Experience 2018 - The Odoo JS Framework
ElínAnna Jónasdóttir
 
Dust.js
Dust.jsDust.js

Similar to JSON Schema Design (20)

Create an Design JSON Schema
Create an Design JSON SchemaCreate an Design JSON Schema
Create an Design JSON Schema
 
Oxygen JSON Editor
Oxygen JSON EditorOxygen JSON Editor
Oxygen JSON Editor
 
JSON, JSON Schema, and OpenAPI
JSON, JSON Schema, and OpenAPIJSON, JSON Schema, and OpenAPI
JSON, JSON Schema, and OpenAPI
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
 
AngularJS: an introduction
AngularJS: an introductionAngularJS: an introduction
AngularJS: an introduction
 
There is Javascript in my SQL
There is Javascript in my SQLThere is Javascript in my SQL
There is Javascript in my SQL
 
Postgrtesql as a NoSQL Document Store - The JSON/JSONB data type
Postgrtesql as a NoSQL Document Store - The JSON/JSONB data typePostgrtesql as a NoSQL Document Store - The JSON/JSONB data type
Postgrtesql as a NoSQL Document Store - The JSON/JSONB data type
 
Webdev bootcamp
Webdev bootcampWebdev bootcamp
Webdev bootcamp
 
MongoDB Basics
MongoDB BasicsMongoDB Basics
MongoDB Basics
 
JSON-LD Update
JSON-LD UpdateJSON-LD Update
JSON-LD Update
 
Salesforce Developer Online Training.pdf
Salesforce Developer Online Training.pdfSalesforce Developer Online Training.pdf
Salesforce Developer Online Training.pdf
 
Object(ive) Thinking
Object(ive) ThinkingObject(ive) Thinking
Object(ive) Thinking
 
Joomla templates2011
Joomla templates2011Joomla templates2011
Joomla templates2011
 
Inline style best practices in reactjs
Inline style best practices in reactjsInline style best practices in reactjs
Inline style best practices in reactjs
 
Next Generation Spring MVC with Spring Roo
Next Generation Spring MVC with Spring RooNext Generation Spring MVC with Spring Roo
Next Generation Spring MVC with Spring Roo
 
Thinking in Components
Thinking in ComponentsThinking in Components
Thinking in Components
 
No sql bigdata and postgresql
No sql bigdata and postgresqlNo sql bigdata and postgresql
No sql bigdata and postgresql
 
Odoo Experience 2018 - The Odoo JS Framework
Odoo Experience 2018 - The Odoo JS FrameworkOdoo Experience 2018 - The Odoo JS Framework
Odoo Experience 2018 - The Odoo JS Framework
 
Dust.js
Dust.jsDust.js
Dust.js
 
Performance (browser)
Performance (browser)Performance (browser)
Performance (browser)
 

More from Octavian Nadolu

Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
YAML Editing and Validation In Oxygen
YAML Editing and Validation In OxygenYAML Editing and Validation In Oxygen
YAML Editing and Validation In Oxygen
Octavian Nadolu
 
Leveraging the Power of AI and Schematron for Content Verification and Correc...
Leveraging the Power of AI and Schematron for Content Verification and Correc...Leveraging the Power of AI and Schematron for Content Verification and Correc...
Leveraging the Power of AI and Schematron for Content Verification and Correc...
Octavian Nadolu
 
OpenAPI/AsyncAPI Support in Oxygen
OpenAPI/AsyncAPI Support in OxygenOpenAPI/AsyncAPI Support in Oxygen
OpenAPI/AsyncAPI Support in Oxygen
Octavian Nadolu
 
Validating XML and JSON Documents Using Oxygen Scripting
 Validating XML and JSON Documents Using Oxygen Scripting Validating XML and JSON Documents Using Oxygen Scripting
Validating XML and JSON Documents Using Oxygen Scripting
Octavian Nadolu
 
OpenAPI Editing, Testing, and Documenting
OpenAPI Editing, Testing, and DocumentingOpenAPI Editing, Testing, and Documenting
OpenAPI Editing, Testing, and Documenting
Octavian Nadolu
 
Compare And Merge Scripts
Compare And Merge ScriptsCompare And Merge Scripts
Compare And Merge Scripts
Octavian Nadolu
 
Schematron For Non-XML Languages
Schematron For Non-XML LanguagesSchematron For Non-XML Languages
Schematron For Non-XML Languages
Octavian Nadolu
 
JSON and JSON Schema in Oxygen
JSON and JSON Schema in OxygenJSON and JSON Schema in Oxygen
JSON and JSON Schema in Oxygen
Octavian Nadolu
 
HTML5 Editing Validation
HTML5 Editing ValidationHTML5 Editing Validation
HTML5 Editing Validation
Octavian Nadolu
 
Documentation Quality Assurance with ISO Schematron
Documentation Quality Assurance with ISO SchematronDocumentation Quality Assurance with ISO Schematron
Documentation Quality Assurance with ISO Schematron
Octavian Nadolu
 
Introduction to Schematron
Introduction to SchematronIntroduction to Schematron
Introduction to Schematron
Octavian Nadolu
 
Hands on JSON
Hands on JSONHands on JSON
Hands on JSON
Octavian Nadolu
 
JSON Edit, Validate, Query, Transform, and Convert
JSON Edit, Validate, Query, Transform, and ConvertJSON Edit, Validate, Query, Transform, and Convert
JSON Edit, Validate, Query, Transform, and Convert
Octavian Nadolu
 
The Power Of Schematron Quick Fixes - XML Prague 2019
The Power Of Schematron Quick Fixes - XML Prague 2019The Power Of Schematron Quick Fixes - XML Prague 2019
The Power Of Schematron Quick Fixes - XML Prague 2019
Octavian Nadolu
 
Collaboration Tools to Help Improve Documentation Process
Collaboration Tools to Help Improve Documentation ProcessCollaboration Tools to Help Improve Documentation Process
Collaboration Tools to Help Improve Documentation Process
Octavian Nadolu
 
Schematron step-by-step
Schematron step-by-stepSchematron step-by-step
Schematron step-by-step
Octavian Nadolu
 
Exploring the new features in Oxygen XML Editor 20 - Development
Exploring the new features in Oxygen XML Editor 20 - DevelopmentExploring the new features in Oxygen XML Editor 20 - Development
Exploring the new features in Oxygen XML Editor 20 - Development
Octavian Nadolu
 
Comparing and Merging XML Documents in Visual Mode
Comparing and Merging XML Documents in Visual ModeComparing and Merging XML Documents in Visual Mode
Comparing and Merging XML Documents in Visual Mode
Octavian Nadolu
 
Schematron 2016 and SQF Update
Schematron 2016 and SQF Update Schematron 2016 and SQF Update
Schematron 2016 and SQF Update
Octavian Nadolu
 

More from Octavian Nadolu (20)

Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
YAML Editing and Validation In Oxygen
YAML Editing and Validation In OxygenYAML Editing and Validation In Oxygen
YAML Editing and Validation In Oxygen
 
Leveraging the Power of AI and Schematron for Content Verification and Correc...
Leveraging the Power of AI and Schematron for Content Verification and Correc...Leveraging the Power of AI and Schematron for Content Verification and Correc...
Leveraging the Power of AI and Schematron for Content Verification and Correc...
 
OpenAPI/AsyncAPI Support in Oxygen
OpenAPI/AsyncAPI Support in OxygenOpenAPI/AsyncAPI Support in Oxygen
OpenAPI/AsyncAPI Support in Oxygen
 
Validating XML and JSON Documents Using Oxygen Scripting
 Validating XML and JSON Documents Using Oxygen Scripting Validating XML and JSON Documents Using Oxygen Scripting
Validating XML and JSON Documents Using Oxygen Scripting
 
OpenAPI Editing, Testing, and Documenting
OpenAPI Editing, Testing, and DocumentingOpenAPI Editing, Testing, and Documenting
OpenAPI Editing, Testing, and Documenting
 
Compare And Merge Scripts
Compare And Merge ScriptsCompare And Merge Scripts
Compare And Merge Scripts
 
Schematron For Non-XML Languages
Schematron For Non-XML LanguagesSchematron For Non-XML Languages
Schematron For Non-XML Languages
 
JSON and JSON Schema in Oxygen
JSON and JSON Schema in OxygenJSON and JSON Schema in Oxygen
JSON and JSON Schema in Oxygen
 
HTML5 Editing Validation
HTML5 Editing ValidationHTML5 Editing Validation
HTML5 Editing Validation
 
Documentation Quality Assurance with ISO Schematron
Documentation Quality Assurance with ISO SchematronDocumentation Quality Assurance with ISO Schematron
Documentation Quality Assurance with ISO Schematron
 
Introduction to Schematron
Introduction to SchematronIntroduction to Schematron
Introduction to Schematron
 
Hands on JSON
Hands on JSONHands on JSON
Hands on JSON
 
JSON Edit, Validate, Query, Transform, and Convert
JSON Edit, Validate, Query, Transform, and ConvertJSON Edit, Validate, Query, Transform, and Convert
JSON Edit, Validate, Query, Transform, and Convert
 
The Power Of Schematron Quick Fixes - XML Prague 2019
The Power Of Schematron Quick Fixes - XML Prague 2019The Power Of Schematron Quick Fixes - XML Prague 2019
The Power Of Schematron Quick Fixes - XML Prague 2019
 
Collaboration Tools to Help Improve Documentation Process
Collaboration Tools to Help Improve Documentation ProcessCollaboration Tools to Help Improve Documentation Process
Collaboration Tools to Help Improve Documentation Process
 
Schematron step-by-step
Schematron step-by-stepSchematron step-by-step
Schematron step-by-step
 
Exploring the new features in Oxygen XML Editor 20 - Development
Exploring the new features in Oxygen XML Editor 20 - DevelopmentExploring the new features in Oxygen XML Editor 20 - Development
Exploring the new features in Oxygen XML Editor 20 - Development
 
Comparing and Merging XML Documents in Visual Mode
Comparing and Merging XML Documents in Visual ModeComparing and Merging XML Documents in Visual Mode
Comparing and Merging XML Documents in Visual Mode
 
Schematron 2016 and SQF Update
Schematron 2016 and SQF Update Schematron 2016 and SQF Update
Schematron 2016 and SQF Update
 

Recently uploaded

Supercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdf
Supercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdfSupercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdf
Supercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdf
Access Innovations, Inc.
 
International Workshop on Artificial Intelligence in Software Testing
International Workshop on Artificial Intelligence in Software TestingInternational Workshop on Artificial Intelligence in Software Testing
International Workshop on Artificial Intelligence in Software Testing
Sebastiano Panichella
 
Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...
Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...
Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...
OECD Directorate for Financial and Enterprise Affairs
 
Sharpen existing tools or get a new toolbox? Contemporary cluster initiatives...
Sharpen existing tools or get a new toolbox? Contemporary cluster initiatives...Sharpen existing tools or get a new toolbox? Contemporary cluster initiatives...
Sharpen existing tools or get a new toolbox? Contemporary cluster initiatives...
Orkestra
 
Eureka, I found it! - Special Libraries Association 2021 Presentation
Eureka, I found it! - Special Libraries Association 2021 PresentationEureka, I found it! - Special Libraries Association 2021 Presentation
Eureka, I found it! - Special Libraries Association 2021 Presentation
Access Innovations, Inc.
 
0x01 - Newton's Third Law: Static vs. Dynamic Abusers
0x01 - Newton's Third Law:  Static vs. Dynamic Abusers0x01 - Newton's Third Law:  Static vs. Dynamic Abusers
0x01 - Newton's Third Law: Static vs. Dynamic Abusers
OWASP Beja
 
Acorn Recovery: Restore IT infra within minutes
Acorn Recovery: Restore IT infra within minutesAcorn Recovery: Restore IT infra within minutes
Acorn Recovery: Restore IT infra within minutes
IP ServerOne
 
Announcement of 18th IEEE International Conference on Software Testing, Verif...
Announcement of 18th IEEE International Conference on Software Testing, Verif...Announcement of 18th IEEE International Conference on Software Testing, Verif...
Announcement of 18th IEEE International Conference on Software Testing, Verif...
Sebastiano Panichella
 
Bitcoin Lightning wallet and tic-tac-toe game XOXO
Bitcoin Lightning wallet and tic-tac-toe game XOXOBitcoin Lightning wallet and tic-tac-toe game XOXO
Bitcoin Lightning wallet and tic-tac-toe game XOXO
Matjaž Lipuš
 
Obesity causes and management and associated medical conditions
Obesity causes and management and associated medical conditionsObesity causes and management and associated medical conditions
Obesity causes and management and associated medical conditions
Faculty of Medicine And Health Sciences
 
María Carolina Martínez - eCommerce Day Colombia 2024
María Carolina Martínez - eCommerce Day Colombia 2024María Carolina Martínez - eCommerce Day Colombia 2024
María Carolina Martínez - eCommerce Day Colombia 2024
eCommerce Institute
 
somanykidsbutsofewfathers-140705000023-phpapp02.pptx
somanykidsbutsofewfathers-140705000023-phpapp02.pptxsomanykidsbutsofewfathers-140705000023-phpapp02.pptx
somanykidsbutsofewfathers-140705000023-phpapp02.pptx
Howard Spence
 
Getting started with Amazon Bedrock Studio and Control Tower
Getting started with Amazon Bedrock Studio and Control TowerGetting started with Amazon Bedrock Studio and Control Tower
Getting started with Amazon Bedrock Studio and Control Tower
Vladimir Samoylov
 
Doctoral Symposium at the 17th IEEE International Conference on Software Test...
Doctoral Symposium at the 17th IEEE International Conference on Software Test...Doctoral Symposium at the 17th IEEE International Conference on Software Test...
Doctoral Symposium at the 17th IEEE International Conference on Software Test...
Sebastiano Panichella
 
Bonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdf
Bonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdfBonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdf
Bonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdf
khadija278284
 
Media as a Mind Controlling Strategy In Old and Modern Era
Media as a Mind Controlling Strategy In Old and Modern EraMedia as a Mind Controlling Strategy In Old and Modern Era
Media as a Mind Controlling Strategy In Old and Modern Era
faizulhassanfaiz1670
 
Gregory Harris' Civics Presentation.pptx
Gregory Harris' Civics Presentation.pptxGregory Harris' Civics Presentation.pptx
Gregory Harris' Civics Presentation.pptx
gharris9
 

Recently uploaded (17)

Supercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdf
Supercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdfSupercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdf
Supercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdf
 
International Workshop on Artificial Intelligence in Software Testing
International Workshop on Artificial Intelligence in Software TestingInternational Workshop on Artificial Intelligence in Software Testing
International Workshop on Artificial Intelligence in Software Testing
 
Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...
Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...
Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...
 
Sharpen existing tools or get a new toolbox? Contemporary cluster initiatives...
Sharpen existing tools or get a new toolbox? Contemporary cluster initiatives...Sharpen existing tools or get a new toolbox? Contemporary cluster initiatives...
Sharpen existing tools or get a new toolbox? Contemporary cluster initiatives...
 
Eureka, I found it! - Special Libraries Association 2021 Presentation
Eureka, I found it! - Special Libraries Association 2021 PresentationEureka, I found it! - Special Libraries Association 2021 Presentation
Eureka, I found it! - Special Libraries Association 2021 Presentation
 
0x01 - Newton's Third Law: Static vs. Dynamic Abusers
0x01 - Newton's Third Law:  Static vs. Dynamic Abusers0x01 - Newton's Third Law:  Static vs. Dynamic Abusers
0x01 - Newton's Third Law: Static vs. Dynamic Abusers
 
Acorn Recovery: Restore IT infra within minutes
Acorn Recovery: Restore IT infra within minutesAcorn Recovery: Restore IT infra within minutes
Acorn Recovery: Restore IT infra within minutes
 
Announcement of 18th IEEE International Conference on Software Testing, Verif...
Announcement of 18th IEEE International Conference on Software Testing, Verif...Announcement of 18th IEEE International Conference on Software Testing, Verif...
Announcement of 18th IEEE International Conference on Software Testing, Verif...
 
Bitcoin Lightning wallet and tic-tac-toe game XOXO
Bitcoin Lightning wallet and tic-tac-toe game XOXOBitcoin Lightning wallet and tic-tac-toe game XOXO
Bitcoin Lightning wallet and tic-tac-toe game XOXO
 
Obesity causes and management and associated medical conditions
Obesity causes and management and associated medical conditionsObesity causes and management and associated medical conditions
Obesity causes and management and associated medical conditions
 
María Carolina Martínez - eCommerce Day Colombia 2024
María Carolina Martínez - eCommerce Day Colombia 2024María Carolina Martínez - eCommerce Day Colombia 2024
María Carolina Martínez - eCommerce Day Colombia 2024
 
somanykidsbutsofewfathers-140705000023-phpapp02.pptx
somanykidsbutsofewfathers-140705000023-phpapp02.pptxsomanykidsbutsofewfathers-140705000023-phpapp02.pptx
somanykidsbutsofewfathers-140705000023-phpapp02.pptx
 
Getting started with Amazon Bedrock Studio and Control Tower
Getting started with Amazon Bedrock Studio and Control TowerGetting started with Amazon Bedrock Studio and Control Tower
Getting started with Amazon Bedrock Studio and Control Tower
 
Doctoral Symposium at the 17th IEEE International Conference on Software Test...
Doctoral Symposium at the 17th IEEE International Conference on Software Test...Doctoral Symposium at the 17th IEEE International Conference on Software Test...
Doctoral Symposium at the 17th IEEE International Conference on Software Test...
 
Bonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdf
Bonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdfBonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdf
Bonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdf
 
Media as a Mind Controlling Strategy In Old and Modern Era
Media as a Mind Controlling Strategy In Old and Modern EraMedia as a Mind Controlling Strategy In Old and Modern Era
Media as a Mind Controlling Strategy In Old and Modern Era
 
Gregory Harris' Civics Presentation.pptx
Gregory Harris' Civics Presentation.pptxGregory Harris' Civics Presentation.pptx
Gregory Harris' Civics Presentation.pptx
 

JSON Schema Design

  • 1. JSON Schema Design Mode © 2021 Syncro Soft SRL. All rights reserved. Octavian Nadolu, Syncro Soft octavian.nadolu@oxygenxml.com @OctavianNadolu
  • 2. JSON Schema Design Mode Agenda ● JSON Schema Support in Oxygen ● Create JSON Schema from Scratch ● Visualize and Edit Complex JSON Schemas ● Generate JSON Schema Documentation
  • 3. JSON Schema Design Mode JSON Schema JSON Schema is a vocabulary that allows you to annotate and validate JSON documents http://json-schema.org
  • 4. JSON Schema Design Mode JSON Schema Definition ● It is recommended to to have the schema definition on the first level "$schema": "http://json-schema.org/draft-07/schema#" ● JSON Schema used versions: – draft-04 – draft-06 – draft-07 – draft/2020-12
  • 5. JSON Schema Design Mode Question: Do you use JSON Schema, what versions?  No  Yes. Draft 4, 6 or 7  Yes. (2020-12)  Yes. Other (use the Questions pane to provide more details)
  • 6. JSON Schema Design Mode JSON Schema Support in Oxygen ● JSON Schema Editor - specialized editor with various editing features ● Validation against JSON Schema ● Editing based on JSON Schema ● Tools – Generate JSON Schema Documentation – Generate Sample JSON Files from a JSON Schema – Generate JSON Schema from a JSON File – XSD to JSON Schema Converter
  • 7. JSON Schema Design Mode JSON Schema Editor Design, develop, and edit JSON Schemas in: ● Text Editing Mode ● Author Editing Mode ● Schema Design Mode
  • 8. JSON Schema Design Mode Text Editing Mode Text editing mode is packed full of editing helpers ● JSON Outline View ● JSON-specific Syntax Highlighting ● Search and Find/Replace ● Drag and Drop ● Validation ● Format and Indent (Pretty Print)
  • 9. JSON Schema Design Mode Author Editing Mode Visual editing mode for JSON Schema documents: ● JSON Schema framework ● Content completion support ● Validation ● Specific CSS for rendering ● Create your own custom JSON framework
  • 10. JSON Schema Design Mode Schema Design Mode Visualize, edit, and understand JSON Schemas ● In-Place Component Editing ● Edit Properties ● Edit Annotations ● Schema Editing Actions ● Move Component Up/Down Actions ● Print/Save as Image
  • 11. JSON Schema Design Mode Create JSON Schema from Scratch ● JSON-based product catalog productID – the product identifier productName – the product name price – the selling price of the product tags – an optional set of tags { "productId": 1, "productName": "A green door", "price": 12.50, "tags": ["home","green"] }
  • 12. JSON Schema Design Mode Create JSON Schema from Scratch ● productID – The identifier for a product – Is a numeric value – Is required { "productId": 1, "productName": "A green door", "price": 12.50, "tags": ["home","green"] }
  • 13. JSON Schema Design Mode Create JSON Schema from Scratch ● productName – The name of the product – Is a string value – Is required { "productId": 1, "productName": "A green door", "price": 12.50, "tags": ["home","green"] }
  • 14. JSON Schema Design Mode Create JSON Schema from Scratch ● price – The price of the product – Is a number value – Is required – Must be greater that 0 { "productId": 1, "productName": "A green door", "price": 12.50, "tags": ["home","green"] }
  • 15. JSON Schema Design Mode Create JSON Schema from Scratch ● tags – Tags for the product – Is an array of string values – Is not required – At least one item in the array – Must be unique relative to one another { "productId": 1, "productName": "A green door", "price": 12.50, "tags": ["home","green"] }
  • 16. JSON Schema Design Mode JSON Schema for Product Catalog Easy to create a schema from scratch ● Use document template ● Edit the components in-place ● Edit the component properties in the in- place view ● Add new components using the append/insert contextual actions ● Change the documentation using the Annotation dialog box
  • 17. JSON Schema Design Mode Schema Diagram Components ● schema – defines the root schema component ● properties – defines a group of property components ● definitions – contains a group of definition components ● pattern properties – contains a group of pattern property components
  • 18. JSON Schema Design Mode Schema Diagram Components ● property – defines a property declaration ● definition – contains a declaration of a reusable definition ● pattern property – defines a pattern property ● additional properties – contains a definition for the additional properties
  • 19. JSON Schema Design Mode Schema Diagram Components- Arrays ● items – contains the array definition or definitions ● Items definition – definition for all array items ● Items array – an array of definitions, one for each item from the array ● additional items – contains a definition for the additional items from an array
  • 20. JSON Schema Design Mode Schema Diagram Components- Composition ● allOf – a list of definitions, data must be valid against all definitions ● oneOf – a list of definitions, data must be valid against exactly one of the definitions ● anyOf – a list of definitions, data must be valid against any definition ● not – a definition, data must not be valid against the given definition
  • 21. JSON Schema Design Mode Schema Diagram Components- Conditional ● if – contains a schema definition for the if condition ● then – contains a schema definition, data must be valid against it when the if condition is true ● else – contains a schema definition, data must be valid against it when the if condition is false
  • 22. JSON Schema Design Mode Question: How do you use/intend to use JSON Schema?  To define an API  In a database  To validate JSON documents  Other (use the Questions pane to provide more details)
  • 23. JSON Schema Design Mode Visualize and Edit Complex JSON Schemas
  • 24. JSON Schema Design Mode Visualize and Edit Complex JSON Schemas ● Smart navigation ● Zoom in/out ● Expand/Collapse components ● Go to references ● Go back and forward between components viewed or edited ● Validation markers
  • 25. JSON Schema Design Mode Generate JSON Schema Documentation ● Tool for generating detailed documentation for a JSON Schema file in HTML format
  • 26. JSON Schema Design Mode JSON Schema Documentation ● Generate documentation in one file or split into multiple files ● Option to include components details ● Display the diagram image for each component
  • 27. JSON Schema Design Mode Conclusion ● Complete support for JSON Schemas ● JSON Schema Editor ● Validate JSON with JSON Schema ● Editing based on JSON Schema ● Useful JSON Schema Tools
  • 28. JSON Schema Design Mode Future Plans ● Improve JSON Schema Diagram ● Better JSON Schema Documentation ● Quick fixes for JSON problems ● OpenAPI support ● YAML support
  • 29. JSON Schema Design Mode Question: What features are the most important for you?  JSON Schema Diagram  JSON Schema Documentation  Quick fixes for JSON problems  OpenAPI support  YAML support
  • 30. JSON Schema Design Mode Resources ● https://json-schema.org/ ● oxygenxml.com/json_schema_editor.html ● oxygenxml.com/doc/ug-editor/topics/editing-JSON-schema.html Video Demos: ● oxygenxml.com/demo/json_author.html ● oxygenxml.com/demo/json_tools.html ● oxygenxml.com/demo/json_validation.html ● oxygenxml.com/demo/json_editing.html ● oxygenxml.com/demo/json_query.html
  • 31. Questions? Octavian Nadolu Product Manager at Syncro Soft octavian.nadolu@oxygenxml.com Twitter: @OctavianNadolu LinkedIn: octaviannadolu