2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 * Meta model of YANG model as was defined in RFC6020 and extracted by analysis
13 * Existence of meta-model allows for better evolution of YANG language as it evolves
14 * and allows for better support of different serializations of YANG model.
17 * YANG source is defined as sequence of statement in
18 * <a href="https://tools.ietf.org/html/rfc6020#section-6.3">RFC6020, Section 6.3</a>.
19 * this model is also correct for YIN, which is XML serialisation of YANG source.
21 * Statements are represented as instances / subclasses of {@link org.opendaylight.yangtools.yang.model.api.meta.ModelStatement}
22 * concept and its two subconcepts which are:
25 * {@link org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement} - this contains navigable
26 * set of statements model as they was defined / present in original processed
29 * <li>{@link org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement} - navigable set of statements
30 * which represents effective model of parsed YANG sources, which is derived by rules
31 * present in YANG specification and/or was introduced in form of extensions.
35 * Clear separation of declared / effective model is needed, since statement definition also
36 * contains information how effective model is computed and there is no one to one mapping
37 * between declared and effective model thanks to statements such as {@code uses},
38 * {@code augment},{@code deviate},{@code refine}.
40 * <h2>Identifiers and Namespaces</h2>
41 * Effective model of YANG has several identifier types and namespaces, which behaves differently
42 * and are mostly used during processing data and/or during computing effective (semantic) model.
44 * Common abstraction for various types of namespaces is {@link org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace}
45 * from which concrete effective model namespaces are derived.
48 package org.opendaylight.yangtools.yang.model.api.meta;