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>