Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * Copyright (c) 2012, Francis Galiegue <fgaliegue@gmail.com>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the Lesser GNU General Public License as
  * published by the Free Software Foundation, either version 3 of the
  * License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * Lesser GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package com.github.fge.jsonschema.examples;
Fourth example: schema Utils.loading via URIs, and subschema addressing

link to source code

link to schema

This demonstrates two capabilities of com.github.fge.jsonschema.main.JsonSchemaFactory:

  • the ability to Utils.load schemas via URIs;
  • the ability to address subschemas in a schema.

The implementation provides a resource scheme which allows to Utils.load JSON from files in the classpath. It is strictly equivalent to calling java.lang.Class.getResourceAsStream(java.lang.String).

The URI used is resource:/org/eel/kitchen/jsonschema/examples/fstab-sub.json. Because we want to validate against the fstab subschema, we use com.github.fge.jsonschema.main.JsonSchemaFactory.getJsonSchema(java.lang.String) to Utils.load the actual schema; the URI used as an argument also has a JSON Pointer as a fragment.

Files validated, and the validation outputs, are the same as for Example2.

public final class Example4
    private static final String SCHEMA_URI
        = "resource:/com/github/fge/jsonschema/examples/fstab-sub.json#/fstab";
    public static void main(final String... args)
        throws IOExceptionProcessingException
    {
        final JsonNode good = Utils.loadResource("/fstab-good.json");
        final JsonNode bad = Utils.loadResource("/fstab-bad.json");
        final JsonNode bad2 = Utils.loadResource("/fstab-bad2.json");
        final JsonSchemaFactory factory = JsonSchemaFactory.byDefault();
        final JsonSchema schema = factory.getJsonSchema();
        ProcessingReport report;
        report = schema.validate(good);
        ..println(report);
        report = schema.validate(bad);
        ..println(report);
        report = schema.validate(bad2);
        ..println(report);
    }
New to GrepCode? Check out our FAQ X