Package org.opendaylight.yangtools.yang.data.api.schema
package org.opendaylight.yangtools.yang.data.api.schema
Definition of normalized YANG DOM Model. Normalized DOM Model brings more direct mapping between YANG Model, DOM
representation of data.
Normalized DOM Model
Node Types
-
NormalizedNode
- Base type representing a node in a tree structure; all nodes are derived from it, it contains a leaf identifier and a value.-
DataContainerNode
- Node which contains multiple leafs; it does not have a direct representation in the YANG syntax.-
ContainerNode
- Node, which represents a leaf which can occur only once per parent node; it contains multiple child leaves and maps to the container statement in YANG. -
MapEntryNode
- Node which represents a leaf, which can occur multiple times; a leave is uniquely identified by the value of its key. A MapEntryNode may contain multiple child leaves. MapEntryNode maps to the instance of list in YANG. -
UnkeyedListEntryNode
- Node which represents a leaf, which can occur multiple times; a leave is uniquely identified by the value of its key. A MapEntryNode may contain multiple child leaves. MapEntryNode maps to the instance of list in YANG. -
ChoiceNode
- Node which represents a leaf, which occurs mostly once per parent node, but possible values could have different types. Maps to choice statement. Types maps to the case statements for that choice. -
AugmentationNode
- Node which represents a leaf, which occurs mostly once per parent node.
-
-
LeafNode
- Node which represents a leaf, which occurs mostly once per parent node. Contains simple value. -
LeafSetEntryNode
- Node which represents a leaf, which type could occurs multiple times per parent node. Maps to to the instances of leaf-list in YANG. -
LeafSetNode
- Special node, which can occur only once per parent node; its leaves are LeafSetEntryNode nodes of specified type. Maps into the leaf-list in YANG. -
MapNode
- Special node, which can occur only once per parent node; its leaves are MapEntryNode nodes.-
UserMapNode
- Special node, which can occur only once per parent node; its leaves are MapEntryNode nodes.
-
-
UnkeyedListNode
- Special node, which can occur only once per parent node; its leaves are MapEntryNode nodes.
-
Tree / subtree structure
Grammar representation
YangInstanceIdentifier
=YangInstanceIdentifier.PathArgument
*YangInstanceIdentifier.PathArgument
=YangInstanceIdentifier.NodeIdentifier
|YangInstanceIdentifier.NodeIdentifierWithPredicates
|YangInstanceIdentifier.NodeWithValue
|YangInstanceIdentifier.AugmentationIdentifier
TreeRoot =DataContainerNode
DataContainerNode
= (LeafNode
|ChoiceNode
|AugmentationNode
|MapNode
|LeafSetNode
)* ContainerDataNode =YangInstanceIdentifier.NodeIdentifier
DataContainerNode
LeafNode
=YangInstanceIdentifier.NodeIdentifier
SimpleValueAugmentationNode
=YangInstanceIdentifier.AugmentationIdentifier
DataContainerNode
MapNode
=YangInstanceIdentifier.NodeIdentifier
MapEntryNode
MapEntryNode
=YangInstanceIdentifier.NodeIdentifierWithPredicates
DataContainerNode
// Special nodesLeafSetNode
=YangInstanceIdentifier.NodeIdentifier
LeafSetEntryNode
*ChoiceNode
=YangInstanceIdentifier.NodeIdentifier
DataContainerNode
LeafSetEntryNode
=YangInstanceIdentifier.NodeWithValue
SimpleValue
The resulting tree organization is following:
- (DataContainerNode)
- (0..n) LeafNode
- (0..n) LeafSetNode
- (0..n) LeafSetEntryNode
- (0..n) ContainerNode
- (Same as DataContainerNode)
- (0..n) ContainerNode
- (Same as DataContainerNode)
- (0..n) MapNode
- (0..n) MapEntryNode
- (Same as DataContainerNode)
- (0..n) MapEntryNode
- (0..n) AugmentationNode
- (Same as DataContainerNode)
Ordering of child nodes
Ordering of child nodes is not enforced by this API definition, unless explicitly stated by subclasses ofOrderedNodeContainer
which marks nodes with semantic constrain to preserve user-supplied ordering.
Clients should not expect any specific ordering of child nodes for interfaces
from this package which does not extend
OrderedNodeContainer
,
since implementations are not required to have well-defined order, which
allows for more efficient implementations. If such ordering is required by
clients for serialization / debugability it SHOULD be done externally in
code using these interfaces.
-
ClassDescriptionAnydataNode<V>A NormalizedNode holding the contents of an
anydata
node in some object model.AnyxmlNode<V>A NormalizedNode holding the contents of ananyxml
node in some object model.Data instance ofaugment
associated with parent node.Node representing data instance ofchoice
.Data subtree with cardinality 0..1 in the context of parent node.Marker interface for direct children ofDataContainerNode
.Abstract node which does not have value but contains validDataContainerChild
nodes.ANormalizedNodeContainer
which contains directly-addressable children.An AnyxmlNode with data inDOMSource
format.Entry describing a duplicate found in aNormalizedNode
tree.A NormalizedNode holding a value in some foreign object model.LeafNode<T>Leaf node with multiplicity 0..1.Leaf node with multiplicity 0...n.LeafSetNode<T>Node representing set of simple leaf nodes.Instance of Map entry, this node does not contains value, but child nodes.Containment node, which containsMapEntryNode
of the same type, which may be quickly retrieved using a key.Marker interface for nodes, which are mixins - their content belongs to parent node and in serialized form this node does not exists, but it's children are present.Ananydata value object model
which can be normalized toNormalizedAnydata
when provided with proper context.The contents of ananydata
node in a normalized format.Node which is normalized according to the YANG schema is identifiable by aYangInstanceIdentifier
.NormalizedNodeContainer<V extends NormalizedNode>Node which is not leaf, but has childNormalizedNode
s as its value.A set of utility methods for interacting withNormalizedNode
objects.OrderedNodeContainer<V extends NormalizedNode>ANormalizedNodeContainer
which preserves user supplied ordering and allows addressing of child elements by position.Marker interfaces forNormalizedNodeContainer
s which have distinct ordering requirements.Marker interface for NormalizedNodeContainer implementations which correspond toordered-by system
.Marker interface for NormalizedNodeContainer implementations which correspond toordered-by user
.LeafSetNode
which does not preserve user-supplied ordering.MapNode
which additionally preserves user-supplied ordering.List entry node, which does not have value, but child nodes.Containment node, which containsUnkeyedListEntryNode
of the same type, which may be quickly retrieved using key.LeafSetNode
which preserves user-supplied ordering.MapNode
which additionally preserves user-supplied ordering.ValueNode<V>Interface holding the common trait ofLeafSetEntryNode
andLeafNode
, which both hold a value.