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.4 Property Set Definition Requirements (PSDR)

A.4.2 Property set definition architecture

Subclauses:


A property set is expressed formally as an SGML element conforming to the element type property set definition (propset).

The attribute notation specification document (nsd) is a notation name whose declaration identifies the document that contains the specification of the source data notation. It must be specified on primary property set definitions (those used in constructing primary groves); it may not be specified on auxiliary property set definitions (those used in constructing auxiliary groves).

The attribute grove construction specification document (gcsd) is a notation name whose declaration identifies the document that contains the specification of the grove construction process. It must be specified if the notation specification document does not include a grove construction process specification, or if the property set definition is for an auxiliary property set.

                   <!-- Property Set Definition -->
<!element
   propset        -- Property set definition --
                  -- Clause: A.4.2 --
   - O
   ((desc|note)*,(classdef|normdef)*,psmodule*)

-- Attributes: clausnot, propset --
>
<!attlist
   propset        -- Property set definition --
                  -- Clause: A.4.2 --

   nsd            -- Notation specification document --
      NAME        -- Lextype: NOTATION --
      #IMPLIED    -- Default: auxiliary property set --
                  -- Constraint: must be specified for primary
                     property sets; may not be specified for
                     auxiliary property sets --

   gcsd           -- Grove construction specification document --
      NAME        -- Lextype: NOTATION --
      #IMPLIED    -- Default: nsd --
                  -- Constraint: must be specified for auxiliary
                     property sets --
>

The attribute form clause notation (clausnot) specifies the notation used to identify the clause. The clause notation may be specified for the entire property set, for a component, or for a specific property within a component.

The property sets defined in this International Standard use the notation defined in this subclause.

The clause is identified with a character string, as follows:

  1. The first character is the clause number, the second identifies the sub-clause, the third the sub-sub-clause and the fourth the sub-sub-sub-clause, with 0 representing the absence of any level of the clause structure.

  2. The final number identifies the paragraph number. Productions, notes and list items are counted as separate paragraphs.

  3. References to figures are in the form "FIGn", where "n" is the figure number.

  4. Any number that exceeds 9 is replaced by a hexadecimal letter.

    NOTE 456 There is no provision for numbers greater than 15.

  5. References to definition clauses of International Standards are in the form 4xxxy where xxx is the decimal sub-clause number and y is the paragraph number.

  6. References to clauses in annexes of International Standards are prefixed with "X.", where "X" is the letter of the annex.

NOTE 457 This format is a superset of that used in clause 6.3 of ISO/IEC 13673:1994, which defines how the components of ISO 8879 should be identified within conformance tests. The provisions for definition clauses and annexes do not occur in ISO/IEC 13673.

                       <!-- Clause Notation -->
<!attlist
-- clausnot --    -- Clause notation --
                  -- Clause: A.4.2 --
   (propset,classdef,propdef,normdef)

   clausnot       -- Clause notation --
      NAME        -- Lextype: NOTATION --
      #IMPLIED    -- Default: notation described in A.4.2 --
>

A.4.2.1 Shared constructs

A property set is composed of "property set components": classes, properties, normalization rules (for comparing string property values), and enumerated values (of properties). A property set definition, therefore, consists of property set component definitions. Syntactically, each property set component definition is an element; the type of the element is determined by the type of property set component it defines.

Several attributes are provided by more than one property set component definition element type. These attributes have to do with the naming of components, and with the specification document that describes the components. There are also two descriptive element types that are used in the definitions of multiple types of components.

A.4.2.1.1 Component names

Names of property set components are used in HyTime location address elements and DSSSL expressions. They could also be used for internal communication among programs, in documentation, and for other purposes. Because of this diversity of uses, up to three name attributes are defined for each component:

rcsnm

The attribute reference concrete syntax (RCS) name (rcsnm) specifies a form of name that complies with the SGML reference concrete syntax.

appnm

