<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rdf:RDF[
	<!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
	<!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'>
	<!ENTITY owl 'http://www.w3.org/2002/07/owl#'>
	<!ENTITY swivt 'http://semantic-mediawiki.org/swivt/1.0#'>
	<!ENTITY wiki 'http://wikibase.nl/Special:URIResolver/'>
	<!ENTITY category 'http://wikibase.nl/Special:URIResolver/Category-3A'>
	<!ENTITY property 'http://wikibase.nl/Special:URIResolver/Property-3A'>
	<!ENTITY wikiurl 'https://open-csp.org/'>
]>

<rdf:RDF
	xmlns:rdf="&rdf;"
	xmlns:rdfs="&rdfs;"
	xmlns:owl ="&owl;"
	xmlns:swivt="&swivt;"
	xmlns:wiki="&wiki;"
	xmlns:category="&category;"
	xmlns:property="&property;">

	<owl:Ontology rdf:about="https://open-csp.org/Special:ExportRDF/DevOps-3ADoc/FlexForm/2.1/Form_options/JSON">
		<swivt:creationDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2026-04-30T03:25:38+02:00</swivt:creationDate>
		<owl:imports rdf:resource="http://semantic-mediawiki.org/swivt/1.0"/>
	</owl:Ontology>
	<swivt:Subject rdf:about="http://wikibase.nl/Special:URIResolver/DevOps-3ADoc/FlexForm/2.1/Form_options/JSON">
		<rdfs:label>JSON</rdfs:label>
		<rdfs:isDefinedBy rdf:resource="https://open-csp.org/Special:ExportRDF/DevOps-3ADoc/FlexForm/2.1/Form_options/JSON"/>
		<swivt:page rdf:resource="https://open-csp.org/DevOps-3ADoc/FlexForm/2.1/Form_options/JSON"/>
		<swivt:wikiNamespace rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">50000</swivt:wikiNamespace>
		<swivt:wikiPageContentLanguage rdf:datatype="http://www.w3.org/2001/XMLSchema#string">en</swivt:wikiPageContentLanguage>
		<property:Class rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Doc</property:Class>
		<property:Doc_parent rdf:resource="&wiki;DevOps-3ADoc/FlexForm/2.1/Form_options"/>
		<property:Doc_sort_order rdf:datatype="http://www.w3.org/2001/XMLSchema#double">10</property:Doc_sort_order>
		<property:Doc_subject rdf:resource="&wiki;DevOps-3ADoc/FlexForm"/>
		<property:Doc_synopsis rdf:datatype="http://www.w3.org/2001/XMLSchema#string">How to use a JSON schema to render a form</property:Doc_synopsis>
		<property:Doc_target_group rdf:datatype="http://www.w3.org/2001/XMLSchema#string">User</property:Doc_target_group>
		<property:Doc_title_with_versions rdf:datatype="http://www.w3.org/2001/XMLSchema#string">JSON (2.1,2.5)</property:Doc_title_with_versions>
		<property:Subject_version rdf:datatype="http://www.w3.org/2001/XMLSchema#string">2.1</property:Subject_version>
		<property:Subject_version rdf:datatype="http://www.w3.org/2001/XMLSchema#string">2.5</property:Subject_version>
		<property:Title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">JSON</property:Title>
		<property:Has_query rdf:resource="&wiki;DevOps-3ADoc/FlexForm/2.1/Form_options/JSON-23_QUERY06bdf7a0ec43667e081e8509700ccafb"/>
		<swivt:wikiPageCreationDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2023-02-27T18:57:24Z</swivt:wikiPageCreationDate>
		<property:Creation_date-23aux rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2460003.2898611</property:Creation_date-23aux>
		<property:Display_title_of rdf:datatype="http://www.w3.org/2001/XMLSchema#string">JSON</property:Display_title_of>
		<swivt:wikiPageModificationDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2025-08-26T07:51:57Z</swivt:wikiPageModificationDate>
		<property:Modification_date-23aux rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2460913.8277431</property:Modification_date-23aux>
		<swivt:wikiPageSortKey rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Doc/FlexForm/2.1/Form options/JSON</swivt:wikiPageSortKey>
		<property:Page_creator rdf:resource="&wiki;User-3ACharlot"/>
		<property:Page_author rdf:resource="&wiki;User-3AMaintenance_script"/>
		<property:Page_author rdf:resource="&wiki;User-3ACharlot"/>
		<property:Page_author rdf:resource="&wiki;User-3AFd4138e7-2D8b46-2D4c8f-2D99bf-2Dd4b738ebc295"/>
		<property:Page_ID rdf:datatype="http://www.w3.org/2001/XMLSchema#double">396</property:Page_ID>
		<property:Image_alt_texts rdf:datatype="http://www.w3.org/2001/XMLSchema#string">FlexForm JSON Schema explained</property:Image_alt_texts>
		<property:Image_alt_texts rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Rendered example JSON data</property:Image_alt_texts>
		<property:Image_links rdf:datatype="http://www.w3.org/2001/XMLSchema#string">FlexForm_JSON_Schema_explained2.png</property:Image_links>
		<property:Image_links rdf:datatype="http://www.w3.org/2001/XMLSchema#string">CspParameterDefinitions.png</property:Image_links>
		<property:Image_links rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Rendered_example_JSON_data.png</property:Image_links>
		<property:Parsed_text rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Introduction 
 With the json and json-type argument for a form you can use a JSON schema version to render a FlexForm.
