Copyright © 1992, 1997 International Organization for Standardization. All rights reserved.

This electronic document is for use during development and review of International Standards. Official printed copies of International Standards can be purchased from the ISO and the national standards organization of your country.

Next ClausePrevious Clause  

homeParent clauseNext major clausePrevious major clauseNext clause at this levelPrevious clause at this level


A.5 General Architecture

A.5.6 Default value list

Subclauses:


A "default value list" is a means by which an application designer can control the assignment of attribute values in a manner that reflects the element structure of the document.

A.5.6.1 Default value list attributes

The attribute form dvlatt allows default attribute values to be associated with an element.

The attribute subelement default value list (subdvl) specifies default values for impliable attributes that will apply for subelements of the element for which the attribute is specified. The attribute is recursive (that is, default values can be specified for subdvl itself). The attribute value is a list of IDs of default value list elements.

The attribute sibling default value list (sibdvl) specifies default values for impliable attributes that will apply in the document instance for younger siblings of the element for which the attribute is specified. The attribute is recursive (that is, default values can be specified for sibdvl itself). The attribute value is a list of IDs of default value list elements.

The attribute self default value list (selfdvl) specifies default values for impliable attributes that will apply in the document instance for the element for which the attribute is specified. The attribute value is a list of IDs of default value list elements.

NOTE 477 The same default value list can be applied to an element, its subelements, and/or its siblings by naming it as the self default value list, the subelement default value list, and/or the sibling default value list.

Default values specified later in the element structure override earlier ones. Specifically, a subdvl will override the subdvl of an ancestor. A sibdvl will override a subdvl, and will also override a sibdvl of an older sibling.

NOTE 478 In other words, at the end of the elder sibling that specifies a sibdvl, the sibdvl is effectively treated as the subdvl of its parent. That is, there is no stacking of sibdvl's over one another, or over the parent subdvl (if any); the parent subdvl is simply replaced by the latest sibdvl at the point where it takes effect.

In addition, if a default value defined in a default value list is defined as a default-setting attribute then the default value will be reset to the value specified on the nearest element of the type controlled by the default value list (ancestors for subelement default value lists, siblings for sibling default value lists).

                <!-- Default Value List Attributes -->
<![ %dvlist; [
<!attlist
-- dvlatt --      -- Default value list attributes --
                  -- Clause: A.5.6.1 --
   #ALL

   subdvl         -- Subelement impliable attribute value defaults --
      IDREFS      -- Reference --
                  -- Reftype: dvlist+ --
                  -- Note: Cannot be indirect --
      #IMPLIED    -- Default: none --

   sibdvl         -- Sibling impliable attribute value defaults --
      IDREFS      -- Reference --
                  -- Reftype: dvlist+ --
                  -- Note: Cannot be indirect --
      #IMPLIED    -- Default: none --

   selfdvl        -- Self impliable attribute value defaults --
      IDREFS      -- Reference --
                  -- Reftype: dvlist+ --
                  -- Note: Cannot be indirect --
      #IMPLIED    -- Default: none --
>
]]><!-- dvlist -->

A.5.6.2 Default value list element

The element form default value list (dvlist) contains an attribute specification list. The attribute values are evaluated only when actually used as a default.

The attribute default value element types (dvgi) specifies the generic identifiers of the element types whose default values are being defined. If not specified, the default value list is applied to all elements within the scope of the default value list. If the keyword "#ALL" is specified, the default value list applies globally to all elements in the document (if no GIs are specified) or to all elements of the types specified.

NOTE 479 Default value lists for which "#ALL" is specified are always processed, whether or not they are referenced by dvlatt attributes.

NOTE 480 Global default value lists can be used as a means of establishing an initial set of default values for all impliable attributes.

The attribute preempted attributes (preatts) identifies attributes whose values are to be preempted. An attempt to specify such an attribute while the preempted value is in effect is not a reportable architectural error, but it has no effect.

NOTE 481 This rule applies to attempts to preempt an already preempted attribute.

NOTE 482 A preempted attribute is similar to an SGML fixed attribute in that no other value can be specified for it. However, it is an error to attempt to respecify a fixed attribute, while it is not an error to attempt to respecify a preempted attribute.

NOTE 483 By preempting the subdvl, sibdvl, and selfdvl attributes, an application designer can prevent the defaults from being changed.

The attribute default-setting attributes (defatts) names those attributes in the default value list whose values are to become the new default if specified for elements within the scope of the active default value list. In this case, "specified" also means specified for a selfdvl. Default-setting attributes used for subelement default values lists only propagate down the element hierarchy, they do not propagate from elder sibling to younger sibling (unless the same or equivalent default value list is also used as a sibling default value list).

NOTE 484 Application designers can define fixed default value lists by mapping the dvlist-form element's content to an attribute and requiring the element in context.

                     <!-- Default Value List -->
<![ %dvlist; [
<!element
   dvlist         -- Default value list --
                  -- Clause: A.5.6.2 --
   - O
   (#PCDATA)      -- Ulextype: attspecs --

-- Attributes: dvlist --
-- CommonAttributes: dafe, dvlist, etfullnm, id, ireftype,
   lextype, opacity --
-- Referrers: dvlatt:selfdvl, dvlatt:sibdvl, dvlatt:subdvl --
>
<!attlist
   dvlist         -- Default value list --
                  -- Clause: A.5.6.2 --

   id             -- Unique identifier --
      ID
      #REQUIRED

   dvgi           -- Default value element types --
                  -- Applies to all elements if omitted --
      CDATA       -- Lextype: (GI+|(#ALL,GI*)) --
      #IMPLIED    -- Default: all elements --

   preatts        -- Attributes whose values are to be preempted --
      NAMES       -- Constraint: must be in dvlist content --
      #IMPLIED    -- Default: none --

   defatts        -- Attributes whose values become the default value
                     when specified --
      NAMES       -- Constraint: must be in dvlist content --
      #IMPLIED    -- Default: no replaceable defaults --
>
]]><!-- dvlist -->

Next ClausePrevious Clause  

Copyright © 1992, 1997 International Organization for Standardization. All rights reserved.

This electronic document is for use during development and review of International Standards. Official printed copies of International Standards can be purchased from the ISO and the national standards organization of your country.


HTML generated from the original SGML source using a DSSSL style specification and the SGML output back-end of the JADE DSSSL engine.