Skip navigation links

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

See: Description

Package org.opendaylight.yangtools.yang.data.api.schema Description

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

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 SimpleValue
  AugmentationNode =
    YangInstanceIdentifier.AugmentationIdentifier
    DataContainerNode
  MapNode =
    YangInstanceIdentifier.NodeIdentifier
    MapEntryNode
  MapEntryNode =
    YangInstanceIdentifier.NodeIdentifierWithPredicates
    DataContainerNode

  // Special nodes
  LeafSetNode =
    YangInstanceIdentifier.NodeIdentifier
    LeafSetEntryNode*
  ChoiceNode =
    YangInstanceIdentifier.NodeIdentifier
    DataContainerNode
  LeafSetEntryNode =
    YangInstanceIdentifier.NodeWithValue SimpleValue
 
The resulting tree organization is following:

Ordering of child nodes

Ordering of child nodes is not enforced by this API definition, unless explicitly stated by subclasses of OrderedNodeContainer 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.

Skip navigation links

Copyright © 2019 OpenDaylight. All rights reserved.