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.6 Span Location Address

The attribute form span location address (spanloc) allows a multiple location address element to address a "span". A span is a sequence of nodes selected from the list of nodes that occur contiguously between two locations ("span limits") in the same grove in a left-list, pre-order traversal of the tree. A node is selected from this list (and is therefore a member of the span) if all of its content (or subnodes) are also in the list and it is not itself a descendant of a node in the span.

NOTE 161 For example, given the following tree:

      .---A---.
     /    |    \
    B     C     D
   / \    |    / \
  E   F   G   H   I
If the span start is node "F" and the span end is node "H", the span addresses the nodes F, C, and H. The nodes A, B, and D are not included in the span because not all of their descendant nodes are included in the span. The node G is not included because it is a descendant of C.

The span limits are known as the "span start" and the "span end". The span begins at the start of the span start and ends at the end of the span end, which must be no farther from the end of the document than the span start is. The span start and span end must both occur in the same tree rooted at a node in the location source. The span includes all nodes in that tree that occur after the span start and before the span end (inclusive) in a left-list, pre-order traversal of the tree.

If the location source is a node list, the location source for a particular span will be the node from the location source that is the root of the smallest tree that contains the span. The tree from which the span is selected is either a content tree or a subnode tree depending on the value of the tree type (treetype) attribute (see 7.5 Tree type).

The attribute span location (spanloc) can specify that a multiple location address element is not a span location ("nspan"), or that it is a span location ("spanloc"); that is, that the element locates pairs of span limits.

When a location address is a span location address, it must address an even number of nodes, each pair being interpreted as a span start and span end.

It is an RHE to specify "spanloc" when the locations are not valid span limits.

The attribute span limits sort (limsort) specifies whether span limits are sorted so that the span start precedes the span end. The attribute is ignored if the spanloc attribute is specified as "nspan".

NOTE 162 This attribute might allow a HyTime engine to optimize access to the span.

                        <!-- Span Location -->
<![ %spanloc; [
<!attlist
-- spanloc --     -- Span location attributes --
                  -- Clause: 7.6 --
   (anchloc,dataloc,fcsloc,linkloc,listloc,mixedloc,nameloc,nmlist,
    nmquery,nmsploc,pathloc,proploc,queryloc,relloc,treeloc)

   spanloc        -- Span location --
                  -- Do multiple locations comprise a span? --
      (nspan|spanloc)
      nspan

   limsort        -- Span limits sort --
                  -- Are limits sorted with span start first? --
      (limsort|nlimsort)
      nlimsort
>
]]><!-- spanloc -->

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.