/* * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ /** * 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

* *
 *  {@link org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier} =
 *    {@link org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument}*
 *  {@link org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument} =
 *    {@link org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier}
 *    | {@link org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates}
 *    | {@link org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue}
 *    | {@link org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier}
 *
 *  TreeRoot = {@link org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode}
 *  {@link org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode} =
 *    ( {@link org.opendaylight.yangtools.yang.data.api.schema.LeafNode}
 *     | {@link org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode}
 *     | {@link org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode}
 *     | {@link org.opendaylight.yangtools.yang.data.api.schema.MapNode}
 *     | {@link org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode})*
 *  ContainerDataNode =
 *    {@link org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier}
 *    {@link org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode}
 *
 *  {@link org.opendaylight.yangtools.yang.data.api.schema.LeafNode} =
 *    {@link org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier} SimpleValue
 *  {@link org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode} =
 *    {@link org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier}
 *    {@link org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode}
 *  {@link org.opendaylight.yangtools.yang.data.api.schema.MapNode} =
 *    {@link org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier}
 *    {@link org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode}
 *  {@link org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode} =
 *    {@link org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates}
 *    {@link org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode}
 *
 *  // Special nodes
 *  {@link org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode} =
 *    {@link org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier}
 *    {@link org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode}*
 *  {@link org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode} =
 *    {@link org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier}
 *    {@link org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode}
 *  {@link org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode} =
 *    {@link org.opendaylight.yangtools.yang.data.api.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 * {@link org.opendaylight.yangtools.yang.data.api.schema.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 * {@link org.opendaylight.yangtools.yang.data.api.schema.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. * */ package org.opendaylight.yangtools.yang.data.api.schema;