- NONE("none", GrammarFactory.newInstance().createSchemaLessGrammars()),
- BUILTIN("builtin", createBuiltinGrammar()),
- BASE_1_1("base:1.1", createNetconfGrammar());
+ NONE("none") {
+ @Override
+ Grammars createGrammar() {
+ return GrammarFactory.newInstance().createSchemaLessGrammars();
+ }
+ },
+ BUILTIN("builtin") {
+ @Override
+ Grammars createGrammar() {
+ try {
+ return GrammarFactory.newInstance().createXSDTypesOnlyGrammars();
+ } catch (EXIException e) {
+ throw new IllegalStateException("Failed to create builtin grammar", e);
+ }
+ }
+ },
+ BASE_1_1("base:1.1") {
+ @Override
+ Grammars createGrammar() {
+ final ByteSource source = Resources.asByteSource(EXISchema.class.getResource("/rfc6241.xsd"));
+ try (InputStream is = source.openStream()) {
+ final Grammars g = GrammarFactory.newInstance().createGrammars(is);
+ g.setSchemaId(getOption());
+ return g;
+ } catch (EXIException | IOException e) {
+ throw new IllegalStateException("Failed to create RFC6241 grammar", e);
+ }
+ }
+ };