The attribute application name (appnm) specifies a form of name that is less restrictive than an RCS name, but still capable of being bound to a programming language syntax as a name. For example, the application name "processing instruction", when bound to a programming language, might become "ProcessingInstruction", "processing-instruction", or "PROCESSING_INSTRUCTION", depending on the language.

fullnm

The attribute full name (fullnm) specifies an unrestricted form of name that is suitable for use in documentation.

For the definition element type of a given property set component, either the rcsnm, the rcsnm and fullnm, or all three forms of name are provided. In the latter two cases, the multiple forms comprise a single name space, meaning that while multiple forms of name for the same component can be identical, none of the names of one component can be the same as any of the names of another component of the same type.

                       <!-- Component Names -->
<!attlist
-- rcsnm --       -- Name in RCS --
                  -- Clause: A.4.2.1.1 --
   (enumdef,normdef,propdef,psmodule)

   rcsnm          -- Name in RCS --
      NAME        -- Constraint: unique in component name space --
      #REQUIRED
>
<!attlist
-- appnm --       -- Application name --
                  -- Clause: A.4.2.1.1 --
   (classdef,enumdef,normdef,propdef,psmodule)

   appnm          -- Application name --
      CDATA       -- Constraint: unique in component name space --
      #IMPLIED    -- Default: rcsnm --
>
<!attlist
-- fullnm --      -- Full name --
                  -- Clause: A.4.2.1.1 --
   (classdef,enumdef,normdef,propdef,psmodule)

   fullnm         -- Full name --
      CDATA       -- Constraint: unique in component name space --
      #IMPLIED    -- Default: appnm --
>

A.4.2.1.2 Specification and clause

The attribute form specification and clause (spec) consists of attributes that associate a component with a specification document and clause in that document. The attribute form clause notation can be used to specify the clause specification notation if it is different from the overall clause notation specified for a property set.

The attribute specification document (sd) is a notation name whose declaration identifies the document that contains the specification of the property set component.

The default specification document is the notation specification document for a primary property set, or the grove construction specification document for an auxiliary property set.

The attribute clause of specification document (clause) identifies the clause of the specification document that defines the component.

                  <!-- Specification and Clause -->
<!attlist
-- spec --        -- Specification and clause --
                  -- Clause: A.4.2.1.2 --
   (classdef,propdef,normdef)

   sd             -- Specification document --
      NAME        -- Lextype: NOTATION --
      #IMPLIED    -- Default: primary property set's notation
                     specification document; auxiliary property set's
                     grove construction specification document. --

   clause         -- Clause of specification document --
      CDATA       -- Constraint: in notation specified by clausnot --
      #IMPLIED    -- Default: if propdef, same clause as classdef;
                     otherwise none --
>

A.4.2.1.3 Descriptive elements

Elements of type description (desc) describe property set components.

Elements of type explanatory note (note) can be used to supplement a description.

                    <!-- Descriptive Elements -->
