XMLIF(1)                                                              XMLIF(1)


       xmlif - conditional processing instructions for XML


       xmlif [attrib=value...]


       xmlif  filters  XML  according  to conditionalizing markup. This can be
       useful for formatting one of several versions of an  XML  document  de-
       pending on conditions passed to the command.

       Attribute/value pairs from the command line are matched against the at-
       tributes associated with certain processing instructions in  the  docu-
       ment.  The  instructions  are  <?xmlif  if?> and its inverse <?xmlif if
       not?>, <?xmlif elif?> and  its  inverse  <?xmlif  elif  not?>,  <?xmlif
       else?>, and <?xmlif fi?>.

       Argument/value  pairs given on the command line are checked against the
       value of corresponding attributes in  the  conditional  processing  in-
       structions. An ‘attribute match’ happens if an attribute occurs in both
       the command-line arguments and the tag, and the values match.  An  ‘at-
       tribute  mismatch’  happens  if  an  attribute  occurs in both the com-
       mand-line arguments and the tag, but the values do not match.

       Spans between <?xmlif if?> or <?xmlif elif?> and the  next  conditional
       processing instruction at the same nesting level are passed through un-
       altered if there is at least one attribute match and no attribute  mis-
       match;  spans  between  <?xmlif if not?> and <?xmlif elif not?> and the
       next conditional processing instruction are passed otherwise. Spans be-
       tween <?xmlif else?> and the next conditional-processing tag are passed
       through only if no previous span at the  same  level  has  been  passed
       through.  <?xmlif  if?>  and  <?xmlif  fi?>  (and their ‘not’ variants)
       change the current nesting level; <?xmlif else?> and <?xmlif elif?>  do

       All  these processing instructions will be removed from the output pro-
       duced. Aside from the conditionalization, all  other  input  is  passed
       through untouched; in particular, entity references are not resolved.

       Value  matching  is by string equality, except that "|" in an attribute
       value  is  interpreted  as  an  alternation  character.  Thus,   saying
       foo=’red|blue’  on  the  command  line enables conditions red and blue.
       Saying color=’black|white’ in a  tag  matches  command-line  conditions
       color=’black’ and color=’white’.

       Here is an example:

       Always issue this text.
       <?xmlif if condition=’html’?>
       Issue this text if ’condition=html’ is given on the command line.
       <?xmlif elif condition=’pdf|ps’?>
       Issue this text if ’condition=pdf’ or ’condition=ps’
       is given on the command line.
       <?xmlif else?>
       Otherwise issue this text.
       <?xmlif fi?>
       Always issue this text.


       Eric S. Raymond <esr@snark.thyrsus.com>.


       Eric S. Raymond.

                                  Oct 15 2003                         XMLIF(1)

Man(1) output converted with man2html