i've now finished the final steps needed for the long due update
to the current DocBook XML DTD release, version 4.1.2

the last big showstopper have been the funcion prototype conversions
(actualy those with optional parameters), and as we have quite a lot
of these automatic conversion was a must have here ...

Right now a function parameter description (aka prototype) looks
like this:

     <!-- DocBook 3 style -->
     <funcsynopsis>
      <funcprototype>
       <funcdef>array <function>array_change_key_case</function></funcdef>
       <paramdef>array <parameter>input</parameter></paramdef>
       <paramdef>int <parameter><optional>case</optional></parameter></paramdef>
      </funcprototype>
     </funcsynopsis>

This doen't work with the DocBook 4 DTD due to the <optional> tags.
In DocBook 4 these are only allowed within <replaceable>.
        
As conversion of the <funcsynopsis> areas was needed anyway i decided
to switch to the new <methodsynopsis> for several reasons:

   - optional arguments are specifiable via attributes instead of tags
     - makes processing in the stylesheets easier
     - less typing :)

   - documentation of classes is now possible with <classsynopsis>,
     class methods should use <methodsynopsis>, so with using them
     for simple functions, to, we prepare for being consistent with
     upcoming class ducumentations

The new paramter descriptions now look like this:

     <!-- DocBook 4 style -->
      <methodsynopsis>
       <type>array</type>
       <methodname>array_change_key_case</methodname>
       <methodparam>
        <type>array</type>
        <parameter>input</parameter>
       </methodparam>
       <methodparam choice="opt">
        <type>int</type>
        <parameter>case</parameter>
       </methodparam>
      </methodsynopsis>

So what has changed:

   - <funcsynopsis> is replaced by <methodsynopsis>
   - <funcprototype> is no longer needed
   - parameter and return types have to be enclosed
     in <type>...</type> (a good thing IMHO)
   - <paramdef> is replaced by <methodparam>
   - optional parameters are declared by setting
     the 'choice' attribute in <methodaram> to
     'opt', no extra tag needed

I've commited conversion code to be used with the
process.php script, you can convert your xml files
for testing by executing

   cd scripts; php -q process.php func2methodsyn.php ../en

you need to have ext/sablot enabled in the php
executable you use for conversion as the actual
conversion is done by XSLT code

configure has already been changed to check for the
use of <methodsynopsis> and to use the DocBook 4 DTD
in this case, so you can play around with this
(on a backup copy of your phpdoc tree i'd suggest)

i have tested this for the english tree only for now,
some DocBook4 compatibility changes have already been
applied to the other languages, too, but i'm rather
sure that small inconsistencies still exist


-- 
Hartmut Holzgraefe  [EMAIL PROTECTED]  http://www.six.de  +49-711-99091-77



Reply via email to