<!element
   desc           -- Description of property set component --
                  -- Clause: A.4.2.1.3 --
   - O
   (#PCDATA)
>
<!element
   note           -- Explanatory note --
                  -- Clause: A.4.2.1.3 --
   - O
   (#PCDATA)
>

A.4.2.1.4 Member of default grove plan

The attribute member of default grove plan (default) indicates whether or not the component is included in the default grove plan for the property set.

                  <!-- Member of default grove plan -->
<!attlist
-- default --     -- Member of default grove plan --
                  -- Clause: A.4.2.1.4 --
   (psmodule,classdef,propdef)

   default        -- Member of default grove plan --
      (default|ndefault) 
      ndefault
>

A.4.2.2 Modules

Sets of property set components may be grouped together as children of elements of type property set module (psmodule), so that they may be included or excluded from grove plans as a group. Property set components occurring outside of modules are required in every grove plan; they are automatically included in and may not be excluded from any grove plan.

NOTE 458 Uses of normalization rules, which are not affected by grove plans, are also not affected by whether they are defined within or outside of modules.

The attribute modules depended on (dependon) identifies modules whose components must be included in any grove plan in which a component of this module is included. Dependencies of depended-on modules are also considered depended upon by a module, though they need not be explicitly named in the value of the module's dependon attribute.

                     <!-- Property Set Module -->
<!element
   psmodule       -- Property set module --
                  -- Clause: A.4.2.2 --
   - O
   ((desc|note)*,(classdef|propdef|normdef)*)

-- Attributes: appnm, default, fullnm, psmodule, rcsnm --
>
<!attlist
   psmodule       -- Property set module --
                  -- Clause: A.4.2.2 --

   dependon       -- Modules depended on --
      NAMES       -- Constraint: RCS names of modules defined in this
                     property set --
      #IMPLIED    -- Default: none --
>

A.4.2.3 Class definition

An element of type class definition (classdef) defines a class of node.

NOTE 459 The rcsnm attribute of classdef has the semantics defined for the rcsnm attribute list form. It is redefined here so that the rcs names of class definitions can be SGML unique identifiers, allowing SGML processors to verify that references to class names are valid.

The attribute content property (conprop) identifies the content property of the class.

The attribute prune content tree (prune) specifies whether when the class is omitted from a grove plan, the content trees rooted at nodes of the class in a complete grove are pruned away, or whether that branch is merely "grafted" by replacing the node in its parent's children property with the node's children.

The attribute data separator property (dsepprop) identifies the data separator property of the class.

The attribute may add (mayadd) is used by the DSSSL transformation language. It is fully described in the DSSSL standard.

NOTE 460 A rule of thumb for its use is that specifying "mayadd" on a class definition indicates that nodes of that class represent information about aspects of the representation of the grove in source form that can be automatically managed by the process that converts the grove into source form.

                      <!-- Class Definition -->
<!element
   classdef       -- Class definition --
                  -- Clause: A.4.2.3 --
   - O
   ((desc|note)*, propdef*)

-- Attributes: appnm, clausnot, default, fullnm, spec --
>
<!attlist
   classdef       -- Class definition --
                  -- Clause: A.4.2.3 --

   rcsnm          -- Name in RCS --
      ID          -- Constraint: unique in component name space --
      #REQUIRED

   conprop        -- Content property --
      NAME        -- Constraint: RCS name of nodal property of class
                     with noderel=subnode, char property, or string --
      #IMPLIED    -- Default: no content property --

   prune          -- Prune content tree --
      (prune|nprune)
                  -- Constraint: can only be nprune if the set of
                     allowed classes of the content property is
                     guaranteed to be a subset of that of parent's
                     content property --
      prune

   dsepprop       -- Data separator property --
      NAME        -- Constraint: RCS name of char or string property
                     of class --
      #IMPLIED    -- Default: none --

   mayadd         -- May add --
      (mayadd|mayntadd)
      mayntadd
>

A.4.2.4 Property definition

An element of type property definition (propdef) defines a property.

The attribute class name (cn) identifies the provider of the property. Its value must be the RCS name of a class defined within the same module, within one of that module's depended on modules, or outside the scope of any module. If the property definition occurs within the content of a class definition, the specification of class name may be omitted; such omission implies that the property is provided by the class within whose definition the property's definition occurs.

An exception is made for the definition of intrinsic properties (see A.4.3 Intrinsic properties); there the class name may be specified as "#ALL", where "#ALL" means that the property is provided to nodes of all classes. Use of this keyword in this context may occur only within this International Standard; it may not occur in any actual property set definition.

The attribute property value datatype (datatype) specifies the datatype of values exhibited for the property.

If the datatype is nodal, the attribute node relationship (noderel) indicates the relationship between the property owner and the nodes in the property value. Also, the attribute allowed classes (ac) specifies the classes of nodes allowed in the property value. Unless the node relationship is urefnode, the complete set of allowed classes must be specified. Allowed classes may be specified for a urefnode property only if it is intended to refer only to nodes of the same property set (though those nodes may be in other groves). Urefnode property definitions that do not specify allowed classes define properties whose value nodes may be of any class from any property set, and may be in any grove.

When the datatype is nmndlist the attribute allowed classes name property (acnmprop) must specify for each allowed class the name of the property that is to serve as the name property for nodes of that class with respect to the named node list.

If the primitive type of the datatype is "string", the attribute string normalization rule (strnorm) identifies the normalization rule applicable to the property.

The attribute verify type (vrfytype) is used by the DSSSL transformation language. It is fully described in the DSSSL standard.

NOTE 461 The following are rules of thumb for its use:

  1. A verify type of "optional" specified on a property definition indicates that values exhibited for the property represent information about aspects of the representation of the grove in source form that can be automatically managed by the process that converts the grove into source form.

  2. A verify type of "derived" specified on a property definition indicates that values exhibited for the property are derivable from other property values within the grove.

If a property definition element contains an element of the type when property exists (when), any node that does not meet the conditions specified by the content of the element will exhibit a null value for the property.

                     <!-- Property Definition -->
<!element
   propdef        -- Property definition --
                  -- Clause: A.4.2.4 --
   - O
   ((desc|note)*,when?,enumdef*)

-- Attributes: appnm, clausnot, default, fullnm, rcsnm, spec --
>
<!attlist
   propdef        -- Property definition --
                  -- Clause: A.4.2.4 --

   cn             -- Class name --
                  -- Provider of property --
      IDREF       -- Constraint: RCS name of class in property set --
      #IMPLIED    -- Default: containing classdef --
                  -- Constraint: must be specified if propdef occurs
                     outside of a classdef --

   datatype       -- Datatype of property value --
      (node|nodelist|nmndlist|enum|char|string|strlist|integer|
       intlist|boolean|compname|cnmlist)
      #REQUIRED

   noderel        -- Node relationship --
      (subnode|irefnode|urefnode)
      #IMPLIED    -- Default: not nodal --
                  -- Constraint: required if datatype is nodal --

   ac             -- Allowed classes --
      IDREFS      -- Constraint: RCS names of classes defined in
                     property set --
      #IMPLIED    -- Default: not nodal or if noderel=urefnode, any
                     class in any property set --
                  -- Constraint: required if datatype is nodal, unless
                     noderel=urefnode --

   acnmprop       -- Allowed class name properties --
      NAMES       -- Constraint: one property RCS name for each
                     allowed class; must be either all string
                     properties or all node properties of their
                     respective classes --
      #IMPLIED    -- Default: not nmndlist --
                  -- Constraint: required if datatype is nmndlist,
             otherwise, may not be specified. --

   strnorm        -- String normalization rule --
       NAME       -- Constraint: RCS name of normdef defined in
                     property set --
       #IMPLIED   -- Default: none --
                  -- Constraint: may be specified only if datatype is
                     string or strlist --

   vrfytype       -- Verify type --
       (derived|optional|other)
       other
>
<!element
   when           -- When property exists --
                  -- Clause: A.4.2.4 --
                  -- Condition precedent for a non-null value to be
                     exhibited --
   - O
   (#PCDATA)
>

A.4.2.4.1 Enumerated value definition

An element of the type enumerated value definition (enumdef) defines an allowed value of the property in the content of whose definition it appears. The datatype of the property must be enum.

                 <!-- Enumerated value definition -->
<!element
   enumdef        -- Enumerated value definition --
                  -- Clause: A.4.2.4.1 --
   - O
   (desc|note)*

-- Attributes: appnm, fullnm, rcsnm --
>

A.4.2.5 Normalization rule definition

The element type normalization rule definition (normdef) defines a string normalization rule by referring to it in a specification document.

                <!-- Normalization Rule Definition -->
<!element
   normdef        -- Normalization rule definition --
                  -- Clause: A.4.2.5 --
   - O
   (desc|note)*

-- Attributes: appnm, clausnot, fullnm, rcsnm, spec --
>

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.