public static function validateDataEditFilter($editor, $text, $section, &$error, $summary)
 {
     // I can't remember if jsondataobj needs to be a singleton/global, but
     // will chance calling a new instance here.
     $title = $editor->getTitle();
     $ns = $title->getNamespace();
     if (!JsonData::isJsonDataNeeded($ns)) {
         return true;
     }
     $jsondataobj = new JsonData($title);
     $json = JsonData::stripOuterTagsFromText($text);
     try {
         $schematext = $jsondataobj->getSchemaText();
     } catch (JsonDataException $e) {
         $schematext = $jsondataobj->readJsonFromPredefined('openschema');
         $error = "<b>" . wfMessage('jsondata-servervalidationerror') . "</b>: ";
         $error .= wfMessage('jsondata-invalidjson');
     }
     $data = json_decode($json, true);
     if (is_null($data)) {
         $error = "<b>" . wfMessage('jsondata-servervalidationerror') . "</b>: ";
         $error .= wfMessage('jsondata-invalidjson');
         return true;
     }
     $schema = json_decode($schematext, true);
     $rootjson = new JsonTreeRef($data);
     $rootjson->attachSchema($schema);
     try {
         $rootjson->validate();
     } catch (JsonSchemaException $e) {
         $error = "<b>" . wfMessage('jsondata-servervalidationerror') . "</b>: ";
         $error .= htmlspecialchars($e->getMessage());
     }
     return true;
 }
 public function getJsonRef()
 {
     if (is_null($this->jsonref)) {
         $json = JsonData::stripOuterTagsFromText($this->getEditorText());
         $schematext = $this->getSchemaText();
         $data = json_decode($json, true);
         $schema = json_decode($schematext, true);
         $this->jsonref = new JsonTreeRef($data);
         $this->jsonref->attachSchema($schema);
     }
     return $this->jsonref;
 }