• No results found

OBJECT ELEMENT (DEFINITION)

APPENDIX I – REFERENCE: DATA MODEL XML SCHEMA

I.9 OBJECT ELEMENT (DEFINITION)

This object element is used to define a new object, or to modify the definition of an existing object. Objects can be single-instance or multi-instance; the latter is often referred to as a table. It should not be confused with the object element that appears within profiles, which is an object reference rather than an object definition.

See Section A.2.8.1/TR-106 for details of how tables are represented. Possible parent elements include:

document/model (I.8) document/component (I.6)

Table 19 lists the attributes that are available within the object element. Table 19 – DM definition-based object attributes

Attribute Type Use Description

name restricted

xs:NCName

optional

29 The name of a new object being defined,

which includes its parent object path as

29

(256) prefix (maximum length 256). This is represented by the concatenation of each successive parent object name separated by a dot (See Section 3.1/TR-106 [3]). Note – Each dot-separated portion of the overall name has the same format as xs:NCName except that dots are not permitted; i.e. must start with a letter or “_” and subsequent characters can also include digits and connector characters such as underscore and dash.

Each object name is unique within its parent model or parent component. If the object is a table (see maxEntries), the final part of the name will be "{i}." The name must in addition follow the vendor-specific object name requirements of Section 3.3/TR-106 [3].

This attribute is only used when defining a new object. When modifying an existing object, the base attribute is used instead.

base restricted

xs:NCName (256)

optional The name of an existing object to be

modified, which includes its parent object path.

This attribute is only used when modifying an existing object. When defining a new object, the name attribute is used instead.

access One of:

readOnly readWrite

required Whether object instances can be added or

deleted by the ACS. Adding or deleting instances is meaningful only for a multi- instance (table) object.

minEntries xs:nonNegativ

eInteger

required The minimum number of instances of this

object.

minEntries must be less than or equal to maxEntries (all values are regarded as being less than "unbounded").

maxEntries xs:positiveInte required The maximum number of instances of this

ger or

“unbounded”

object.

minEntries and maxEntries allow the object to be placed into one of three categories:

minEntries=0, maxEntries=1 : single-instance object which might not be allowed to exist, e.g. because only one of it and another object can exist at the same time

minEntries=1, maxEntries=1 : single-instance object that is always allowed to exist

all other cases : object is a table

numEntriesParameter string(256) optional The name of the parameter (in the parent

object) that contains the number of entries in the table.

This attribute must be specified for a table with a variable number of entries, i.e. for which maxEntries is greater than

minEntries ("unbounded" is regarded as being greater than all values)

enableParameter string(256) optional The name of the parameter (in each table

entry) that enables/disables that table entry.

This attribute must be specified for a table in which the ACS can create entries (i.e. access is readWrite) and which has one or more uniqueKey elements that define functional keys.

status One of:

current deprecated obsoleted deleted

optional The status of the object.

The values deprecated and obsoleted are as described in Section 2.2/TR-106 [3]; deleted indicates the element is no longer present in the current Data Model; current indicates the element is present in the current Data Model.

The default is current if not specified. New object definitions are usually current, in which case this attribute can be omitted.

id xs:token(256) optional Corresponds with the identifier from

import of these MIBs. Rarely used. The following example defines a single-instance object; maxEntries is one.

<object name="Device.DeviceInfo." access="readOnly" minEntries="1" maxEntries="1">

… </object>

The following example defines a multi-instance object (i.e. a table); the object name ends in “{i}.” and maxEntries is greater than one.

<object name="Device.Ethernet.Link.{i}." access="readWrite"

numEntriesParameter="LinkNumberOfEntries" enableParameter="Enable" minEntries="0" maxEntries="unbounded">

… </object>

Table 20 lists the child elements allowed within an object. The order that these elements appear in the table is the same order, if present, that they must appear within an object definition (with the exception that parameter elements can appear before or after component elements).

Table 20 – DM definition-based object sub-elements

Element Multiplicity Description

description 0 or 1 The object’s description (I.2).

uniqueKey 0 or more Specifies the unique key for a table (I.9.1).

This element is only permitted within table objects (see

maxEntries in Table 19); i.e. not permitted within

single-instance objects.

The parameters referenced within each uniqueKey element together constitute a unique key.

Keys can be functional or non-functional (I.9.1). For a non- functional key, or if the table has no enableParameter, the uniqueness requirement always applies. For a functional key, and if the table has an enableParameter, the uniqueness requirement applies only to enabled table entries.

component 0 or more The components that are referenced (included) by the

object (I.7).

I.9.1

Object uniqueKey Element

The uniqueKey element is used to specify the unique key for a multi-instance object (table). A table can have zero or more uniqueKeys, where each unique key consists of references to one or more of the table’s child parameters.

Possible parent elements include:

document/[component|model]/object (I.9)

Table 21 lists the attributes that are available within the object’s uniqueKey element. Table 21 – DM uniqueKey attributes

Attribute Type Use Description

functional xs:boolean optional The default is true if not specified.

Indicates whether the key is a functional (true) or non- functional (false) key (see Section A.2.8.1/TR-106 [3]). Table 22 lists the child elements allowed within an object’s uniqueKey.

Table 22 – DM uniqueKey sub-elements

Element Multiplicity Description

parameter 1 or more Reference to a parameter definition within the object (Table 23).

Table 23 lists the attributes that are available within the unique key’s parameter element (i.e. attributes for element uniqueKey/parameter).

Table 23 – DM uniqueKey parameter attributes

Attribute Type Use Description

ref restricted xs:NCName

(256)

required The name of a parameter within the

table to be included in the table’s unique key. Note that the parameter’s object path is not specified here.

Note – A ref has the same format as xs:NCName except that dots are not permitted; i.e. must start with a letter or “_” and subsequent characters can also include digits and connector characters such as underscore and dash.

The following example shows a table with one unique key. This unique key consists of three of the table’s parameters (i.e. a multi-parameter key). Also note that this is a functional key (by default, since the key’s functional attribute is omitted), meaning it references at least one parameter that relates to the purpose (or function) of the table.

<object name="Device.ManagementServer.ManageableDevice.{i}." minEntries="0" maxEntries="unbounded" … > <uniqueKey> <parameter ref="ManufacturerOUI"/> <parameter ref="SerialNumber"/> <parameter ref="ProductClass"/> </uniqueKey> … </object>

The following example shows a table with two separate unique keys. In this case, each unique key consists of one of the table’s parameters. Also, these are both defined as non-functional keys, meaning they reference parameters that do not relate to the purpose (or function) of the table.

<object name="Device.DSL.Channel.{i}." minEntries="0" maxEntries="unbounded" … > <uniqueKey functional="false"> <parameter ref="Alias"/> </uniqueKey> <uniqueKey functional="false"> <parameter ref="Name"/> </uniqueKey> … </object>