6. Nodes
6.1
Common characteristics of Nodes
Nodes are the entities which can be manipulated by management actions carried over the OMA DM protocol. A Node can be as small as an integer or a large and complex like a background picture or screen saver. The OMA DM protocol is agnostic about the contents, or values, of the Nodes and treats the Leaf Node values as opaque data.
An Interior Node can have an unlimited number of child Nodes linked to it in such a way that the complete collection of all Nodes in a management database forms a tree structure. Each Node in a tree MUST have a unique URI.
Each Node has properties associated with it; these properties are defined in 7.1. All properties, except the ACL, are valid only for the Node to which they are associated.
6.2 Details of the Management Tree
As mentioned before the complete structure of all Nodes and the root (the device itself) forms a tree. DM Servers can explore the structure of the tree by using the GET command. If the accessed Node is an Interior Node, a list of all child Node names is returned. If the Interior Node has no children an empty list of child Node names is returned, e.g. <Data/>. If the Node is a Leaf Node it MUST have a value, which could be null,and this value is returned. A DM Server MAY maintain information about its current position in the Management Tree.
Nodes with the Format property set to nodeare defined as Interior Nodes. Nodes that are not Interior Nodes are defined as Leaf Nodes. Interior Nodes can have 0 or more children, Leaf Nodes cannot have children.
The Management Tree can be extended at run-time. This is done with the Add or Replace command and both new Interior Nodes and new Leaf Nodes can be created. The parent of any new Node MUST be an Interior Node. The device itself can also extend the Management Tree. This could happen as a result of user input or by attaching the some kind of accessory to the device.
6.2.1 Addressing object values
Node values are addressed by presenting a relative URI for the requested Node. The base URI [RFC2396] MUST be the root of the Management Tree in the device. If a valid URI is presented along with a command for which the current Server
Identifier has sufficient access rights, the command MUST be executed. The client MUST respond with an appropriate status code. If the command results in a value that is to be sent back to the server, then this value MUST be part of the response. The type of the value is returned as part of the meta information as specified in [AMT]. Example:
The following Get command:
<Get>
<CmdID>4</CmdID> <Item>
<Target>
<LocURI>Vendor/Ring_signals/Default_ring</LocURI> </Target> </Item> </Get>
could receive a response like this:
<Results>
<CmdRef>4</CmdRef> <CmdID>7</CmdID> <Item>
<Data>MyOwnRing</Data>