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


7 Location address module

7.9 Name-space locations

Subclauses:


A name-space location addresses a node by a unique name in some name-space. For SGML documents, the primary name-spaces are elements with IDs (represented by the elements property of the SGMLDOC node) and entities (represented by the entities property of the SGMLDOC node). In grove terms, a name-space is a property whose value is a named node list. A named node list is a node list in which all the nodes exhibit a name property, for which each node in the named node list must exhibit a unique value. Thus, the location source for a name-space location address is implicitly a property location address that addresses a property whose value is a named node list.

7.9.1 Identified local element or entity

A reference can be made directly to an element in the same document that has an ID attribute simply by specifying the ID. A location address element is not needed in such a case. A reference can be made directly to an entity declared in the same document by naming the entity.

7.9.2 Property location address

The element form property location address (proploc) addresses the value of the property of a node in a grove by property name. The location source of a property location address is the node or nodes that exhibit the property whose value is addressed. The property is named in the content of the proploc element.

The attribute additional property source (apropsrc) specifies whether the processor should examine the origin ancestry of the location source (starting with the location source's origin) for the property named in the content of the property location if it is not exhibited by the location source (apropsrc) or whether the location source is the only source for the property (solesrc).

NOTE 178 For example, if the property is "elements", the location source is the document element of an SGML document, and the additional property source value is "apropsrc", the HyTime engine will use the elements property exhibited by the SGMLDOC node, which is the origin of the document element node.

The attribute not an applicable property (notprop) specifies the treatment of a proploc when the property named is not exhibited by the location source or (if specified) its additional property source. The proploc can be treated as an RHE ("error") or it can be ignored ("ignore").

NOTE 179 The SGML property set is defined in A.7 SGML Property Set.

The attribute direct or indirect value of property (direct) specifies whether the value of the property should be the direct value (the value in the SGML document grove) or the indirect value (the value addressed by value reference), if there is one (see 6.7.1 Value Reference). The default is to return the indirect property value if there is one. The attribute is ignored if the property does not have an indirect value.

                <!-- Property Location Attributes -->
<![ %proplat; [
<!attlist
-- proplat --     -- Property location attributes --
                  -- Clause: 7.9.2 --
   (nmsploc,proploc)

   apropsrc       -- Use additional property source? --
      (apropsrc|solesrc)
      solesrc

   notprop        -- If not a property of locsrc or apropsrc? --
      NAME        -- Lextype: ("ERROR"|"IGNORE") --
      ERROR

   direct         -- Direct or indirect value --
                  -- Constraint: Ignored if no indirect value --
      (direct|indirect)
      indirect
>
]]><!-- proplat -->
                  <!-- Property Location Address -->
<![ %proploc; [
<!element
   proploc        -- Property location address --
                  -- Clause: 7.9.2 --
                  -- Locates property of a grove node --
   - O
   (#PCDATA)      -- Lextype: compname --

-- Attributes [locs]: proplat, locsrc, impsrc --
-- OptionalAttributes [locs]: multloc, referatt, spanloc, treetype --
-- CommonAttributes [GenArc]: dafe, dvlatt, etfullnm, id,
   ireftype, lextype, opacity --
-- CommonAttributes [base]: activity, conloc, dtxtatt, valueref --
-- CommonAttributes [locs]: refctl, refloc, reftype, rflocspn --
>
<!entity % proplat "INCLUDE">
<!entity % locsrc "INCLUDE">
<!entity % impsrc "INCLUDE">
]]><!-- proploc -->

7.9.3 Name-space location address

The element form name-space location address (nmsploc) addresses nodes in named node lists. The location source for a name-space location address must be a node that exhibits (or whose additional property source exhibits) a named node list property. The name-space location address selects nodes from the value of the named node list property.

NOTE 180 In other words, a name-space location address includes an implicit property location that addresses the value of the specified named node list property.

Because it performs an implicit property location, the name-space location address form uses the proploc attributes (see 7.9.2 Property location address).

The content of nmsploc is a s-separator-delimited list of zero or more names. Names that include separators may be specified as parameter literals.

There is no resolution of a name, nor checking of its validity as an ID or entity name, until the name-space location address is referenced in a manner that requires access to the object addressed by the name.

The attribute name-space property (namespc) names the name-space property of the location source from which nodes will be selected by name.

The attribute additional property source (apropsrc) (from the proploc attribute form) specifies whether or not the processor should examine the origin ancestry of the location source (starting with the location source's origin) for the property named by the namespc attribute if it is not exhibited by the location source (apropsrc).

NOTE 181 For example, if the name-space property is "elements", the location source is the document element of an SGML document, and the additional property source value is "apropsrc", the HyTime engine will use the elements property exhibited by the SGMLDOC node, which is the origin of the document element node.

The attribute not a name-space (notspc) indicates the action to take when the property named is not a name-space property: return an error condition (error) or ignore the location address (ignore).

The attribute not a name (notname) indicates the action to take when when a name does not exist in the location source: return an error condition (error) or ignore the location address (ignore).

A name-space location address with an empty list of names addresses an empty node list.

When the location source is a node list, the name-space location address is applied to each node in the list, creating a single list of nodes.

                 <!-- Name-Space Location Address -->
<![ %nmsploc; [
<!element
   nmsploc        -- Name-space location address --
                  -- Clause: 7.9.3 --
                  -- Addresses objects by name in a name-space --
                  -- Constraint: location source must be an object that
                     exhibits a named node list property or whose
                     additional property source exhibits a named node
                     list property. --
   - O
   (#PCDATA)      -- Lextype: (word|literal)* --

-- Attributes [locs]: nmsploc, proplat, locsrc, impsrc --
-- OptionalAttributes [locs]: multloc, referatt, spanloc, treetype --
-- CommonAttributes [GenArc]: dafe, dvlatt, etfullnm, id,
   ireftype, lextype, opacity --
-- CommonAttributes [base]: activity, conloc, dtxtatt, valueref --
-- CommonAttributes [locs]: refctl, refloc, reftype, rflocspn --
>
<!attlist
   nmsploc        -- Name-space location address --
                  -- Clause: 7.9.3 --

   namespc        -- Name-space --
                  -- Name-space property of location source from which
                     nodes are selected. --
      NAME
      #REQUIRED

   notspace       -- If nmspace name is invalid? --
      NAME        -- Lextype: ("ERROR"|"IGNORE") --
      ERROR

   notname        -- If name is not valid in nmspace? --
      NAME        -- Lextype: ("ERROR"|"IGNORE") --
      ERROR
>
<!entity % proplat "INCLUDE">
<!entity % locsrc "INCLUDE">
<!entity % impsrc "INCLUDE">
]]><!-- nmsploc -->

7.9.4 Mixed location address

The element form mixed location address (mixedloc) addresses objects by containing other location address elements. Thus a mixedloc is equivalent to putting an ID on each contained location address element and creating a name-space location address whose name list lists those IDs (and only those IDs) and whose location source is the SGMLDOC node of the grove for the document in which the mixedloc occurs.

                   <!-- Mixed Location Address -->
<![ %mixedloc; [
<!element
   mixedloc       -- Mixed location address --
                  -- Clause: 7.9.4 --
                  -- Groups location addresses together. --
   - O
   (%loc;)*

-- OptionalAttributes [locs]: multloc, spanloc, treetype --
-- CommonAttributes [GenArc]: dafe, dvlatt, etfullnm, id,
   ireftype, lextype, opacity --
-- CommonAttributes [base]: activity, conloc, dtxtatt, valueref --
-- CommonAttributes [locs]: refctl, refloc, reftype, rflocspn --
>
]]><!-- mixedloc -->

7.9.5 Named location address

The element form named location address (nameloc) is a specialized mixed location address that contains only name list or nmquery elements. The name list element form is derived from the name-space location address element form (see 7.9.3 Name-space location address). The nmquery element form is derived from the query location address element form (see 7.11.1 Query location address).

                   <!-- Named Location Address -->
<![ %nameloc; [
<!element
   nameloc        -- Named Location Address --
                  -- Clause: 7.9.5 --
                  -- Assigns a local ID to one or more named objects --
   - O
   (nmlist|nmquery)*

-- Attributes [locs]: nameloc --
-- OptionalAttributes [locs]: multloc, spanloc, treetype --
-- CommonAttributes [GenArc]: dafe, dvlatt, etfullnm, id,
   ireftype, lextype, opacity --
-- CommonAttributes [base]: activity, conloc, dtxtatt, valueref --
-- CommonAttributes [locs]: refctl, refloc, reftype, rflocspn --
>
<!attlist
   nameloc        -- Named Location Address --
                  -- Clause: 7.9.5 --

   HyBase   NAME     #FIXED mixedloc
>
]]><!-- nameloc -->

7.9.6 Name list specification

The element form name list specification (nmlist) contains an undelimited SGML attribute value specification for a name list. The nmlist form is derived from the nmsploc form.

There is no limit on the number of names. The names are derived from the name list attribute value specification in the manner defined by ISO 8879.

NOTE 182 Leading and trailing separators are ignored, and intervening ones are reduced to a single space, resulting in a space-delimited name list.

The attribute name type (nametype) indicates whether the names in the list are entity names or element IDs. (The nametype attribute is a synonym for the namespc attribute of the nmsploc element form.)

If the name specification list is empty, it is considered to address the SGMLDOC node of either the document named by the docorsub attribute, if specified, or the document in which the nmlist occurs.

NOTE 183 Support of the "queryloc" option is not required for this purpose.

The attribute SGML document or subdocument (docorsub) identifies the SGML document entity of the SGML document, or the SGML subdocument entity of the SGML subdocument, in which the names in the name list are defined. Unless the "anysgml" option is supported, the specified document or subdocument, and the document in which this element occurs, must be subject to equivalent SGML declarations. (The docorsub attribute is a synonym for the locsrc attribute from the location source attribute list.)

                   <!-- Name List Specification -->
<![ %nameloc; [
<!element
   nmlist         -- Name list specification --
                  -- Clause: 7.9.6 --
                  -- Addresses elements or entities in an SGML document --
   - O
   (#PCDATA)      -- Reference --
                  -- Lextype: (IDREF|ENTITY)* --

-- Attributes [locs]: nmlist, proplat, locsrc, impsrc --
-- OptionalAttributes [locs]: multloc, referatt, spanloc, treetype --
-- CommonAttributes [GenArc]: dafe, dvlatt, etfullnm, id,
   ireftype, lextype, opacity --
-- CommonAttributes [base]: activity, conloc, dtxtatt, valueref --
-- CommonAttributes [locs]: refctl, refloc, reftype, rflocspn --
>
<!attlist
   nmlist         -- Name list specification --
                  -- Clause: 7.9.6 --

   HyBase   NAME     #FIXED nmsploc
   impsrc   NAME     #FIXED grovert
   HyBnames CDATA    #FIXED "locsrc docorsub
                             namespc nametype
                                #MAPTOKEN elements element
                                #MAPTOKEN entities entity"

   nametype       -- Name-space from which nodes are selected --
      (entity|element)
      entity

   docorsub       -- Document or subdocument location source --
      ENTITY
      #IMPLIED

   notspace       -- If nmspace name is invalid? --
      NAME        -- Lextype: ("ERROR"|"IGNORE") --
      ERROR

   notname        -- If name is not valid in nmspace? --
      NAME        -- Lextype: ("ERROR"|"IGNORE") --
      ERROR
>
<!entity % proplat "INCLUDE">
<!entity % locsrc "INCLUDE">
<!entity % impsrc "INCLUDE">
]]><!-- nameloc -->

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.