It currently only supports a one object deep schema, except when using instances. Use it together with the _edit or _create json options if you want to do an all JSON layout.
 
 json-type argument 
 The value for the json argument depends on the json-type. json-type can be "string", "url" or "title".
 
  json-type="string" 
 Then FlexForm expects the json argument to be the actual JSON Schema
 
  json-type="url" 
 Then FlexForm expects the json argument to a full url to the actual JSON Schema
 
  json-type="title" 
 Then FlexForm expects the json argument to be a page in the Wiki holding the actual JSON Schema
 
 json argument 
 As described above it can be three different ways of giving FlexForm the JSON Schema.
 
 FlexForm JSON Schema variant 
 Here is where we explain what JSON schema variant FlexForm understands.
 
   FlexForm JSON Schema explained 
 The Schema basically uses a JSON Schema to render a form, but has certain extra arguments allowing to add all FlexForm input type options.
 In this example we will also use instances.
  Title and description are optional and we start with a type of object .
 FlexForm will then always expect a named new object with properties explaining what needs to be done. In our example it is an instance definition. ( see instances for more information ).
 Since instance is another object holding the template for the instance, the type again is set to object , but we do have some additional Instance arguments added. Like format , name and default-content .
  htmlElement  is not instance specific and tells FlexForm what kind of htmlElement you want it to render. If you do not add this htmlElement , then FlexForm will look at the " type " argument. If it is a string , a text input field will be rendered, a number/integer then a number input field will be rendered. Adding htmlElement will overide the type element. There is also a  inputType , telling FlexForm exactly what element to render. So htmlElement can be an input and inputType can be checkbox, to render checkboxes.
 Back to our example. The properties for the instance are the actual fields that need to be rendered.
 Always starting with a named object, this will also become the  name argument of the input field .
 Looking at the select input (named formfieldType in the example). Notice the type is still string, as the values, defined by enum, are strings.
 Lastly, the instance object also has a " required " argument. There is where you define what properties will become a required field.
 Since in this example the instance format is set to JSON and the default-content is a WSSlot query to get JSON from a slot on a page in the wiki, we can actually use this JSON Schema to render a form that will be able to edit JSON directly. In our example a JSON like the image below.
 FlexForm will take all the entries from the data JSON and render the form. See Image 3 .
 
   CspParameterDefinitions JSON data 
 Here's an image of what FlexForm renders from the Data and the Schema.
 No styling has been added to this example, so it looks a bit condensed.
 
   Rendered example JSON data 
 No if you would add an _edit to the form like below and the data JSON is stored on a page called "CspParameterDefinitions" and also add a submit button. You can now edit JSON directly from FlexForm.
 
   &lt; _edit  target = "CspParameterDefinitions"  format = "json"  template = "jsonk|CspParameterDefinitions"  formfield = "myInstance"  /&gt; 
 &lt; input  type = "submit"  value = "Save"  /&gt; 
 
 Full example using the schema and the edit
 
   &lt; form  json = "CspParameterDefinitionsScheme"  json-type = "title" &gt; 
  &lt; _edit  target = "CspParameterDefinitions"  format = "json"  template = "jsonk|CspParameterDefinitions"  formfield = "myInstance"  /&gt; 
  &lt; input  type = "submit"  value = "Save"  /&gt; 
 &lt;/ form &gt; 
 
 summary 
 If you have JSON data. Define a form describing the JSON data in a schema. Then let FlexForm render the form allowing you to edit JSON data directly.</property:Parsed_text>
	</swivt:Subject>
	<swivt:Subject rdf:about="http://wikibase.nl/Special:URIResolver/DevOps-3ADoc/FlexForm/2.1/Form_options/JSON-23_QUERY06bdf7a0ec43667e081e8509700ccafb">
		<swivt:masterPage rdf:resource="&wiki;DevOps-3ADoc/FlexForm/2.1/Form_options/JSON"/>
		<swivt:wikiNamespace rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">50000</swivt:wikiNamespace>
		<property:Query_depth rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0</property:Query_depth>
		<property:Query_format rdf:datatype="http://www.w3.org/2001/XMLSchema#string">plainlist</property:Query_format>
		<property:Query_size rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</property:Query_size>
		<property:Query_string rdf:datatype="http://www.w3.org/2001/XMLSchema#string">[[:DevOps:Doc/FlexForm/2.1/Form options/JSON]]</property:Query_string>
		<swivt:wikiPageSortKey rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Doc/FlexForm/2.1/Form options/JSON# QUERY06bdf7a0ec43667e081e8509700ccafb</swivt:wikiPageSortKey>
	</swivt:Subject>
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#creationDate" />
	<owl:ObjectProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#page" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiNamespace" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageContentLanguage" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AClass" />
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_parent" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_sort_order" />
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_subject" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_synopsis" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_target_group" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_title_with_versions" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ASubject_version" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ATitle" />
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AHas_query" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageCreationDate" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ACreation_date-23aux" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADisplay_title_of" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageModificationDate" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AModification_date-23aux" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageSortKey" />
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3APage_creator" />
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3APage_author" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3APage_ID" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AImage_alt_texts" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AImage_links" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AParsed_text" />
	<owl:ObjectProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#masterPage" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AQuery_depth" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AQuery_format" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AQuery_size" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AQuery_string" />
	<!-- Created by Semantic MediaWiki, https://www.semantic-mediawiki.org/ -->
</rdf:RDF>