sethspace
| sethspace | 
  Purpose
 
  
  Synopsis
 
  procedure sethspace(doc:xmldoc, n:integer, s:integer) 
 
  Arguments
 
 | 
     doc 
     | 
     Document to use
     | 
| 
     n 
     | 
     Node number
     | 
| 
     s 
     | 
     Number of spaces to put before the node output
     | 
  Example
 
 
 The following example reformats the XML document layout by adding an additional line before 'region' nodes and printing three consecutive tags within 'employee' on a single line. The indentmode is set to 'manual' in order to apply the user formatting (instead of automatic or none).
 
   declarations
    DB: xmldoc
    NodeList, Employees: list of integer
  end-declarations
! New line without indentation for Root
  setvspace(DB, Root, 1)
! Add extra line in between regions, keeping original indentation
  getnodes(DB, "personnelList/region", NodeList)
  forall(r in NodeList) setvspace(DB, r, 2)
! Spacing/indentation for 'employee' tag
  getnodes(DB, "personnelList/region/employee", Employees)
  forall(p in Employees) do
    setvspace(DB, p, 1); sethspace(DB, p, 4)
  ! Within 'employee', display up to 3 consecutive tags on a single line
    getnodes(DB, p, "child::node()[position() mod 3=1]", NodeList)
    forall(r in NodeList) do
      setvspace(DB, r, 1); sethspace(DB, r, 6)
    end-do
    getnodes(DB, p, "child::node()[position() mod 3<>1]", NodeList)
    forall(r in NodeList) do
      setvspace(DB, r, 0); sethspace(DB, r, 1)
    end-do
  end-do
! Set indentation mode to 'manual' to use our own formatting for display
  setindentmode(DB, XML_MANUAL)
  save(DB, "") 
  Further information
 
 
  This spacing indicates the number of spaces to skip from the start of a new line before displaying the node when outputing the document. The horizontal spacing setting is only used when the indentation is in manual mode (see
 setindentmode).
 
 
  Related topics
 
  
  Module
 
  
