9

How do I parse YANG models in java ? I need to convert the yang model into a xml format.

I have already tried pyang. But since it is in python, it does not suite my requirement.

predi
  • 5,528
  • 32
  • 60
Keshava
  • 702
  • 1
  • 7
  • 20
  • I finally used the Yangtools from OpenDaylight project. See https://wiki.opendaylight.org/view/Main_Page. – Keshava Jul 25 '14 at 07:38

3 Answers3

5

Yes, that's true.

Use yang-parser-impl from Open daylight. It provides a yang parser and returns a set of parsed modules. Which you can further query to get more node objects.

Sathya
  • 82
  • 5
  • 1
    yes, indeed.. following is the code.. `YangParserImpl parser = new YangParserImpl(); Set modules = parser.parseYangModels(new File(file), new File(file).getParentFile()); ` – Keshava Jul 25 '14 at 07:49
1

The above API is valid for previous versions. Use the following API for the current version

    YangTextSchemaContextResolver yangContextResolver = YangTextSchemaContextResolver.create("yang-context-resolver");

    yangContextResolver.registerSource(new URL("file:///home/ABA/XXX/Workspaces/ABC/X/config.yang"));
    yangContextResolver.registerSource(new URL("file:///home/ABC/XXX/Workspaces/ABC/X/XXX-YY.yang"));


    Optional<SchemaContext> sc = yangContextResolver.getSchemaContext();
0

you can use Yangkit parser.

maven dependency

<dependency>
    <groupId>io.github.yang-central.yangkit</groupId>
    <artifactId>yangkit-parser</artifactId>
    <version>1.1.2</version>
</dependency>

YangSchemaContext schemaContext = YangYinParser.parse("yangdir");
schemaContext.validate();
frank
  • 1