Help check: validate the help files on compilation against a derivated docbook schema 15/3915/4
Clément DAVID [Tue, 3 May 2011 07:39:02 +0000 (09:39 +0200)]
Change-Id: I2bb341001724b674e5d31b942b37de5ed25ac307

37 files changed:
scilab/modules/elementary_functions/help/en_US/elementarymatrices/ndgrid.xml
scilab/modules/elementary_functions/help/en_US/floating_point/number_properties.xml
scilab/modules/elementary_functions/help/en_US/matrixmanipulation/repmat.xml
scilab/modules/elementary_functions/help/en_US/matrixoperations/cumprod.xml
scilab/modules/elementary_functions/help/en_US/matrixoperations/cumsum.xml
scilab/modules/elementary_functions/help/en_US/searchandsort/lex_sort.xml
scilab/modules/elementary_functions/help/en_US/setoperations/intersect.xml
scilab/modules/elementary_functions/help/en_US/signalprocessing/bloc2exp.xml
scilab/modules/elementary_functions/help/en_US/signalprocessing/bloc2ss.xml
scilab/modules/elementary_functions/help/en_US/signalprocessing/ssrand.xml
scilab/modules/elementary_functions/help/en_US/signalprocessing/sysconv.xml
scilab/modules/elementary_functions/help/en_US/signalprocessing/syslin.xml
scilab/modules/elementary_functions/help/fr_FR/matrixmanipulation/repmat.xml
scilab/modules/elementary_functions/help/pt_BR/discrete/binomial.xml
scilab/modules/elementary_functions/help/pt_BR/floating_point/number_properties.xml
scilab/modules/elementary_functions/help/pt_BR/signalprocessing/bloc2exp.xml
scilab/modules/elementary_functions/help/pt_BR/signalprocessing/ssrand.xml
scilab/modules/elementary_functions/help/pt_BR/signalprocessing/sysconv.xml
scilab/modules/elementary_functions/help/pt_BR/signalprocessing/syslin.xml
scilab/modules/helptools/Makefile.am
scilab/modules/helptools/Makefile.in
scilab/modules/helptools/bin/scivalid
scilab/modules/helptools/bin/scivalid.bat
scilab/modules/helptools/help/en_US/howtolinktoolbox.xml
scilab/modules/helptools/help/en_US/man.xml
scilab/modules/helptools/help/en_US/xmltochm.xml
scilab/modules/helptools/help/pt_BR/percenthelps.xml
scilab/modules/helptools/schema/dbits.rng [new file with mode: 0644]
scilab/modules/helptools/schema/docbook.rng [new file with mode: 0644]
scilab/modules/helptools/schema/docbookxi.rng [new file with mode: 0644]
scilab/modules/helptools/schema/mathml3-common.rng [new file with mode: 0644]
scilab/modules/helptools/schema/mathml3-content.rng [new file with mode: 0644]
scilab/modules/helptools/schema/mathml3-presentation.rng [new file with mode: 0644]
scilab/modules/helptools/schema/mathml3.rng [new file with mode: 0644]
scilab/modules/helptools/schema/scilab.rnc [deleted file]
scilab/modules/helptools/schema/scilab.rng
scilab/modules/xcos/help/fr_FR/scilab_utilities_functions/block_parameter_error.xml

index 795e540..f79e766 100644 (file)
@@ -1,46 +1,31 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<refentry version="5.0-subset Scilab" xml:id="ndgrid" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="ndgrid" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>ndgrid</refname>
-
     <refpurpose>arrays for multidimensional function evaluation on
     grid</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>[X, Y] = ndgrid(x,y)
 [X, Y, Z] = ndgrid(x,y,z)
 [X, Y, Z, T] = ndgrid(x,y,z,t)
 [X1, X2, ..., Xm] = ndgrid(x1,x2,...,xm)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Arguments</title>
-
     <variablelist>
       <varlistentry>
         <term>x, y, z, ...</term>
-
         <listitem>
           <para>vectors</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>X, Y, Z, ...</term>
-
         <listitem>
           <para>matrices in case of 2 input arguments, or else
           hypermatrices</para>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
     <para>This is an utility routine useful to create arrays for function
     evaluation on 2, 3, ..., n dimensional grids. For instance in 2d, a grid
     is defined by two vectors, <literal>x</literal> and <literal> y</literal>
     <emphasis>i=1,..,nx</emphasis> and <emphasis>j=1,..,ny</emphasis>. In this
     case, this function can compute the two matrices <literal>X,Y</literal> of
     size <emphasis>nx x ny</emphasis> such that :</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
 X(i,j) = x(i)   for all i in [1,nx]
 Y(i,j) = y(j)       and j in [1,ny]
  ]]></programlisting>
-
     <para>and the evaluation may be done with <literal>Z=f(X,Y)</literal> (at
     the condition that you have coded <literal>f</literal> for evaluation on
     vector arguments, which is done (in general) by using the element-wise
     operators <literal>.*</literal>, <literal>./</literal> and
     <literal>.^</literal> in place of <literal>*</literal>,
     <literal>/</literal> and <literal>^</literal>).</para>
-
     <para>In the 3d case, considering 3 vectors <literal>x,y,z</literal> of
     length nx, ny and nz, <literal>X,Y,Z</literal> are 3 hypermatrices of size
     <emphasis>nx x ny x nz</emphasis> such that :</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
 X(i,j,k) = x(i)  
 Y(i,j,k) = y(j)   for all (i,j,k) in [1,nx]x[1,ny]x[1,nz]
 Z(i,j,k) = z(k)
  ]]></programlisting>
-
     <para>In the general case of m input arguments <literal>x1, x2, ..,
     xm</literal>, then the m output arguments <literal>X1, X2, ..,
     Xm</literal> are hypermatrices of size <emphasis>nx1 x nx2 x ... x
     nxm</emphasis> and :</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
 Xj(i1,i2,...,ij,...,im) = xj(ij)   
 for all (i1,i2,...,im) in [1,nx1]x[1,nx2]x...x[1,nxm]  
  ]]></programlisting>
   </refsection>
-
   <refsection>
     <title>Examples</title>
-
     <programlisting role="example"><![CDATA[  
 // create a simple 2d grid
 nx = 40; ny = 40;
@@ -139,18 +114,16 @@ plot3d(XF,YF,ZF, flag=[0 6 3], leg="X@Y@Z")
 xtitle("A 3d grid !"); show_window()
  ]]></programlisting>
   </refsection>
-
   <refsection role="see also">
-<title>See Also</title>
-
+    <title>See Also</title>
     <simplelist type="inline">
-      <member><link linkend="kron">kron</link></member>
+      <member>
+        <link linkend="kron">kron</link>
+      </member>
     </simplelist>
   </refsection>
-
   <refsection>
     <title>Authors</title>
-
     <para>B. Pincon</para>
   </refsection>
 </refentry>
index 78e9e88..0c59832 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
-<refentry version="5.0-subset Scilab" xml:id="number_properties" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="number_properties" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>number_properties</refname>
-
     <refpurpose>determine floating-point parameters</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>pr = number_properties(prop)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Arguments</title>
-
     <variablelist>
       <varlistentry>
         <term>prop</term>
-
         <listitem>
           <para>string</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>pr</term>
-
         <listitem>
           <para>real or boolean scalar</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
     <para>This function may be used to get the characteristic
     numbers/properties of the floating point set denoted here by
     <literal>F(b,p,emin,emax)</literal> (usually the 64 bits float numbers set
     prescribe by IEEE 754). Numbers of <literal>F</literal> are of the
     form:</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
 sign * m * b^e
  ]]></programlisting>
-
     <para><literal>e</literal> is the exponent and <literal>m</literal> the
     mantissa:</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
 m = d_1 b^(-1) + d_2 b^(-2) + .... + d_p b^(-p)
  ]]></programlisting>
-
     <para><literal>d_i</literal> the digits are in <literal>[0, b-1]</literal>
     and <literal>e</literal> in <literal>[emin, emax]</literal>, the number is
     said "normalised" if <literal>d_1 ~= 0</literal>. The following may be
     gotten:</para>
-
     <variablelist>
       <varlistentry>
         <term>prop = "radix"</term>
-
         <listitem>
           <para>then <literal>pr</literal> is the radix <literal>b</literal>
           of the set <literal>F</literal></para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>prop = "digits"</term>
-
         <listitem>
           <para>then <literal>pr</literal> is the number of digits
           <literal>p</literal></para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>prop = "huge"</term>
-
         <listitem>
           <para>then <literal>pr</literal> is the max positive float of
           <literal>F</literal></para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>prop = "tiny"</term>
-
         <listitem>
           <para>then <literal>pr</literal> is the min positive normalised
           float of <literal>F</literal></para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>prop = "denorm"</term>
-
         <listitem>
           <para>then <literal>pr</literal> is a boolean (%t if denormalised
           numbers are used)</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>prop = "tiniest"</term>
-
         <listitem>
           <para>then if denorm = %t, <literal>pr</literal> is the min positive
           denormalised number else <literal>pr</literal> = tiny</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>prop = "eps"</term>
-
         <listitem>
           <para>then <literal>pr</literal> is the epsilon machine ( generally
           (<literal>b^(1-p))/2</literal> ) which is the relative max error
@@ -136,28 +101,22 @@ m = d_1 b^(-1) + d_2 b^(-2) + .... + d_p b^(-p)
           <literal>F</literal></para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>prop = "minexp"</term>
-
         <listitem>
           <para>then <literal>pr</literal> is <literal>emin</literal></para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>prop = "maxexp"</term>
-
         <listitem>
           <para>then <literal>pr</literal> is <literal>emax</literal></para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Remarks</title>
-
     <para>This function uses the lapack routine dlamch to get the machine
     parameters (the names (radix, digit, huge, etc...) are those recommended
     by the LIA 1 standard and are different from the corresponding lapack's
@@ -167,29 +126,26 @@ m = d_1 b^(-1) + d_2 b^(-2) + .... + d_p b^(-p)
     (b^(1-p))/2</literal> if normal rounding occurs and <literal>eps =
     b^(1-p)</literal> if not.</para>
   </refsection>
-
   <refsection>
     <title>Examples</title>
-
     <programlisting role="example"><![CDATA[ 
 b = number_properties("radix")
 eps = number_properties("eps")
  ]]></programlisting>
   </refsection>
-
   <refsection role="see also">
-<title>See Also</title>
-
+    <title>See Also</title>
     <simplelist type="inline">
-      <member><link linkend="nearfloat">nearfloat</link></member>
-
-      <member><link linkend="frexp">frexp</link></member>
+      <member>
+        <link linkend="nearfloat">nearfloat</link>
+      </member>
+      <member>
+        <link linkend="frexp">frexp</link>
+      </member>
     </simplelist>
   </refsection>
-
   <refsection>
     <title>Authors</title>
-
     <para>Bruno Pincon</para>
   </refsection>
 </refentry>
index 93c8c42..d650d4d 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="repmat" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="repmat" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate: 2011-01-12  (mer, 12 jan 2011)
     $</pubdate>
   </info>
-
   <refnamediv>
     <refname>repmat</refname>
-
     <refpurpose>Replicate and tile an array</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>B = repmat(A,m,n,...)</synopsis>
     <synopsis>B = repmat(A,siz)</synopsis>
     <synopsis>B = repmat(A,m)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Arguments</title>
-
     <variablelist>
       <varlistentry>
         <term>A</term>
-
         <listitem>
           <para>input 2D array.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>m, n, ...</term>
         <listitem>
           each dimension of <literal>B</literal>.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>siz</term>
-
         <listitem>
           <para>vector of integer, each element gives the number of
           <literal>A</literal> blocks for corresponding dimension of
           <literal>B</literal>.</para>
         </listitem>
       </varlistentry>
-
-
       <varlistentry>
-        <term>B</term> 
-
+        <term>B</term>
         <listitem>
           <para>resulting array form by tiling the <literal>A</literal> 2D array.</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
     <para><literal>repmat(A,m,n)</literal> or similarily
     <literal>repmat(A,[m,n])</literal> returns a large matrix
     consisting of an <literal>m</literal>-by- <literal>n</literal>
     tiling of copies of <literal>A</literal>. The size of the result
     is <literal>[size(A,1)*M, size(A,2)*N]</literal>.</para>
-
     <para><literal>repmat(A,m)</literal> creates an
     <literal>m</literal>-by- <literal>m</literal>tiling.</para>
-
-
     <para><literal>repmat(A,[m n p ...])</literal> tiles the array A to produce a 
     multidimensional array  composed of copies of  <literal>A</literal>. The size of the result is 
-    <literal>[size(A,1)*M, size(A,2)*N, size(A,3)*P, ...] </literal></para>.
-
-
+    <literal>[size(A,1)*M, size(A,2)*N, size(A,3)*P, ...] </literal>.</para>
     <para>For now,only arrays of real, integer, boolean, character
     string, polynomial and rational as well as sparse matrices are
     supported. This function definition can be extended using
     overloading mechanism.</para>
   </refsection>
-
   <refsection>
     <title>Examples</title>
-
     <programlisting role="example"><![CDATA[ 
     repmat(1:3,2,2)
     repmat(int8([1 0 1;0 1 0]),2,3,2)
 
  ]]></programlisting>
   </refsection>
-
   <refsection>
     <title>See Also</title>
-
     <simplelist type="inline">
-      <member><link linkend="matrix">matrix</link></member>
-
-      <member><link linkend="extraction">extraction</link></member>
-
-      <member><link linkend="size">size</link></member>
+      <member>
+        <link linkend="matrix">matrix</link>
+      </member>
+      <member>
+        <link linkend="extraction">extraction</link>
+      </member>
+      <member>
+        <link linkend="size">size</link>
+      </member>
     </simplelist>
   </refsection>
-
   <refsection>
     <title>Authors</title>
-
     <para>Serge Steer, INRIA</para>
   </refsection>
 </refentry>
index 398b87b..7ffcf04 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="cumprod" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="cumprod" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>cumprod</refname>
-
     <refpurpose>cumulative product of array elements</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
-    <synopsis>y=cumprod(x)
-    y=cumprod(x,orientation)
-    y=cumprod(x,outtype)
-    y=cumprod(x,orientation,outtype)
-    </synopsis>
+    <synopsis>y=cumprod(x)</synopsis>
+    <synopsis>y=cumprod(x,orientation)</synopsis>
+    <synopsis>y=cumprod(x,outtype)</synopsis>
+    <synopsis>y=cumprod(x,orientation,outtype)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Arguments</title>
-
-    <variablelist>
-      <varlistentry>
-        <term>x</term>
-
-        <listitem>
-          <para>
+    <para>
+      <variablelist>
+        <varlistentry>
+          <term>x</term>
+          <listitem>
+            <para>
             an array of  reals, complex, booleans,  polynomials or
             rational fractions.
           </para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term>orientation</term>
-        <listitem>
-          <para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>orientation</term>
+          <listitem>
+            <para>
             it can be either </para>
             <itemizedlist>
               <listitem>
               <listitem>
                 <para>a number with positive integer value</para>
               </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term>outtype</term>
-        <listitem>
-          <para>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>outtype</term>
+          <listitem>
+            <para>
             a string with possible values <literal>"native"</literal> or <literal>"double"</literal>. </para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>y</term>
-
-        <listitem>
-          <para>scalar or array</para>
-        </listitem>
-      </varlistentry>
-    </variablelist>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>y</term>
+          <listitem>
+            <para>scalar or array</para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </para>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
     <para>For an array <literal>x</literal>,
     <literal>y=cumprod(x)</literal> returns in the scalar <literal>y</literal> the
     cumulative product of all the elements of <literal>x</literal>.</para>
-
     <para><literal>y=cumprod(x,orientation)</literal> returns in
     <literal>y</literal> the cumulative product of <literal>x</literal> along the
     dimension given by <literal>orientation</literal>:</para>
-
     <itemizedlist>
- <listitem>
+      <listitem>
         <para>if <literal>orientation</literal> is equal to 1 or "r" then</para>
-        <para><latex> <![CDATA[ y(\mathbf{l},j) = \prod_{\mathbf{i}=1}^l x(\mathbf{i},j)]]> </latex></para> 
-        <para>or </para> 
-        <para><latex> <![CDATA[ y(\mathbf{l},j,k,\ldots) = \prod_{\mathbf{i}=1}^l x(\mathbf{i},j,k,\ldots)]]> </latex> </para>
+        <para>
+          <latex><![CDATA[ y(\mathbf{l},j) = \prod_{\mathbf{i}=1}^l x(\mathbf{i},j)]]></latex>
+        </para>
+        <para>or </para>
+        <para>
+          <latex><![CDATA[ y(\mathbf{l},j,k,\ldots) = \prod_{\mathbf{i}=1}^l x(\mathbf{i},j,k,\ldots)]]></latex>
+        </para>
       </listitem>
       <listitem>
         <para>Si <literal>orientation</literal>  est égal à  2 ou "c" alors:</para>
-        <para><latex><![CDATA[ y(i,\mathbf{l}) = \prod_{\mathbf{j}=1}^l x(i,{\mathbf{j})]]> </latex></para> 
-        <para> or </para> 
-        <para><latex><![CDATA[ y(i,\mathbf{l},k,\ldots) = \prod_{\mathbf{j}=1}^l x(i,\mathbf{j},k,\ldots)]]> </latex> </para>
+        <para>
+          <latex><![CDATA[ y(i,\mathbf{l}) = \prod_{\mathbf{j}=1}^l x(i,{\mathbf{j})]]></latex>
+        </para>
+        <para> or </para>
+        <para>
+          <latex><![CDATA[ y(i,\mathbf{l},k,\ldots) = \prod_{\mathbf{j}=1}^l x(i,\mathbf{j},k,\ldots)]]></latex>
+        </para>
       </listitem>
       <listitem>
         <para>if <literal>orientation</literal> is equal to n  then</para>
-        <para><latex><![CDATA[ y(i_1,\ldots,i_{n-1},\mathbf{l},i_{n+1},\ldots) = \prod_{\mathbf{i_n}=1}^l x(i_1,\ldots,i_{n-1},\mathbf{i_n},i_{n+1},\ldots)]]> </latex> </para>
+        <para>
+          <latex><![CDATA[ y(i_1,\ldots,i_{n-1},\mathbf{l},i_{n+1},\ldots) = \prod_{\mathbf{i_n}=1}^l x(i_1,\ldots,i_{n-1},\mathbf{i_n},i_{n+1},\ldots)]]></latex>
+        </para>
       </listitem>
       <listitem>
         <para><literal>y=cumprod(x,"*")</literal> is equivalent to <literal>y=cumprod(x)</literal> </para>
          Matlab compatibility.</para>
       </listitem>
     </itemizedlist>
-
-    <para></para>
+    <para/>
     <para>The <literal>outtype</literal>  argument rules the way the product is done:</para>
     <itemizedlist>
       <listitem>
         <para>For arrays of integers,</para>
         <para> if <literal>outtype="native"</literal> the evaluation is done using integer
         computations (modulo 2^b, where b is the number of bits used),</para>
-         <para> if <literal>outtype="double"</literal> the evaluation is done using floating point
+        <para> if <literal>outtype="double"</literal> the evaluation is done using floating point
         computations.</para>
         <para>The default value is <literal>outtype="native"</literal>.</para>
       </listitem>
         <para>For arrays of booleans,</para>
         <para> if <literal>outtype="native"</literal> the evaluation is done using boolean
         computations ( + is replaced by |),</para>
-         <para> if <literal>outtype="double"</literal> the evaluation is done using floating point
+        <para> if <literal>outtype="double"</literal> the evaluation is done using floating point
         computations (%t values are replaced by 1 and %f values by 0).</para>
-         <para>The default value is <literal>outtype="double"</literal>.</para>
+        <para>The default value is <literal>outtype="double"</literal>.</para>
       </listitem>
-
     </itemizedlist>
   </refsection>
-
   <refsection>
     <title>Remark</title>
-    <para>This function applies, with identical rules to <link
-    linkend="sparse">sparse matrices</link> and <link
-    linkend="hypermat">hypermatrices</link>.</para>
+    <para>This function applies, with identical rules to <link linkend="sparse">sparse matrices</link> and <link linkend="hypermat">hypermatrices</link>.</para>
   </refsection>
-
   <refsection>
     <title>Examples</title>
-
     <programlisting role="example"><![CDATA[ 
 A=[1,2;3,4];
 cumprod(A)
@@ -183,12 +168,15 @@ cumprod(B) //evaluation in float
 cumprod(B,"native") //similar to or(B)
  ]]></programlisting>
   </refsection>
-
   <refsection role="see also">
-<title>See Also</title>
+    <title>See Also</title>
     <simplelist type="inline">
-      <member><link linkend="prod">prod</link></member>
-      <member><link linkend="cumsum">cumsum</link></member>
+      <member>
+        <link linkend="prod">prod</link>
+      </member>
+      <member>
+        <link linkend="cumsum">cumsum</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index df228af..85166a3 100644 (file)
@@ -1,69 +1,56 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2010 - Serge Steer - INRIA
- * 
- * This file must be used under the terms of the CeCILL.
- * This source file is licensed as described in the file COPYING, which
- * you should have received as part of this distribution.  The terms
- * are also available at    
- * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- -->
-<refentry version="5.0-subset Scilab" xml:id="cumsum" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<!-- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab * 
+       Copyright (C) 2010 - Serge Steer - INRIA * * This file must be used under 
+       the terms of the CeCILL. * This source file is licensed as described in the 
+       file COPYING, which * you should have received as part of this distribution. 
+       The terms * are also available at * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt 
+       * -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>cumsum</refname>
-
     <refpurpose>cumulative sum of array elements</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
-    <synopsis>y=cumsum(x)
-    y=cumsum(x,orientation)
-    y=cumsum(x,outtype)
-    y=cumsum(x,orientation,outtype)
-    </synopsis>
+    <synopsis>y=cumsum(x)</synopsis>
+    <synopsis>y=cumsum(x,orientation)</synopsis>
+    <synopsis>y=cumsum(x,outtype)</synopsis>
+    <synopsis>y=cumsum(x,orientation,outtype)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Arguments</title>
-
     <variablelist>
       <varlistentry>
         <term>x</term>
-
         <listitem>
-          <para>
-            an array of  reals, complex, booleans,  polynomials or
-          rational fractions.
-          </para>
+          <para>an array of reals, complex, booleans, polynomials or
+                                               rational fractions.</para>
         </listitem>
       </varlistentry>
       <varlistentry>
         <term>orientation</term>
         <listitem>
           <para>
-            This argument can be</para>
-            <itemizedlist>
-              <listitem>
-                <para>either a string with possible values <literal>"*"</literal>, <literal>"r"</literal>, 
-                <literal>"c"</literal> or  <literal>"m"</literal></para>
-              </listitem>
-              <listitem>
-                <para>or a number with positive integer value</para>
-              </listitem>
+                                               This argument can be</para>
+          <itemizedlist>
+            <listitem>
+              <para>
+                                                               either a string with possible values
+                                                               <literal>"*"</literal>
+                                                               ,
+                                                               <literal>"r"</literal>
+                                                               ,
+                                                               <literal>"c"</literal>
+                                                               or
+                                                               <literal>"m"</literal>
+                                                       </para>
+            </listitem>
+            <listitem>
+              <para>or a number with positive integer value</para>
+            </listitem>
           </itemizedlist>
         </listitem>
       </varlistentry>
         <term>outtype</term>
         <listitem>
           <para>
-            a string with possible values <literal>"native"</literal> or <literal>"double"</literal>. </para>
+                                               a string with possible values
+                                               <literal>"native"</literal>
+                                               or
+                                               <literal>"double"</literal>
+                                               .
+                                       </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>y</term>
-
         <listitem>
           <para>scalar or array</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
-    <para>For an array <literal>x</literal>,
-    <literal>y=cumsum(x)</literal> returns in the scalar <literal>y</literal> the
-    cumulative sum of all the elements of <literal>x</literal>.</para>
-
-    <para><literal>y=cumsum(x,orientation)</literal> returns in
-    <literal>y</literal> the cumulative sum of <literal>x</literal> along the
-    dimension given by <literal>orientation</literal>:</para>
-
+    <para>
+                       For an array
+                       <literal>x</literal>
+                       ,
+                       <literal>y=cumsum(x)</literal>
+                       returns in the scalar
+                       <literal>y</literal>
+                       the
+                       cumulative sum of all the elements of
+                       <literal>x</literal>
+                       .
+               </para>
+    <para><literal>y=cumsum(x,orientation)</literal>
+                       returns in
+                       <literal>y</literal>
+                       the cumulative sum of
+                       <literal>x</literal>
+                       along the
+                       dimension given by
+                       <literal>orientation</literal>
+                       :
+               </para>
     <itemizedlist>
       <listitem>
-        <para>if <literal>orientation</literal> is equal to 1 or "r" then</para>
-        <para><latex> <![CDATA[ y(\mathbf{l},j) = \sum_{\mathbf{i}=1}^l x(\mathbf{i},j)]]> </latex></para> 
-        <para>or </para> 
-        <para><latex> <![CDATA[ y(\mathbf{l},j,k,\ldots) = \sum_{\mathbf{i}=1}^l x(\mathbf{i},j,k,\ldots)]]> </latex> </para>
+        <para>
+                                       if
+                                       <literal>orientation</literal>
+                                       is equal to 1 or "r" then
+                               </para>
+        <para>
+          <latex><![CDATA[ y(\mathbf{l},j) = \sum_{\mathbf{i}=1}^l x(\mathbf{i},j)]]></latex>
+        </para>
+        <para>or </para>
+        <para>
+          <latex><![CDATA[ y(\mathbf{l},j,k,\ldots) = \sum_{\mathbf{i}=1}^l x(\mathbf{i},j,k,\ldots)]]></latex>
+        </para>
       </listitem>
       <listitem>
-        <para>Si <literal>orientation</literal>  est égal à  2 ou "c" alors:</para>
-        <para><latex><![CDATA[ y(i,\mathbf{l}) = \sum_{\mathbf{j}=1}^l x(i,{\mathbf{j})]]> </latex></para> 
-        <para> or </para> 
-        <para><latex><![CDATA[ y(i,\mathbf{l},k,\ldots) = \sum_{\mathbf{j}=1}^l x(i,\mathbf{j},k,\ldots)]]> </latex> </para>
+        <para>
+                                       Si
+                                       <literal>orientation</literal>
+                                       est égal à 2 ou "c" alors:
+                               </para>
+        <para>
+          <latex><![CDATA[ y(i,\mathbf{l}) = \sum_{\mathbf{j}=1}^l x(i,{\mathbf{j})]]></latex>
+        </para>
+        <para> or </para>
+        <para>
+          <latex><![CDATA[ y(i,\mathbf{l},k,\ldots) = \sum_{\mathbf{j}=1}^l x(i,\mathbf{j},k,\ldots)]]></latex>
+        </para>
       </listitem>
       <listitem>
-        <para>if <literal>orientation</literal> is equal to n  then</para>
-        <para><latex><![CDATA[ y(i_1,\ldots,i_{n-1},\mathbf{l},i_{n+1},\ldots) = \sum_{\mathbf{i_n}=1}^l x(i_1,\ldots,i_{n-1},\mathbf{i_n},i_{n+1},\ldots)]]> </latex> </para>
+        <para>
+                                       if
+                                       <literal>orientation</literal>
+                                       is equal to n then
+                               </para>
+        <para>
+          <latex><![CDATA[ y(i_1,\ldots,i_{n-1},\mathbf{l},i_{n+1},\ldots) = \sum_{\mathbf{i_n}=1}^l x(i_1,\ldots,i_{n-1},\mathbf{i_n},i_{n+1},\ldots)]]></latex>
+        </para>
       </listitem>
       <listitem>
-        <para><literal>y=cumsum(x,"*")</literal> is equivalent to <literal>y=cumsum(x)</literal> </para>
+        <para><literal>y=cumsum(x,"*")</literal>
+                                       is equivalent to
+                                       <literal>y=cumsum(x)</literal>
+                               </para>
       </listitem>
       <listitem>
-        <para><literal>y=cumsum(x,"m")</literal> is equivalent to
-        <literal>y=cumsum(x,orientation)</literal> where
-        <literal>orientation</literal> is the index of the
-        first dimension of  <literal>x</literal> that is greater than 1. This option is used for
-         Matlab compatibility.</para>
+        <para><literal>y=cumsum(x,"m")</literal>
+                                       is equivalent to
+                                       <literal>y=cumsum(x,orientation)</literal>
+                                       where
+                                       <literal>orientation</literal>
+                                       is the index of the
+                                       first dimension of
+                                       <literal>x</literal>
+                                       that is greater than 1. This option is used for
+                                       Matlab
+                                       compatibility.
+                               </para>
       </listitem>
     </itemizedlist>
-
-    <para></para>
-    <para>The <literal>outtype</literal>  argument rules the way the summation is done:</para>
+    <para/>
+    <para>
+                       The
+                       <literal>outtype</literal>
+                       argument rules the way the summation is done:
+               </para>
     <itemizedlist>
       <listitem>
-        <para>For arrays of floats, of polynomials, of rational
-        fractions, the evaluation is always done using floating points
-        computations. The <literal>"double"</literal> or <literal>"native"</literal> options are equivalent.</para>
+        <para>
+                                       For arrays of floats, of polynomials, of rational
+                                       fractions, the
+                                       evaluation is always done using floating points
+                                       computations. The
+                                       <literal>"double"</literal>
+                                       or
+                                       <literal>"native"</literal>
+                                       options are equivalent.
+                               </para>
       </listitem>
       <listitem>
         <para>For arrays of integers,</para>
-        <para> if <literal>outtype="native"</literal> the evaluation is done using integer
-        computations (modulo 2^b, where b is the number of bits used),</para>
-         <para> if <literal>outtype="double"</literal> the evaluation is done using floating point
-        computations.</para>
-        <para>The default value is <literal>outtype="native"</literal>.</para>
+        <para>
+                                       if
+                                       <literal>outtype="native"</literal>
+                                       the evaluation is done using integer
+                                       computations (modulo 2^b, where
+                                       b is the number of bits used),
+                               </para>
+        <para>
+                                       if
+                                       <literal>outtype="double"</literal>
+                                       the evaluation is done using floating point
+                                       computations.
+                               </para>
+        <para>
+                                       The default value is
+                                       <literal>outtype="native"</literal>
+                                       .
+                               </para>
       </listitem>
       <listitem>
         <para>For arrays of booleans,</para>
-        <para> if <literal>outtype="native"</literal> the evaluation is done using boolean
-        computations ( + is replaced by |),</para>
-         <para> if <literal>outtype="double"</literal> the evaluation is done using floating point
-        computations (%t values are replaced by 1 and %f values by 0).</para>
-         <para>The default value is <literal>outtype="double"</literal>.</para>
+        <para>
+                                       if
+                                       <literal>outtype="native"</literal>
+                                       the evaluation is done using boolean
+                                       computations ( + is replaced by
+                                       |),
+                               </para>
+        <para>
+                                       if
+                                       <literal>outtype="double"</literal>
+                                       the evaluation is done using floating point
+                                       computations (%t values
+                                       are replaced by 1 and %f values by 0).
+                               </para>
+        <para>
+                                       The default value is
+                                       <literal>outtype="double"</literal>
+                                       .
+                               </para>
       </listitem>
-
     </itemizedlist>
   </refsection>
   <refsection>
     <title>Remark</title>
-    <para>This function applies, with identical rules to <link
-    linkend="sparse">sparse matrices</link> and <link
-    linkend="hypermat">hypermatrices</link>.</para>
+    <para>
+                       This function applies, with identical rules to
+                       <link linkend="sparse">sparse matrices</link>
+                       and
+                       <link linkend="hypermat">hypermatrices</link>
+                       .
+               </para>
   </refsection>
-
   <refsection>
     <title>Examples</title>
-
     <programlisting role="example"><![CDATA[ 
 A=[1,2;3,4];
 cumsum(A)
@@ -182,12 +254,15 @@ cumsum(B) //evaluation in float
 cumsum(B,"native") //similar to or(B)
  ]]></programlisting>
   </refsection>
-
   <refsection role="see also">
-<title>See Also</title>
+    <title>See Also</title>
     <simplelist type="inline">
-      <member><link linkend="sum">sum</link></member>
-      <member><link linkend="cumprod">cumprod</link></member>
+      <member>
+        <link linkend="sum">sum</link>
+      </member>
+      <member>
+        <link linkend="cumprod">cumprod</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index e3d418b..d3cad5d 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="lex_sort" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="lex_sort" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>lex_sort</refname>
-
     <refpurpose>lexicographic matrix rows sorting</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>[N, [k]]=lex_sort(M [,sel] [,'unique'])
 </synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Arguments</title>
-
     <variablelist>
       <varlistentry>
         <term>M</term>
-
         <listitem>
           <para>real matrix</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>N</term>
-
         <listitem>
           <para>real matrix</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>k</term>
-
         <listitem>
           <para>column vector of integers</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
     <para>the <literal>lex_sort</literal> function is now obsolete. It can be
-    replaced by functions <link linkend="gsort">gsort</link> and <link
-    linkend="unique">unique</link>.</para>
-
+    replaced by functions <link linkend="gsort">gsort</link> and <link linkend="unique">unique</link>.</para>
     <para><literal>N=lex_sort(M)</literal> sorts the rows (as a group) of the
     matrix <literal>M</literal> in ascending order. If required the output
     argument <literal>k</literal> contains the ordering:
     <literal>[N,k]=lex_sort(M)</literal> returns <literal>k</literal> such as
     <literal>N</literal> is uequal to <literal>M(k,:)</literal> .</para>
-
     <para><literal>N=lex_sort(M,sel [,'unique'])</literal> produces the same
     result as the following sequence of instructions:</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
 [N,k]=lex_sort(M(:,sel) [,'unique']);
 N=M(k,:)
  ]]></programlisting>
-
     <para>The <literal>'unique'</literal> flag has to be given if one wants to
     retain only unique rows in the result. Note that
     <literal>lex_sort(M,sel,'unique')</literal> retains only rows such that
     M(:,sel) are unique.</para>
   </refsection>
-
   <refsection>
     <title>Examples</title>
-
     <programlisting role="example"><![CDATA[ 
 M=round(2*rand(20,3));
 
@@ -102,14 +76,15 @@ lex_sort(M,'unique')
 [N,k]=lex_sort(M,[1 3],'unique')
  ]]></programlisting>
   </refsection>
-
   <refsection role="see also">
-<title>See Also</title>
-
+    <title>See Also</title>
     <simplelist type="inline">
-      <member><link linkend="gsort">gsort</link></member>
-
-      <member><link linkend="unique">unique</link></member>
+      <member>
+        <link linkend="gsort">gsort</link>
+      </member>
+      <member>
+        <link linkend="unique">unique</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index 028f05d..8e8ed10 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="intersect" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="intersect" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>intersect</refname>
-
     <refpurpose>returns the vector of common values of two
     vectors</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
-    <synopsis>
-      [v [,ka,kb]]=intersect(a,b)
-      [v [,ka,kb]]=intersect(a,b,orient)
-    </synopsis>
+    <synopsis>[v [,ka,kb]]=intersect(a,b)</synopsis>
+    <synopsis>[v [,ka,kb]]=intersect(a,b,orient)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Arguments</title>
-
     <variablelist>
       <varlistentry>
         <term>a</term>
-
         <listitem>
           <para>vector of numbers or strings</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>b</term>
-
         <listitem>
           <para>vector of numbers or strings</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>orient</term>
-
         <listitem>
           <para>flag with possible values : 1 or "r", 2 or "c"</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>v</term>
-
         <listitem>
           <para>row vector of numbers or strings</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>ka</term>
-
         <listitem>
           <para>row vector of integers</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>kb</term>
-
         <listitem>
           <para>row vector of integers</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
     <para><literal>intersect(a,b)</literal> returns a sorted row vector of
     common values of two vectors of <literal>a</literal> and
     <literal>b</literal>.</para>
-
     <para><literal>[v,ka,kb]=intersect(a,b)</literal> also returns index
     vectors <literal>ka</literal> and <literal>kb</literal> such that
     <literal>v=a(ka)</literal> and <literal>v=b(kb)</literal>.</para>
-
     <para><literal>intersect(a,b,"r")</literal> or
     <literal>intersect(a,b,1)</literal>returns the matrix formed by the
     intersection of the unique rows of <literal>a</literal> and
     <literal>b</literal> sorted in lexicographic ascending order. In this case
     matrices <literal>a</literal> and <literal>b</literal> must have the same
     number of columns.</para>
-
     <para><literal>[v,ka,kb]=intersect(a,b,"r")</literal> also returns index
     vectors <literal>ka</literal> and <literal>kb</literal> such that
     <literal>v=a(ka,:)</literal> and <literal>v=b(kb,:)</literal>.</para>
-
     <para><literal>intersect(a,b,"c")</literal> or
     <literal>intersect(a,b,2)</literal>returns the matrix formed by the
     intersection of the unique columns of <literal>a</literal> and
     <literal>b</literal> sorted in lexicographic ascending order. In this case
     matrices <literal>a</literal> and <literal>b</literal> must have the same
     number of rows.</para>
-
     <para><literal>[v,ka,kb]=intersect(a,b,"c")</literal> also returns index
     vectors <literal>ka</literal> and <literal>kb</literal> such that
     <literal>v=a(:,ka)</literal> and <literal>v=b(:,kb)</literal>.</para>
   </refsection>
-
   <refsection>
     <title>Remark</title>
-
     <para>NaN are considered as different from themselves so they are excluded
     out of intersection in case of vector intersection.</para>
   </refsection>
-
   <refsection>
     <title>Examples</title>
-
     <programlisting role="example"><![CDATA[ 
 A=round(5*rand(10,1));
 B=round(5*rand(7,1));
@@ -164,16 +128,18 @@ B = [1,0,1;
 A(:,ka)
  ]]></programlisting>
   </refsection>
-
   <refsection role="see also">
-<title>See Also</title>
-
+    <title>See Also</title>
     <simplelist type="inline">
-      <member><link linkend="unique">unique</link></member>
-
-      <member><link linkend="gsort">gsort</link></member>
-
-      <member><link linkend="union">union</link></member>
+      <member>
+        <link linkend="unique">unique</link>
+      </member>
+      <member>
+        <link linkend="gsort">gsort</link>
+      </member>
+      <member>
+        <link linkend="union">union</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index 630f2a8..b51d1d2 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="bloc2exp" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="bloc2exp" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>bloc2exp</refname>
-
     <refpurpose>block-diagram to symbolic expression</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>[str]=bloc2exp(blocd)
 [str,names]=bloc2exp(blocd)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Arguments</title>
-
     <variablelist>
       <varlistentry>
         <term>blocd</term>
-
         <listitem>
           <para>list</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>str</term>
-
         <listitem>
           <para>string</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>names</term>
-
         <listitem>
           <para>string</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
     <para>given a block-diagram representation of a linear system
     <literal>bloc2exp</literal> returns its symbolic evaluation. The first
     element of the list <literal>blocd</literal> must be the string
     <literal>'blocd'</literal>. Each other element of this list
     <literal>(blocd(2),blocd(3),...)</literal> is itself a list of one the
     following types :</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
 list('transfer','name_of_linear_system')
  ]]></programlisting>
-
-    <programlisting role = ""><![CDATA[  
+    <programlisting><![CDATA[  
 list('link','name_of_link',
                [number_of_upstream_box,upstream_box_port],
                [downstream_box_1,downstream_box_1_portnumber],
                [downstream_box_2,downstream_box_2_portnumber],
                ...)
  ]]></programlisting>
-
     <para>The strings <literal>'transfer'</literal> and
     <literal>'links'</literal> are keywords which indicate the type of element
     in the block diagram.</para>
-
     <para>Case 1 : the second parameter of the list is a character string
     which may refer (for a possible further evaluation) to the Scilab name of
     a linear system given in state-space representation
     (<literal>syslin</literal> list) or in transfer form (matrix of
     rationals).</para>
-
     <para>To each transfer block is associated an integer. To each input and
     output of a transfer block is also associated its number, an integer (see
     examples)</para>
-
     <para>Case 2 : the second kind of element in a block-diagram
     representation is a link. A link links one output of a block represented
     by the pair <literal>[number_of_upstream_box,upstream_box_port]</literal>,
     to different inputs of other blocks. Each such input is represented by the
     pair
     <literal>[downstream_box_i,downstream_box_i_portnumber]</literal>.</para>
-
     <para>The different elements of a block-diagram can be defined in an
     arbitrary order.</para>
-
     <para>For example</para>
-
     <para>[1] <literal>S1*S2</literal> with unit feedback.</para>
-
     <para>There are 3 transfers <literal>S1</literal> (number
     <literal>n_s1=2</literal>) , <literal>S2</literal> (number
     <literal>n_s2=3</literal>) and an adder (number
     <literal>n_add=4</literal>) with symbolic transfer function
     <literal>['1','1']</literal>.</para>
-
     <para>There are 4 links. The first one (named <literal>'U'</literal>)
     links the input (port 0 of fictitious block -1, omitted) to port 1 of the
     adder. The second and third one link respectively (output)port 1 of the
@@ -129,8 +99,7 @@ list('link','name_of_link',
     fourth link (named <literal>'Y'</literal>) links (output)port 1 of
     <literal>S2</literal> to the output (port 0 of fictitious block -1,
     omitted) and to (input)port 2 of the adder.</para>
-
-    <programlisting role = "example"><![CDATA[ 
+    <programlisting role="example"><![CDATA[ 
 //Initialization
 syst=list('blocd'); l=1;
 
@@ -153,18 +122,14 @@ l=l+1;syst(l)=list('link','Y',[n_s2,1],[-1],[n_adder,2]);
 //Evaluation call
 w=bloc2exp(syst);
  ]]></programlisting>
-
     <para>The result is the character string:
     <literal>w=-(s2*s1-eye())\s2*s1</literal>.</para>
-
     <para>Note that invoked with two output arguments, <literal>[str,names]=
     blocd(syst)</literal> returns in <literal>names</literal> the list of
     symbolic names of named links. This is useful to set names to inputs and
     outputs.</para>
-
     <para>[2] second example</para>
-
-    <programlisting role = "example"><![CDATA[ 
+    <programlisting role="example"><![CDATA[ 
 //Initialization
 syst=list('blocd'); l=1;
 
@@ -183,24 +148,22 @@ l=l+1;syst(l)=list('link','y',[n_s,2],[n_k,1]);
 //Evaluation call
 w=bloc2exp(syst);
  ]]></programlisting>
-
     <para>In this case the result is a formula equivalent to the usual
     one:</para>
-
-    <para><literal>P11+P12*invr(eye()-K*P22)*K*P21;</literal></para>
+    <para>
+      <literal>P11+P12*invr(eye()-K*P22)*K*P21;</literal>
+    </para>
   </refsection>
-
   <refsection role="see also">
-<title>See Also</title>
-
+    <title>See Also</title>
     <simplelist type="inline">
-      <member><link linkend="bloc2ss">bloc2ss</link></member>
+      <member>
+        <link linkend="bloc2ss">bloc2ss</link>
+      </member>
     </simplelist>
   </refsection>
-
   <refsection>
     <title>Authors</title>
-
     <para>S. S., F. D. (INRIA)</para>
   </refsection>
 </refentry>
index af37bfd..1d10c1c 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="bloc2ss" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="bloc2ss" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>bloc2ss</refname>
-
     <refpurpose>block-diagram to state-space conversion</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>[sl]=bloc2ss(blocd)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Arguments</title>
-
     <variablelist>
       <varlistentry>
         <term>blocd</term>
-
         <listitem>
           <para>list</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>sl</term>
-
         <listitem>
           <para>list</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
     <para>Given a block-diagram representation of a linear system
     <literal>bloc2ss</literal> converts this representation to a state-space
     linear system. The first element of the list <literal>blocd</literal> must
     be the string <literal>'blocd'</literal>. Each other element of this list
     is itself a list of one the following types :</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
 list('transfer','name_of_linear_system')
  ]]></programlisting>
-
-    <programlisting role = ""><![CDATA[  
+    <programlisting><![CDATA[  
 list('link','name_of_link',
              [number_of_upstream_box,upstream_box_port],
              [downstream_box_1,downstream_box_1_portnumber],
              [downstream_box_2,downstream_box_2_portnumber],
              ...)
  ]]></programlisting>
-
     <para>The strings <literal>'transfer'</literal> and
     <literal>'links'</literal> are keywords which indicate the type of element
     in the block diagram.</para>
-
     <para>Case 1 : the second parameter of the list is a character string
     which may refer (for a possible further evaluation) to the Scilab name of
     a linear system given in state-space representation
     (<literal>syslin</literal> list) or in transfer form (matrix of
     rationals).</para>
-
     <para>To each transfer block is associated an integer. To each input and
     output of a transfer block is also associated its number, an integer (see
     examples)</para>
-
     <para>Case 2 : the second kind of element in a block-diagram
     representation is a link. A link links one output of a block represented
     by the pair <literal>[number_of_upstream_box,upstream_box_port]</literal>,
     to different inputs of other blocks. Each such input is represented by the
     pair
     <literal>[downstream_box_i,downstream_box_i_portnumber]</literal>.</para>
-
     <para>The different elements of a block-diagram can be defined in an
     arbitrary order.</para>
-
     <para>For example</para>
-
     <para>[1] <literal>S1*S2</literal> with unit feedback.</para>
-
     <para>There are 3 transfers <literal>S1</literal> (number
     <literal>n_s1=2</literal>) , <literal>S2</literal> (number
     <literal>n_s2=3</literal>) and an adder (number
     <literal>n_add=4</literal>) with symbolic transfer function
     <literal>['1','1']</literal>.</para>
-
     <para>There are 4 links. The first one (named <literal>'U'</literal>)
     links the input (port 0 of fictitious block -1, omitted) to port 1 of the
     adder. The second and third one link respectively (output)port 1 of the
@@ -119,8 +91,7 @@ list('link','name_of_link',
     fourth link (named <literal>'Y'</literal>) links (output)port 1 of
     <literal>S2</literal> to the output (port 0 of fictitious block -1,
     omitted) and to (input)port 2 of the adder.</para>
-
-    <programlisting role = "example"><![CDATA[ 
+    <programlisting role="example"><![CDATA[ 
 //Initialization
 syst=list('blocd'); l=1;
 
@@ -140,14 +111,11 @@ l=l+1;syst(l)=list('link',' ',[n_s1,1],[n_s2,1]);
 // Outputs // -1 -> output 1
 l=l+1;syst(l)=list('link','Y',[n_s2,1],[-1],[n_adder,2]);
  ]]></programlisting>
-
     <para>With <literal>s=poly(0,'s');S1=1/(s+1);S2=1/s;</literal> the result
     of the evaluation call <literal>sl=bloc2ss(syst);</literal> is a
     state-space representation for <literal>1/(s^2+s-1)</literal>.</para>
-
     <para>[2] LFT example</para>
-
-    <programlisting role = "example"><![CDATA[ 
+    <programlisting role="example"><![CDATA[ 
 //Initialization
 syst=list('blocd'); l=1;
 
@@ -163,10 +131,8 @@ l=l+1;syst(l)=list('link','z',[n_s,1],[-1]);
 l=l+1;syst(l)=list('link','u',[n_k,1],[n_s,2]);
 l=l+1;syst(l)=list('link','y',[n_s,2],[n_k,1]);
  ]]></programlisting>
-
     <para>With</para>
-
-    <programlisting role = "example"><![CDATA[ 
+    <programlisting role="example"><![CDATA[ 
 P=syslin('c',A,B,C,D);
 P11=P(1,1); 
 P12=P(1,2);
@@ -174,22 +140,19 @@ P21=P(2,1);
 P22=P(2,2);
 K=syslin('c',Ak,Bk,Ck,Dk);
  ]]></programlisting>
-
     <para><literal>bloc2exp(syst)</literal> returns the evaluation the lft of
     <literal>P</literal> and <literal>K</literal>.</para>
   </refsection>
-
   <refsection role="see also">
-<title>See Also</title>
-
+    <title>See Also</title>
     <simplelist type="inline">
-      <member><link linkend="bloc2exp">bloc2exp</link></member>
+      <member>
+        <link linkend="bloc2exp">bloc2exp</link>
+      </member>
     </simplelist>
   </refsection>
-
   <refsection>
     <title>Authors</title>
-
     <para>S. S., F. D. (INRIA)</para>
   </refsection>
 </refentry>
index 3b74b23..0f7ea89 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="ssrand" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="ssrand" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>ssrand</refname>
-
     <refpurpose>random system generator</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>sl=ssrand(nout,nin,nstate)
 [sl,U]=ssrand(nout,nin,nstate,flag)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Arguments</title>
-
     <variablelist>
       <varlistentry>
         <term>nout</term>
-
         <listitem>
           <para>integer (number of output)</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>nin</term>
-
         <listitem>
           <para>integer (number of input)</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>nstate</term>
-
         <listitem>
           <para>integer (dimension of state-space)</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>flag</term>
-
         <listitem>
           <para>list made of one character string and one or several
           integers</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>sl</term>
-
         <listitem>
           <para>list (<literal>syslin</literal> list)</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>U</term>
-
         <listitem>
           <para>square <literal>(nstate x nstate)</literal> nonsingular
           matrix</para>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
     <para><literal>sl=ssrand(nout,nin,nstate)</literal> returns a random
     strictly proper (<literal>D=0</literal>) state-space system of size
     <literal>[nout,nint]</literal> represented by a <literal>syslin</literal>
     list and with <literal>nstate</literal> state variables.</para>
-
     <para><literal>[sl,U]=ssrand(nout,nin,nstate,flag)</literal> returns a
     test linear system with given properties specified by
     <literal>flag</literal>. <literal>flag</literal> can be one of the
     following:</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
 flag=list('co',dim_cont_subs)  
 flag=list('uo',dim_unobs_subs)
 flag=list('ncno',dim_cno,dim_ncno,dim_co,dim_nco)
@@ -112,7 +85,6 @@ flag=list('dt',dim_inst_unob,dim_instb0,dim_unobs)
 flag=list('on',nr,ng,ng0,nv,rk)
 flag=list('ui',nw,nwu,nwui,nwuis,rk)
  ]]></programlisting>
-
     <para>The complete description of the <literal>Sys</literal> is given in
     the code of the <literal>ssrand</literal> function (in
     <literal>SCI/modules/cacsd/macros/</literal>). For example with
@@ -123,10 +95,8 @@ flag=list('ui',nw,nwu,nwui,nwuis,rk)
     "controllable", "unobservable", "non-controllable-non-observable",
     "stabilizable","detectable","output-nulling","unknown-input".</para>
   </refsection>
-
   <refsection>
     <title>Examples</title>
-
     <programlisting role="example"><![CDATA[ 
 //flag=list('st',dim_cont_subs,dim_stab_subs,dim_stab0)  
 //dim_cont_subs&lt;=dim_stab_subs&lt;=dim_stab0  
@@ -142,12 +112,12 @@ w=ss2ss(Sl,inv(U)); //undo the random change of basis => form as above
 [n,nc,u,sl]=st_ility(Sl);n,nc
  ]]></programlisting>
   </refsection>
-
   <refsection role="see also">
-<title>See Also</title>
-
+    <title>See Also</title>
     <simplelist type="inline">
-      <member><link linkend="syslin">syslin</link></member>
+      <member>
+        <link linkend="syslin">syslin</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index eb03b6c..0446d3c 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="sysconv" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="sysconv" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>sysconv</refname>
-
     <refpurpose>system conversion</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>[s1,s2]=sysconv(s1,s2)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Arguments</title>
-
     <variablelist>
       <varlistentry>
         <term>s1,s2</term>
-
         <listitem>
           <para>list (linear <literal>syslin</literal> systems)</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
     <para>Converts <literal>s1</literal> and <literal>s2</literal> into common
     representation in order that system interconnexion operations can be
     applied. Utility function for experts. The conversion rules in given in
     the following table.</para>
-
     <variablelist>
       <varlistentry>
         <term>"c"</term>
-
         <listitem>
           <para>continuous time system</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>"d"</term>
-
         <listitem>
           <para>discrete time system</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>n</term>
-
         <listitem>
           <para>sampled system with sampling period n</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>[]</term>
-
         <listitem>
           <para>system with undefined time domain For mixed systems
           <literal>s1</literal> and <literal>s2</literal> are put in
@@ -90,8 +67,7 @@
         </listitem>
       </varlistentry>
     </variablelist>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
  s1\s2 |    "c"     |     "d"     |      n2        |     []     |
  ---------------------------------------------------------------
  "c"   | nothing    |uncompatible | c2e(s1,n2)     |  c(s2)     |
  []    | c(s1)      | d(s1)       | e(s1,n2)       |  nothing   |
  ---------------------------------------------------------------
   ]]></programlisting>
-
     <para>With the following meaning:</para>
-
     <variablelist>
       <varlistentry>
         <term>n1,n2</term>
-
         <listitem>
           <para>sampling period</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>c2e(s,n)</term>
-
         <listitem>
           <para>the continuous-time system s is transformed into a sampled
           system with sampling period n.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>c(s)</term>
-
         <listitem>
           <para>conversion to continuous (time domain is
           <literal>"c"</literal>)</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>d(s)</term>
-
         <listitem>
           <para>conversion to discrete (time domain is
           <literal>"d"</literal>)</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>e(s,n)</term>
-
         <listitem>
           <para>conversion to samples system with period
           <literal>n</literal></para>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Examples</title>
-
     <programlisting role="example"><![CDATA[ 
 s1=ssrand(1,1,2);
 s2=ss2tf(s1);
 [s1,s2]=sysconv(s1,s2);
  ]]></programlisting>
   </refsection>
-
   <refsection role="see also">
-<title>See Also</title>
-
+    <title>See Also</title>
     <simplelist type="inline">
-      <member><link linkend="syslin">syslin</link></member>
-
-      <member><link linkend="ss2tf">ss2tf</link></member>
-
-      <member><link linkend="tf2ss">tf2ss</link></member>
+      <member>
+        <link linkend="syslin">syslin</link>
+      </member>
+      <member>
+        <link linkend="ss2tf">ss2tf</link>
+      </member>
+      <member>
+        <link linkend="tf2ss">tf2ss</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index db72bfc..21d77ea 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="syslin" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="syslin" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>syslin</refname>
-
     <refpurpose>linear system definition</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Calling Sequence</title>
-
     <synopsis>[sl]=syslin(dom,A,B,C [,D [,x0] ])
 [sl]=syslin(dom,N,D)
 [sl]=syslin(dom,H)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Arguments</title>
-
     <variablelist>
       <varlistentry>
         <term>dom</term>
-
         <listitem>
           <para>character string (<literal>'c'</literal>,
           <literal>'d'</literal>), or <literal>[]</literal> or a
           scalar.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>A,B,C,D</term>
-
         <listitem>
           <para>matrices of the state-space representation
           (<literal>D</literal> optional with default value zero matrix). For
           improper systems <literal>D</literal> is a polynomial matrix.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>x0</term>
-
         <listitem>
           <para>vector (initial state; default value is
           <literal>0</literal>)</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>N, D</term>
-
         <listitem>
           <para>polynomial matrices</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>H</term>
-
         <listitem>
           <para>rational matrix or linear state space representation</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>sl</term>
-
         <listitem>
           <para>tlist ("<literal>syslin</literal>" list) representing the
           linear system</para>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
     <para><literal>syslin</literal> defines a linear system as a list and
     checks consistency of data.</para>
-
     <para><literal>dom</literal> specifies the time domain of the system and
     can have the following values:</para>
-
     <para><literal>dom='c'</literal> for a continuous time system,
     <literal>dom='d'</literal> for a discrete time system,
     <literal>n</literal> for a sampled system with sampling period
     <literal>n</literal> (in seconds).</para>
-
     <para><literal>dom=[]</literal> if the time domain is undefined</para>
-
     <para>State-space representation:</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
 sl=syslin(dom,A,B,C [,D [,x0] ])
  ]]></programlisting>
-
     <para>represents the system :</para>
-
     <informalequation>
       <mediaobject>
         <imageobject>
-          <imagedata align="center" fileref="../../mml/syslin_equation_1.mml" />
+          <imagedata align="center" fileref="../../mml/syslin_equation_1.mml"/>
         </imageobject>
       </mediaobject>
     </informalequation>
-
     <para>The output of <literal>syslin</literal> is a list of the following
     form:
     <literal>sl=tlist(['lss','A','B','C','D','X0','dt'],A,B,C,D,x0,dom)</literal>
     Note that <literal>D</literal> is allowed to be a polynomial matrix
     (improper systems).</para>
-
     <para>Transfer matrix representation:</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
 sl=syslin(dom,N,D) 
 sl=syslin(dom,H)
  ]]></programlisting>
-
     <para>The output of <literal>syslin</literal> is a list of the following
     form : <literal>sl=tlist(['r','num','den','dt'],N,D,dom)</literal> or
     <literal>sl=tlist(['r','num','den','dt'],H(2),H(3),dom)</literal>.</para>
-
     <para>Linear systems defined as <literal>syslin</literal> can be
     manipulated as usual matrices (concatenation, extraction, transpose,
     multiplication, etc) both in state-space or transfer
     representation.</para>
-
     <para>Most of state-space control functions receive a
     <literal>syslin</literal> list as input instead of the four matrices
     defining the system.</para>
   </refsection>
-
   <refsection>
     <title>Examples</title>
-
     <programlisting role="example"><![CDATA[ 
 A=[0,1;0,0];B=[1;1];C=[1,1];
 S1=syslin('c',A,B,C)   //Linear system definition
@@ -175,26 +135,33 @@ S1*S2bis
 size(S1)
  ]]></programlisting>
   </refsection>
-
   <refsection role="see also">
-<title>See Also</title>
-
+    <title>See Also</title>
     <simplelist type="inline">
-      <member><link linkend="tlist">tlist</link></member>
-
-      <member><link linkend="lsslist">lsslist</link></member>
-
-      <member><link linkend="rlist">rlist</link></member>
-
-      <member><link linkend="ssrand">ssrand</link></member>
-
-      <member><link linkend="ss2tf">ss2tf</link></member>
-
-      <member><link linkend="tf2ss">tf2ss</link></member>
-
-      <member><link linkend="dscr">dscr</link></member>
-
-      <member><link linkend="abcd">abcd</link></member>
+      <member>
+        <link linkend="tlist">tlist</link>
+      </member>
+      <member>
+        <link linkend="lsslist">lsslist</link>
+      </member>
+      <member>
+        <link linkend="rlist">rlist</link>
+      </member>
+      <member>
+        <link linkend="ssrand">ssrand</link>
+      </member>
+      <member>
+        <link linkend="ss2tf">ss2tf</link>
+      </member>
+      <member>
+        <link linkend="tf2ss">tf2ss</link>
+      </member>
+      <member>
+        <link linkend="dscr">dscr</link>
+      </member>
+      <member>
+        <link linkend="abcd">abcd</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index 47ef073..36c4178 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="repmat" xml:lang="fr"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="repmat" xml:lang="fr">
   <info>
     <pubdate>$LastChangedDate: 2011-01-12  (mer, 12 jan 2011)
     $</pubdate>
   </info>
-
   <refnamediv>
     <refname>repmat</refname>
-
     <refpurpose>Définit un grand tableau par pavage avec un tableau 2D.</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Sequence d'appel</title>
-
     <synopsis>B = repmat(A,m,n,...)</synopsis>
     <synopsis>B = repmat(A,siz)</synopsis>
     <synopsis>B = repmat(A,m)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Arguments</title>
-
     <variablelist>
       <varlistentry>
         <term>A</term>
-
         <listitem>
           <para>tableau 2D.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>m, n, ...</term>
         <listitem>
           chaque dimension de <literal>B</literal>.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>siz</term>
-
         <listitem>
           <para>vecteur d'entiers, Chaque élément donne le nombre de
           copie de <literal>A</literal> pour la dimension
           correspondante de <literal>B</literal>.</para>
         </listitem>
       </varlistentry>
-
-
       <varlistentry>
-        <term>B</term> 
-
+        <term>B</term>
         <listitem>
           <para>Le tableau résultant du pavage.</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Description</title>
-
     <para><literal>repmat(A,m,n)</literal> or de façon équivalente,
     <literal>repmat(A,[m,n])</literal> retourne un grand tableau formé
     d'un pavage <literal>m</literal>-par- <literal>n</literal> avec
     des copies de <literal>A</literal>.  La taille du résultat est
     <literal>[size(A,1)*M, size(A,2)*N]</literal>.</para>
-
     <para><literal>repmat(A,m)</literal> crée un pavage 
     <literal>m</literal>-by- <literal>m</literal>.</para>
-
-
     <para><literal>repmat(A,[m n p ...])</literal> pave un tableau
     mutidimensionnel <literal>m</literal>-par-
     <literal>n</literal>-par- <literal>p</literal> ... avec des copies
     de <literal>A</literal>. La taille du résultat est
     <literal>[size(A,1)*M, size(A,2)*N, size(A,3)*P,
-    ...]</literal></para>.
-
-
+    ...]</literal>.</para>
     <para>Cette fonction supporte les tableaux de réels, d'entiers, de
     booléens, de chaînes de caractères, de polynômes, et de fractions
     rationnelles ainsi que les matrices creuses. Cette fonction peut
     être étendue en utilisant le méchanisme de surcharge.</para>
   </refsection>
-
   <refsection>
     <title>Exemples</title>
-
     <programlisting role="example"><![CDATA[ 
     repmat(1:3,2,2)
     repmat(int8([1 0 1;0 1 0]),2,3,2)
 
  ]]></programlisting>
   </refsection>
-
   <refsection role="see also">
-<title>Voir aussi</title>
-
+    <title>Voir aussi</title>
     <simplelist type="inline">
-      <member><link linkend="matrix">matrix</link></member>
-
-      <member><link linkend="extraction">extraction</link></member>
-
-      <member><link linkend="size">size</link></member>
+      <member>
+        <link linkend="matrix">matrix</link>
+      </member>
+      <member>
+        <link linkend="extraction">extraction</link>
+      </member>
+      <member>
+        <link linkend="size">size</link>
+      </member>
     </simplelist>
   </refsection>
-
   <refsection>
     <title>Auteurs</title>
-
     <para>Serge Steer, INRIA</para>
   </refsection>
 </refentry>
index e919946..e22d25e 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="binomial" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns4="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="binomial" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>binomial</refname>
-
     <refpurpose>probabilidades de distribuição binomial</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Seqüência de Chamamento</title>
-
     <synopsis>pr=binomial(p,n)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Parâmetros</title>
-
     <variablelist>
       <varlistentry>
         <term>pr</term>
-
         <listitem>
           <para>vetor linha com n+1 componentes </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>p</term>
-
         <listitem>
           <para>número real em [0,1] </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>n</term>
-
         <listitem>
           <para>um inteiro &gt;= 1</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Descrição</title>
-
     <para><literal>pr=binomial(p,n)</literal> retorna o vetor de probabilidade
     binomial, i.e. <literal>pr(k+1)</literal> é a probabilidade de
     <literal>k</literal> successos em <literal>n</literal> tentativas
     <literal>p</literal>. Em outras palavras : <literal>pr(k+1) =
     probability(X=k)</literal> , com X uma variável aleatória, segundo a
     distribuição B(n,p) , e numericamente :</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
             / n \  k      n-k       / n \       n!
  pr(k+1) =  |   | p  (1-p)    com  |   |  = ---------
             \ k /                   \ k /    k! (n-k)!
  ]]></programlisting>
   </refsection>
-
   <refsection>
     <title>Exemplos</title>
-
     <programlisting role="example"><![CDATA[ 
 // primeiro exemplo
 n=10;p=0.3; clf(); plot2d3(0:n,binomial(p,n));
@@ -112,14 +90,15 @@ pr=Cnks.*horner(x.^(0:n).*(1-x)^(n:-1:0),p);
 pr-binomial(p,n)
  ]]></programlisting>
   </refsection>
-
   <refsection role="see also">
-<title>Ver Também</title>
-
+    <title>Ver Também</title>
     <simplelist type="inline">
-      <member><link linkend="cdfbin">cdfbin</link></member>
-
-      <member><link linkend="grand">grand</link></member>
+      <member>
+        <link linkend="cdfbin">cdfbin</link>
+      </member>
+      <member>
+        <link linkend="grand">grand</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index 94196e6..cc44df9 100644 (file)
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<refentry version="5.0-subset Scilab" xml:id="number_properties" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns3="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="number_properties" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>number_properties</refname>
-
     <refpurpose>determina parâmetros de ponto flutuante</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Seqüência de Chamamento</title>
-
     <synopsis>pr = number_properties(prop)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Parâmetros</title>
-
     <variablelist>
       <varlistentry>
         <term>prop</term>
-
         <listitem>
           <para>string</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>pr</term>
-
         <listitem>
           <para>escalar real ou booleano </para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Descrição </title>
-
     <para>Esta função pode ser usada para receber os números/propriedades
     característicos do conjunto de pontos flutuantes aqui dentoado por
     <literal>F(b,p,emin,emax)</literal> ((geralmente o conjunto de "floats" de
     64 bits prescritos por IEEE 754). Números de <literal>F</literal> são da
     forma: </para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
      sign * m * b^e
  ]]></programlisting>
-
     <para><literal>e</literal> é o expoente e <literal>m</literal> a
     mantissa:</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
      m = d_1 b^(-1) + d_2 b^(-2) + .... + d_p b^(-p)
  ]]></programlisting>
-
     <para><literal>d_i</literal> os dígitos estão em <literal>[0,
     b-1]</literal> e <literal>e</literal> em <literal>[emin, emax]</literal>,
     o número é dito "normalizado" se <literal>d_1 ~= 0</literal>. Os seguintes
     podem ser recebidos: </para>
-
     <variablelist>
       <varlistentry>
         <term>prop = "radix"</term>
-
         <listitem>
           <para>então <literal>pr</literal> é a raiz <literal>b</literal> do
           conjunto <literal>F</literal></para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>prop = "digits"</term>
-
         <listitem>
           <para>então <literal>pr</literal> é o número de dígitos de
           <literal>p</literal></para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>prop = "huge"</term>
-
         <listitem>
           <para>então <literal>pr</literal> é o maior float positivo de
           <literal>F</literal></para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>prop = "tiny"</term>
-
         <listitem>
           <para>então <literal>pr</literal> é o menor float normalizado
           positivo de <literal>F</literal></para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>prop = "denorm"</term>
-
         <listitem>
           <para>então <literal>pr</literal> é um booleano (%t se números
           denormalizados são utilizados) </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>prop = "tiniest"</term>
-
         <listitem>
           <para>então se denorm = %t, <literal>pr</literal> é o número
           positivo denormalizado mínimo. Em outro caso, <literal>pr</literal>
           = tiny</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>prop = "eps"</term>
-
         <listitem>
           <para>então <literal>pr</literal> é a máquina epsilon ( geralmente
           (<literal>b^(1-p))/2</literal> ) que é o erro máximo relativo entre
           aproximação em ponto flutuante em <literal>F</literal></para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>prop = "minexp"</term>
-
         <listitem>
           <para>então <literal>pr</literal> é <literal>emin</literal></para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>prop = "maxexp"</term>
-
         <listitem>
           <para>então <literal>pr</literal> é <literal>emax</literal></para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Observações</title>
-
     <para>Esta função usa uma rotina de LAPACK dlamch para receber os
     parâmetros máquinas (os nomes (radix, digits, huge, etc...) são aqueles
     recomendados pelo padrão LIA 1 e são diferentes daqueles correspondentes
     <literal>eps = (b^(1-p))/2</literal> se o arredondamento normal acontecer
     e <literal>eps = b^(1-p)</literal> se não acontecer.</para>
   </refsection>
-
   <refsection>
     <title>Exemplos</title>
-
     <programlisting role="example"><![CDATA[ 
 b = number_properties("radix")
 eps = number_properties("eps")
  ]]></programlisting>
   </refsection>
-
   <refsection role="see also">
-<title>Ver Também</title>
-
+    <title>Ver Também</title>
     <simplelist type="inline">
-      <member><link linkend="nearfloat">nearfloat</link></member>
-
-      <member><link linkend="frexp">frexp</link></member>
+      <member>
+        <link linkend="nearfloat">nearfloat</link>
+      </member>
+      <member>
+        <link linkend="frexp">frexp</link>
+      </member>
     </simplelist>
   </refsection>
-
   <refsection>
     <title>Autor</title>
-
     <para>Bruno Pincon</para>
   </refsection>
 </refentry>
index 7b2f063..9a3d6de 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="bloc2exp" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="bloc2exp" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>bloc2exp</refname>
-
     <refpurpose>retorna a avaliação simbólica de um diagrama de
     blocos</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Seqüência de Chamamento</title>
-
     <synopsis>[str]=bloc2exp(blocd)
 [str,names]=bloc2exp(blocd)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Parâmetros</title>
-
     <variablelist>
       <varlistentry>
         <term>blocd</term>
-
         <listitem>
           <para>lista</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>str</term>
-
         <listitem>
           <para>string </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>names</term>
-
         <listitem>
           <para>string</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Descrição</title>
-
     <para>Dada uma representação em diagrama de blocos de um sistema linear
     <literal>bloc2exp</literal> retorna sua avaliação simbólica. O primeiro
     elemento da lista <literal>blocd</literal> deve ser o string (cadeia de
     caracteres) <literal>'blocd'</literal>. Cada outro elemento desta lista
     <literal>(blocd(2),blocd(3),...)</literal> é, por si mesmo, uma lista de
     um dos seguintes tipos :</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
 list('transfer','nome_do_sistema_linear')
  ]]></programlisting>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
 list('link','nome_da_ligação',
                [número_de_caixa_de_fluxo_superior,porta_da_caixa_de_fluxo_superior],
                [caixa_de_fluxo_inferior_1,número_de_porta_da_caixa_inferior_1],
                [caixa_de_fluxo_inferior_2,número_de_porta_da_caixa_inferior_2],
                ...)
  ]]></programlisting>
-
     <para>Os strings <literal>'transfer'</literal> e
     <literal>'links'</literal> são palavras-chaves as quais indicam o tipo de
     elemento no diagrama de blocos ("transfer"=transferência, "link"=
     ligação).</para>
-
     <para>Caso 1: o segundo parâmetro da lista é um string que pode se referir
     (para uma possível avaliação posterior) ao nome Scilab de um sistema
     linear dado em representação de estado-espaço (lista<literal>
     syslin</literal> ) ou em forma de trasnferência (matriz de razões de
     polinômios).</para>
-
     <para>A cada bloco de transferência é associado um inteiro. A cada entrada
     e saída de um bloco de transferência, também é associado seu número, um
     inteiro (ver exemplos).</para>
-
     <para>Caso 2: O segundo tipo de elemento em uma representação de diagrama
     de blocos é um link. Um link liga uma saída de um bloco representado pelo
     par <literal>[
@@ -110,21 +85,16 @@ list('link','nome_da_liga
     a diferentes entradas de outros blocos. Cada tal entrada é representada
     pelo par [caixa_de_fluxo_inferior_i,número_de_porta_da_caixa_inferior_i]
     .</para>
-
     <para>Os diferentes elementos de um diagrama de blocos podem ser definidos
     em ordem arbitrária.</para>
-
     <para>Por exemplo:</para>
-
     <para>[1] <literal>S1*S2</literal> com feedback (resposta) de
     unidade.</para>
-
     <para>Há 3 transferências <literal>S1</literal> (número
     <literal>n_s1=2</literal>) , <literal>S2</literal> (número
     <literal>n_s2=3</literal>) e um adicionador ("adder") (número
     <literal>n_add=4</literal>) com função de transferência simbólica
     <literal>['1','1']</literal>.</para>
-
     <para>Há 4 ligações. O primeiro (de nome <literal>'U'</literal>) liga a
     entrada (porta 0 de bloco fictício -1, omitido) à porta 1 do adicionador.
     Os segundo e terceiro ligam respectivamente a porta (de saída) 1 do
@@ -134,8 +104,7 @@ list('link','nome_da_liga
     liga a porta (de saída) 1 de <literal>S2</literal> à saída (porta 0 do
     bloco fictício -1, omitido) e à porta (de entrada) 2 do
     adicionador.</para>
-
-    <programlisting role = "example"><![CDATA[ 
+    <programlisting role="example"><![CDATA[ 
 //Inicialização
 syst=list('blocd'); l=1;
 //
@@ -155,18 +124,14 @@ l=l+1;syst(l)=list('link','Y',[n_s2,1],[-1],[n_adder,2]);
 //Chamada de avaliação
 w=bloc2exp(syst);
  ]]></programlisting>
-
     <para>O resultado é o string:
     <literal>w=-(s2*s1-eye())\s2*s1</literal>.</para>
-
     <para>Perceba que, chamado com dois agumentos de saída,
     <literal>[str,names]= blocd(syst)</literal> retorna em
     <literal>names</literal> a lista de nomes simbólicos dos links nomeados.
     Isto é útil para definir nomes de entradas e saídas.</para>
-
     <para>[2] segundo exemplo</para>
-
-    <programlisting role = "example"><![CDATA[ 
+    <programlisting role="example"><![CDATA[ 
 //Inicialização
 syst=list('blocd'); l=1;
 
@@ -185,23 +150,21 @@ l=l+1;syst(l)=list('link','y',[n_s,2],[n_k,1]);
 //Chamada de avaliação
 w=bloc2exp(syst);
  ]]></programlisting>
-
     <para>Neste caso, o resultado é uma fórmula equivalente à usual:</para>
-
-    <para><literal>P11+P12*invr(eye()-K*P22)*K*P21;</literal></para>
+    <para>
+      <literal>P11+P12*invr(eye()-K*P22)*K*P21;</literal>
+    </para>
   </refsection>
-
   <refsection role="see also">
-<title>Ver Também</title>
-
+    <title>Ver Também</title>
     <simplelist type="inline">
-      <member><link linkend="bloc2ss">bloc2ss</link></member>
+      <member>
+        <link linkend="bloc2ss">bloc2ss</link>
+      </member>
     </simplelist>
   </refsection>
-
   <refsection>
     <title>Autores</title>
-
     <para>S. S., F. D. (INRIA)</para>
   </refsection>
 </refentry>
index 841e318..1ea9d31 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="ssrand" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns3="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="ssrand" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>ssrand</refname>
-
     <refpurpose>gerador de sistema randômico</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Seqüência de Chamamento</title>
-
     <synopsis>sl=ssrand(nout,nin,nstate)
 [sl,U]=ssrand(nout,nin,nstate,flag)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Parâmetros</title>
-
     <variablelist>
       <varlistentry>
         <term>nout</term>
-
         <listitem>
           <para>inteiro (número de saídas)</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>nin</term>
-
         <listitem>
           <para>inteiro (número de entradas)</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>nstate</term>
-
         <listitem>
           <para>inteiro (dimensão de espaço de estados)</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>flag</term>
-
         <listitem>
           <para>lista feita de um string ou vários inteiros</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>sl</term>
-
         <listitem>
           <para>lista (lista <literal>syslin</literal> )</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>U</term>
-
         <listitem>
           <para>matriz quadrada não-singular <literal>(nstate x
           nstate)</literal></para>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Descrição</title>
-
     <para><literal>sl=ssrand(nout,nin,nstate)</literal> retorna um sistema em
     espaço de estado randômico estritamente próprio (<literal>D=0</literal>)
     de tamanho <literal>[nout,nint]</literal> representado por uma lista
     <literal>syslin</literal> e com <literal>nstate</literal> variáveis de
     estado.</para>
-
     <para><literal>[sl,U]=ssrand(nout,nin,nstate,flag)</literal> retorna um
     sistema linear teste com dadas propriedades especificadas por
     <literal>flag</literal>. <literal>flag</literal> pode ser um dos
     seguintes:</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
 flag=list('co',dim_cont_subs)  
 flag=list('uo',dim_unobs_subs)
 flag=list('ncno',dim_cno,dim_ncno,dim_co,dim_nco)
@@ -112,7 +85,6 @@ flag=list('dt',dim_inst_unob,dim_instb0,dim_unobs)
 flag=list('on',nr,ng,ng0,nv,rk)
 flag=list('ui',nw,nwu,nwui,nwuis,rk)
  ]]></programlisting>
-
     <para>A completa descrição dos <literal>Sys</literal> é dada no código da
     função <literal>ssrand</literal> (em
     <literal>SCI/modules/cacsd/macros/</literal>). Por exemplo, com
@@ -124,10 +96,8 @@ flag=list('ui',nw,nwu,nwui,nwuis,rk)
     "estabilizável", "detectável", "anulador-de-saída",
     "saída-desconhecida".</para>
   </refsection>
-
   <refsection>
     <title>Exemplos</title>
-
     <programlisting role="example">
 
 //flag=list('st',dim_cont_subs,dim_stab_subs,dim_stab0)  
@@ -145,12 +115,12 @@ w=ss2ss(Sl,inv(U)); //desfaz a mudan
  
   </programlisting>
   </refsection>
-
   <refsection role="see also">
-<title>Ver Também</title>
-
+    <title>Ver Também</title>
     <simplelist type="inline">
-      <member><link linkend="syslin">syslin</link></member>
+      <member>
+        <link linkend="syslin">syslin</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index 4b67262..7cbb010 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="sysconv" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns5="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="sysconv" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>sysconv</refname>
-
     <refpurpose>conversão de sistema</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Seqüência de Chamamento</title>
-
     <synopsis>[s1,s2]=sysconv(s1,s2)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Parâmetros</title>
-
     <variablelist>
       <varlistentry>
         <term>s1,s2</term>
-
         <listitem>
           <para>lista (sistemas <literal>syslin</literal> lineares)</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Descrição</title>
-
     <para>Converte <literal>s1</literal> e <literal>s2</literal> para
     representação comum a fim de que operações de interconexão de sistemas
     possam ser aplicadas. Função utilitária para peritos. A regra de conversão
     é dada na seguinte tabela. </para>
-
     <variablelist>
       <varlistentry>
         <term>"c"</term>
-
         <listitem>
           <para>sistema de tempo contínuo</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>"d"</term>
-
         <listitem>
           <para>sistema de tempo discreto </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>n</term>
-
         <listitem>
           <para>sistema amostrado com período de amostragem n </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>[]</term>
-
         <listitem>
           <para>sistema com domínio de tempo indefinido. Para sistemas mistos,
           s1 e s2 são postos em representação de estado-espaço.</para>
         </listitem>
       </varlistentry>
     </variablelist>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
  s1\s2  |   "c"     |     "d"     |      n2        |     []     |
  ---------------------------------------------------------------
  "c"   | nada       |incompatível | c2e(s1,n2)     |  c(s2)     |
  []    | c(s1)      | d(s1)       | e(s1,n2)       |  nada      |
  ---------------------------------------------------------------
  ]]></programlisting>
-
     <para>Com o seguinte significado: </para>
-
     <variablelist>
       <varlistentry>
         <term>n1,n2</term>
-
         <listitem>
           <para>período de amostragem </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>c2e(s,n)</term>
-
         <listitem>
           <para>o sistema de tempo contínuo s é transformado em um sistema
           amostrado com período de amostragem n. </para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>c(s)</term>
-
         <listitem>
           <para>conversão para tempo contínuo (domínio de tempo é
           <literal>"c"</literal>)</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>d(s)</term>
-
         <listitem>
           <para>conversão para tempo discreto (domínio de tempo é
           <literal>"d"</literal>)</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>e(s,n)</term>
-
         <listitem>
           <para>conversão para sistema amostrado com período
           <literal>n</literal></para>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Exemplos</title>
-
     <programlisting role="example"><![CDATA[ 
 s1=ssrand(1,1,2);
 s2=ss2tf(s1);
 [s1,s2]=sysconv(s1,s2);
  ]]></programlisting>
   </refsection>
-
   <refsection role="see also">
-<title>Ver Também</title>
-
+    <title>Ver Também</title>
     <simplelist type="inline">
-      <member><link linkend="syslin">syslin</link></member>
-
-      <member><link linkend="ss2tf">ss2tf</link></member>
-
-      <member><link linkend="tf2ss">tf2ss</link></member>
+      <member>
+        <link linkend="syslin">syslin</link>
+      </member>
+      <member>
+        <link linkend="ss2tf">ss2tf</link>
+      </member>
+      <member>
+        <link linkend="tf2ss">tf2ss</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index f97e071..7bac9a9 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="syslin" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns3="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="syslin" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>syslin</refname>
-
     <refpurpose>definição de sistemas lineares</refpurpose>
   </refnamediv>
-
   <refsynopsisdiv>
     <title>Seqüência de Chamamento</title>
-
     <synopsis>[sl]=syslin(dom,A,B,C [,D [,x0] ])
 [sl]=syslin(dom,N,D)
 [sl]=syslin(dom,H)</synopsis>
   </refsynopsisdiv>
-
   <refsection>
     <title>Parâmetros</title>
-
     <variablelist>
       <varlistentry>
         <term>dom</term>
-
         <listitem>
           <para>string (<literal>'c'</literal>, <literal>'d'</literal>), ou
           <literal>[]</literal> ou um escalar.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>A,B,C,D</term>
-
         <listitem>
           <para>matrizes em representação de espaço de estados
           (<literal>D</literal> opcional com valor padrão matriz nula). para
           polinômios.</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>x0</term>
-
         <listitem>
           <para>vetor (estado inicial; valor padrão é
           <literal>0</literal>)</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>N, D</term>
-
         <listitem>
           <para>matrizes de polinômios</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>H</term>
-
         <listitem>
           <para>matriz de razões de polinômios ou representação de espaço de
           estados linear</para>
         </listitem>
       </varlistentry>
-
       <varlistentry>
         <term>sl</term>
-
         <listitem>
           <para>tlist (lista "<literal>syslin</literal>") representando o
           sistema linear</para>
       </varlistentry>
     </variablelist>
   </refsection>
-
   <refsection>
     <title>Descrição</title>
-
     <para><literal>syslin</literal> define um sistema linear como uma lista e
     verifica a consistência dos dados.</para>
-
     <para><literal>dom</literal> especifica o domínio de tempo do sistema e
     pode ter um dos seguintes valores:</para>
-
     <para><literal>dom='c'</literal> para um sistema de tempo contínuo,
     <literal>dom='d'</literal> para um sistema de tempo discreto,
     <literal>n</literal> para um sistema amostrado com período de amostragem
     <literal>n</literal> (em segundos).</para>
-
     <para><literal>dom=[]</literal> se o domínio de tempo é indefinido.</para>
-
     <para>Representação em espaço de estados:</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
 sl=syslin(dom,A,B,C [,D [,x0] ])
  ]]></programlisting>
-
     <para>Representa o sistema :</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
       s x  = A*x + B*u
         y  = C*x + D*u
       x(0) = x0
  ]]></programlisting>
-
     <para>A saída de <literal>syslin</literal> é uma lista da seguinte forma:
     <literal>sl=tlist(['lss','A','B','C','D','X0','dt'],A,B,C,D,x0,dom)</literal>
     . Note que <literal>D</literal> pode ser uma matriz de polinômios
     (sistemas impróprios).</para>
-
     <para>Representação de matriz de transferência:</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting><![CDATA[ 
 sl=syslin(dom,N,D) 
 sl=syslin(dom,H)
  ]]></programlisting>
-
     <para>A saída de <literal>syslin</literal> é uma lista da seguinte forma:
     <literal>sl=tlist(['r','num','den','dt'],N,D,dom)</literal> ou
     <literal>sl=tlist(['r','num','den','dt'],H(2),H(3),dom)</literal>.</para>
-
     <para>Sistemas lineares definidos como <literal>syslin</literal> podem ser
     manipulados como matrizes usuais (concatenação, extração, transposição,
     multiplicação, etc.) ambos em estado-espaço ou representação de
     transferência.</para>
-
     <para>A maior parte das funções de controle de estado-espaço recebem uma
     lista <literal>syslin</literal> como entrada, ao invés de quatro matrizes
     definindo o sistema.</para>
   </refsection>
-
   <refsection>
     <title>Exemplos</title>
-
     <programlisting role="example"><![CDATA[ 
 A=[0,1;0,0];B=[1;1];C=[1,1];
 S1=syslin('c',A,B,C)   //Definição de sistema linear
@@ -173,26 +133,33 @@ S1*S2bis
 size(S1)
  ]]></programlisting>
   </refsection>
-
   <refsection role="see also">
-<title>Ver Também</title>
-
+    <title>Ver Também</title>
     <simplelist type="inline">
-      <member><link linkend="tlist">tlist</link></member>
-
-      <member><link linkend="lsslist">lsslist</link></member>
-
-      <member><link linkend="rlist">rlist</link></member>
-
-      <member><link linkend="ssrand">ssrand</link></member>
-
-      <member><link linkend="ss2tf">ss2tf</link></member>
-
-      <member><link linkend="tf2ss">tf2ss</link></member>
-
-      <member><link linkend="dscr">dscr</link></member>
-
-      <member><link linkend="abcd">abcd</link></member>
+      <member>
+        <link linkend="tlist">tlist</link>
+      </member>
+      <member>
+        <link linkend="lsslist">lsslist</link>
+      </member>
+      <member>
+        <link linkend="rlist">rlist</link>
+      </member>
+      <member>
+        <link linkend="ssrand">ssrand</link>
+      </member>
+      <member>
+        <link linkend="ss2tf">ss2tf</link>
+      </member>
+      <member>
+        <link linkend="tf2ss">tf2ss</link>
+      </member>
+      <member>
+        <link linkend="dscr">dscr</link>
+      </member>
+      <member>
+        <link linkend="abcd">abcd</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index 2083547..81ec9a3 100644 (file)
@@ -110,7 +110,14 @@ libscihelptools_la_xsl_fo_DATA = xsl/fo/docbook.xsl
 
 #### helptools : schema files ####
 libscihelptools_la_schemadir = $(mydatadir)/schema
-libscihelptools_la_schema_DATA = schema/scilab.rnc \
+libscihelptools_la_schema_DATA = schema/docbook.rng \
+schema/dbits.rng \
+schema/mathml3-common.rng \
+schema/docbookxi.rng \
+schema/mathml3-content.rng \
+schema/mathml3.rng \
+schema/scilab.rng \
+schema/mathml3-presentation.rng \
 schema/extendedStyle.xsl
 
 #### helptools : pages files ####
index 426dbba..f6eaee0 100644 (file)
@@ -523,7 +523,14 @@ libscihelptools_la_xsl_fo_DATA = xsl/fo/docbook.xsl
 
 #### helptools : schema files ####
 libscihelptools_la_schemadir = $(mydatadir)/schema
-libscihelptools_la_schema_DATA = schema/scilab.rnc \
+libscihelptools_la_schema_DATA = schema/docbook.rng \
+schema/dbits.rng \
+schema/mathml3-common.rng \
+schema/docbookxi.rng \
+schema/mathml3-content.rng \
+schema/mathml3.rng \
+schema/scilab.rng \
+schema/mathml3-presentation.rng \
 schema/extendedStyle.xsl
 
 
index 3ac1610..4ec65d3 100755 (executable)
@@ -28,7 +28,7 @@ if [ -e "$binDir/../../../thirdparty" ]; then
 elif [ -e "$binDir/../../../../../thirdparty" ]; then
        libDir=$binDir/../../../../../thirdparty
 else
-       echo "Don't find the thirdparty directory."
+       echo "Could not find the thirdparty directory."
        exit 2
 fi
 
@@ -43,4 +43,5 @@ fi
 # validation
 # ==============================================================================
 
-java -jar "$libDir/jing.jar" -c "$schemaDir/scilab.rnc" "$@"
+java -jar "$libDir/jing.jar" "$schemaDir/scilab.rng" "$@"
+
index 9f68c3b..1cc419d 100755 (executable)
@@ -16,14 +16,14 @@ set binDir=%~dp0
 set libDir=%binDir%\..\..\..\thirdparty
 set schemaDir=%binDir%\..\schema
 
-java -jar "%libDir%\jing.jar" -c "%schemaDir%\scilab.rnc" %*
+java -jar "%libDir%\jing.jar" "%schemaDir%\scilab.rng" %*
 
 goto end
 endlocal
 
 :usage
 echo Usage: scivalid xml_file ... xml_file
-echo Validates specified XML files against the scilab.rnc schema.
+echo Validates specified XML files against the scilab.rng schema.
 
 :end
 
index fe87c91..77da09b 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2011 - Calixte DENIZET
@@ -9,14 +9,15 @@
  * are also available at
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
- --><!-- This document was created with Syntext Serna Free. -->
+ -->
+<!-- This document was created with Syntext Serna Free. -->
 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="how_to_link_toolbox_help">
   <info>
     <pubdate>January 2011</pubdate>
   </info>
   <refnamediv>
     <refname>Link toolbox help with Scilab one</refname>
-    <refpurpose>How to make hyperlink in toolbox help pointing to Scilab&apos;s items</refpurpose>
+    <refpurpose>How to make hyperlink in toolbox help pointing to Scilab's items</refpurpose>
   </refnamediv>
   <refsection>
     <title>Description</title>
   <refsection>
     <title>Details</title>
     <itemizedlist>
-      <listitem>To link from two external modules, the syntax is: &lt;link type=&quot;scilab&quot; linkend=&quot;module_name.help/fun_in_module_name&quot;&gt;fun_in_module_name&lt;/link&gt; Usually, the name of the function is the id of the page.</listitem>
-      <listitem>To link from a external module to a Scilab function, the syntax is: &lt;link type=&quot;scilab&quot; linkend=&quot;scilab.help/bvode&quot;&gt;bvode&lt;/link&gt; Usually, the name of the function is the id of the page.</listitem>
-      <listitem>To enable the execution of a script, the syntax is: &lt;link type=&quot;scilab&quot; linkend=&quot;mytoolbox.exec/macros/fooexec.sce&quot;&gt;macros/fooexec.sce&lt;/link&gt; </listitem>
-      <listitem>To enable the execution of a demo, the syntax is: &lt;link type=&quot;scilab&quot; linkend=&quot;mytoolbox.demos/mydemo.dem&quot;&gt;My demo&lt;/link&gt; </listitem>
+      <listitem>
+        <para>To link from two external modules, the syntax is: &lt;link type="scilab" linkend="module_name.help/fun_in_module_name"&gt;fun_in_module_name&lt;/link&gt; Usually, the name of the function is the id of the page.</para>
+      </listitem>
+      <listitem>
+        <para>To link from a external module to a Scilab function, the syntax is: &lt;link type="scilab" linkend="scilab.help/bvode"&gt;bvode&lt;/link&gt; Usually, the name of the function is the id of the page.</para>
+      </listitem>
+      <listitem>
+        <para>To enable the execution of a script, the syntax is: &lt;link type="scilab" linkend="mytoolbox.exec/macros/fooexec.sce"&gt;macros/fooexec.sce&lt;/link&gt; </para>
+      </listitem>
+      <listitem>
+        <para>To enable the execution of a demo, the syntax is: &lt;link type="scilab" linkend="mytoolbox.demos/mydemo.dem"&gt;My demo&lt;/link&gt; </para>
+      </listitem>
     </itemizedlist>
   </refsection>
   <refsection>
@@ -59,8 +68,7 @@
         plot3d() // should link on plot3d
       </programlisting>
     </refentry>
-    ]]>
-    </programlisting>
+    ]]></programlisting>
   </refsection>
   <refsection>
     <title>Authors</title>
index 0a32453..74e0995 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="man" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns4="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="man" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>man</refname>
-
     <refpurpose>on line help XML file description format</refpurpose>
   </refnamediv>
-
   <refsection>
     <title>Description</title>
-
     <para>The on line help source files are written in XML.</para>
-
     <para>Source files (with extension .xml) can be found in the
     <literal>&lt;SCIDIR&gt;/modules/&lt;MODULE
     NAME&gt;/help/&lt;language&gt;/*</literal> directories. The file name is
     usually associated to a keyword (corresponding to a function name most of
     the cases) it describes.</para>
   </refsection>
-
   <refsection>
     <title>A few words about XML</title>
-
-    <para>An XML file resembles to a hTML file but with a more rigid syntax.
+    <para>An XML file resembles to a HTML file but with a more rigid syntax.
     The documentation of Scilab must be written using the strict subset of
     DocBook 5 defined in SCI/modules/helptools/schema/scilab.rnc. DocBook 5
-    elements are fully documented in <ulink
-    url="http://docbook.org/tdg5/en/html/docbook.html">"DocBook 5.0 : The
-    Definitive Guide"</ulink></para>
+    elements are fully documented in <link xlink:href="http://docbook.org/tdg5/en/html/docbook.html">"DocBook 5.0 : The
+    Definitive Guide"</link></para>
   </refsection>
-
   <refsection>
     <title>How to write a simple xml scilab help page:</title>
-
     <para>If one want to write the xml file associated to a new scilab
-    function he or she may use the Scilab function <link
-    linkend="help_skeleton">help_skeleton</link> to produce the skeleton of
+    function he or she may use the Scilab function <link linkend="help_skeleton">help_skeleton</link> to produce the skeleton of
     the xml file. In most cases the user will not be required to know xml
     syntax.</para>
   </refsection>
-
   <refsection>
     <title>How to write a simple xml scilab help page: an example</title>
-
     <para>The root element of a document which conforms to the Scilab DocBook
     5 subset must have version attribute set to "5.0-subset Scilab".</para>
-
     <programlisting role="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
 &lt;refentry version="5.0-subset Scilab" xml:id="foo" xml:lang="en"
           xmlns="http://docbook.org/ns/docbook"
           xmlns:ns4="http://www.w3.org/1999/xhtml"
           xmlns:mml="http://www.w3.org/1998/Math/MathML"
           xmlns:db="http://docbook.org/ns/docbook"&gt; </programlisting>
-
-    <refsection>
-      <title>Example:</title>
-
-      <programlisting role="example">function y = foo(a,b,c)
+    <para role="bold">Example:</para>
+    <programlisting role="example">function y = foo(a,b,c)
   y = a + 2 * b + c;
 endfunction
 
@@ -87,12 +64,7 @@ path = help_skeleton('foo', TMPDIR)
 if (isdef('editor') | (funptr('editor')&lt;&gt;0)) then
   editor(path);
 end</programlisting>
-    </refsection>
-
-    <refsection>
-      <title>Generated foo.xml in TMPDIR:</title>
-    </refsection>
-
+    <para role="bold">Generated foo.xml in TMPDIR:</para>
     <programlisting role="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
 &lt;!--
  * Add some comments about XML file
@@ -197,38 +169,43 @@ end</programlisting>
      &lt;/refsection&gt;
 &lt;/refentry&gt;</programlisting>
   </refsection>
-
-
   <refsection>
+<<<<<<< HEAD
     <title>How to create a help chapter</title>
 
+=======
+    <title>How to create an help chapter</title>
+>>>>>>> 4c52a0b... Help check: validate the help files on compilation against a derivated docbook schema
     <para>Create a directory and write down a set of xml files build as
     described above. Then start Scilab and execute <literal>xmltojar
     </literal> (see <link linkend="xmltojar">xmltojar</link> for more details)
     .</para>
   </refsection>
-
   <refsection>
     <title>How to make Scilab know a new help chapter</title>
-
-    <para>This can be done by the function <link
-    linkend="add_help_chapter">add_help_chapter</link>.</para>
+    <para>This can be done by the function <link linkend="add_help_chapter">add_help_chapter</link>.</para>
   </refsection>
   <refsection role="see also">
-<title>See Also</title>
+    <title>See Also</title>
     <simplelist type="inline">
-      <member><link linkend="apropos">apropos</link></member>
-
-      <member><link linkend="help">help</link></member>
-
-      <member><link linkend="help_skeleton">help_skeleton</link></member>
-
-      <member><link linkend="help_from_sci">help_from_sci</link></member>
-
-      <member><link linkend="xmltojar">xmltojar</link></member>
-
-      <member><link
-      linkend="add_help_chapter">add_help_chapter</link></member>
+      <member>
+        <link linkend="apropos">apropos</link>
+      </member>
+      <member>
+        <link linkend="help">help</link>
+      </member>
+      <member>
+        <link linkend="help_skeleton">help_skeleton</link>
+      </member>
+      <member>
+        <link linkend="help_from_sci">help_from_sci</link>
+      </member>
+      <member>
+        <link linkend="xmltojar">xmltojar</link>
+      </member>
+      <member>
+        <link linkend="add_help_chapter">add_help_chapter</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
index 785fd0b..4ab11d4 100644 (file)
@@ -61,9 +61,8 @@
     <title>Description</title>
     <para>converts xml Scilab help files contained in a set of directories
     into chm files.</para>
-    
     <para>
-<ulink url="http://msdn.microsoft.com/en-us/library/ms669985(VS.85).aspx">Microsoft HTML Help Downloads (Windows)</ulink>
+      <link xlink:href="http://msdn.microsoft.com/en-us/library/ms669985(VS.85).aspx">Microsoft HTML Help Downloads (Windows)</link>
     </para>
   </refsection>
   <refsection>
@@ -115,7 +114,7 @@ end
  ]]></programlisting>
   </refsection>
   <refsection role="see also">
-<title>See Also</title>
+    <title>See Also</title>
     <simplelist type="inline">
       <member>
         <link linkend="help">help</link>
index 1d92e28..6798216 100644 (file)
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
-<refentry version="5.0-subset Scilab" xml:id="percenthelps" xml:lang="en"
-          xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xmlns:svg="http://www.w3.org/2000/svg"
-          xmlns:ns4="http://www.w3.org/1999/xhtml"
-          xmlns:mml="http://www.w3.org/1998/Math/MathML"
-          xmlns:db="http://docbook.org/ns/docbook">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="percenthelps" xml:lang="en">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
-
   <refnamediv>
     <refname>%helps</refname>
-
     <refpurpose>variável definindo o endereço dos diretórios de
     ajuda</refpurpose>
   </refnamediv>
-
   <refsection>
     <title>Descrição</title>
-
     <para>A variável global <literal>%helps</literal> é uma matriz N x 2 de
     strings. A k-ésima linha de <literal>%helps</literal>,
     <literal>%helps(k,:)</literal> representa o k-ésimo capítulo do manual e é
     feita de dois strings:</para>
-
     <para><literal>%helps(k,1)</literal> é o nome de endereço absoluto de um
     diretório.</para>
-
     <para><literal>%helps(k,2)</literal> é um título para este diretório. Por
     exemplo, para k=2, nós temos o capítulo de gráficos
     <literal>%helps(2,:)</literal>.</para>
-
     <para>A variável <literal>%helps</literal> é definida no arquivo de
     inicialização do Scilab <literal>SCI+"/scilab.start"</literal>.</para>
-
     <para>Para adicionar um novo diretório de ajuda, o usuário deve adicionar
     uma linha a <literal>%helps</literal>. (Uma linha para cada
     diretório).</para>
-
     <para>Por exemplo, <literal>%helps=[%helps;
     "Path-Of-My-Help-Dir","My-Title"];</literal> habilita o navegador de ajuda
     do Scilab a procurar por itens do manual de ajuda no diretório com
     endereço "Path-Of-My-Help-Dir".</para>
-
     <para>"My-Title" é, então, o título do novo capítulo de ajuda.</para>
-
     <para>Um diretório válido deve conter:</para>
-
     <para>1- Um conjunto de arquivos<literal>.html</literal> (ex.:
     <literal>item1.html, item2.html</literal> etc). Os arquivos
     <literal>.html</literal> são geralmente construídos de arquivos
     XML.</para>
-
     <para>2- Um arquivo <literal>whatis.html</literal>, que deve conter um
     formato especial. Cada linha de <literal>whatis</literal> deve ser como
     segue:</para>
-
-    <programlisting role = ""><![CDATA[ 
+    <programlisting role="xml"><![CDATA[ 
 <BR><A HREF="item.html">item</A> - rápida descrição
  ]]></programlisting>
-
     <para><literal>item</literal> é o item da ajuda, i.e. o comando
     <literal>help item</literal> exibe o conteúdo do arquivo
     <literal>item.html</literal>.</para>
-
     <para>O comando <literal>apropos keyword</literal> retorna as linhas de
     todos os arquivos <literal>whatis.html</literal> nos quais a palavra-chave
     keyword aparece.</para>
-
     <para>Em plataformas Linux, o Scilab provê um Makefile para transformar
     páginas <literal>.xml</literal> pages em páginas <literal>.html</literal>
     (ver SCIDIR/examples/man-examples).</para>
   </refsection>
-
   <refsection role="see also">
-<title>Ver Também</title>
-
+    <title>Ver Também</title>
     <simplelist type="inline">
-      <member><link linkend="apropos">apropos</link></member>
-
-      <member><link linkend="help">help</link></member>
-
-      <member><link linkend="man">man</link></member>
+      <member>
+        <link linkend="apropos">apropos</link>
+      </member>
+      <member>
+        <link linkend="help">help</link>
+      </member>
+      <member>
+        <link linkend="man">man</link>
+      </member>
     </simplelist>
   </refsection>
 </refentry>
diff --git a/scilab/modules/helptools/schema/dbits.rng b/scilab/modules/helptools/schema/dbits.rng
new file mode 100644 (file)
index 0000000..2cf1cad
--- /dev/null
@@ -0,0 +1,15922 @@
+<?xml version="1.0" encoding="utf-8"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:teix="http://www.tei-c.org/ns/Examples" xmlns:svg="http://www.w3.org/2000/svg" xmlns:s="http://www.ascc.net/xml/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:ns2="http://www.w3.org/2005/11/its" xmlns:ns1="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:db="http://docbook.org/ns/docbook" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://docbook.org/ns/docbook">
+  <s:ns prefix="a" uri="http://relaxng.org/ns/compatibility/annotations/1.0"/>
+  <s:ns prefix="ctrl" uri="http://nwalsh.com/xmlns/schema-control/"/>
+  <s:ns prefix="db" uri="http://docbook.org/ns/docbook"/>
+  <s:ns prefix="dbx" uri="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup"/>
+  <s:ns prefix="html" uri="http://www.w3.org/1999/xhtml"/>
+  <s:ns prefix="mml" uri="http://www.w3.org/1998/Math/MathML"/>
+  <s:ns prefix="ns1" uri="http://www.w3.org/1999/xlink"/>
+  <s:ns prefix="ns2" uri="http://www.w3.org/2005/11/its"/>
+  <s:ns prefix="rng" uri="http://relaxng.org/ns/structure/1.0"/>
+  <s:ns prefix="s" uri="http://www.ascc.net/xml/schematron"/>
+  <s:ns prefix="svg" uri="http://www.w3.org/2000/svg"/>
+  <s:ns prefix="teix" uri="http://www.tei-c.org/ns/Examples"/>
+  <s:ns prefix="xlink" uri="http://www.w3.org/1999/xlink"/>
+<!-- DocBook V5.0CR5-->
+<!-- See http://docbook.org/ns/docbook -->
+<!-- Include base DocBook schema -->
+  <start>
+    <choice>
+      <choice>
+        <ref name="db.set"/>
+        <ref name="db.book"/>
+        <ref name="db.divisions"/>
+        <ref name="db.components"/>
+        <ref name="db.navigation.components"/>
+        <ref name="db.section"/>
+        <ref name="db.para"/>
+      </choice>
+      <choice>
+        <ref name="db.sect1"/>
+        <ref name="db.sect2"/>
+        <ref name="db.sect3"/>
+        <ref name="db.sect4"/>
+        <ref name="db.sect5"/>
+      </choice>
+      <choice>
+        <ref name="db.refentry"/>
+        <ref name="db.refsection"/>
+      </choice>
+      <choice>
+        <ref name="db.refsect1"/>
+        <ref name="db.refsect2"/>
+        <ref name="db.refsect3"/>
+      </choice>
+      <ref name="db.setindex"/>
+    </choice>
+  </start>
+  <div>
+    <define name="db._any.attribute">
+      <attribute>
+        <a:documentation>Any attribute including in any attribute in any namespace.</a:documentation>
+        <anyName/>
+      </attribute>
+    </define>
+  </div>
+  <define name="db.arch.attribute">
+    <attribute name="arch">
+      <a:documentation>Designates the computer or chip architecture to which the element applies</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.audience.attribute">
+    <attribute name="audience">
+      <a:documentation>Designates the intended audience to which the element applies, for example, system administrators, programmers, or new users.</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.condition.attribute">
+    <attribute name="condition">
+      <a:documentation>provides a standard place for application-specific effectivity</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.conformance.attribute">
+    <attribute name="conformance">
+      <a:documentation>Indicates standards conformance characteristics of the element</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.os.attribute">
+    <attribute name="os">
+      <a:documentation>Indicates the operating system to which the element is applicable</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.revision.attribute">
+    <attribute name="revision">
+      <a:documentation>Indicates the editorial revision to which the element belongs</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.security.attribute">
+    <attribute name="security">
+      <a:documentation>Indicates something about the security level associated with the element to which it applies</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.userlevel.attribute">
+    <attribute name="userlevel">
+      <a:documentation>Indicates the level of user experience for which the element applies</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.vendor.attribute">
+    <attribute name="vendor">
+      <a:documentation>Indicates the computer vendor to which the element applies.</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.wordsize.attribute">
+    <attribute name="wordsize">
+      <a:documentation>Indicates the word size (width in bits) of the computer architecture to which the element applies</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.effectivity.attributes">
+    <interleave>
+      <optional>
+        <ref name="db.arch.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.audience.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.condition.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.conformance.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.os.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.revision.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.security.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.userlevel.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.vendor.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.wordsize.attribute"/>
+      </optional>
+    </interleave>
+  </define>
+  <define name="db.endterm.attribute">
+    <attribute name="endterm">
+      <a:documentation>Points to the element whose content is to be used as the text of the link</a:documentation>
+      <data type="IDREF"/>
+    </attribute>
+  </define>
+  <define name="db.linkend.attribute">
+    <attribute name="linkend">
+      <a:documentation>Points to an internal link target by identifying the value of its xml:id attribute</a:documentation>
+      <data type="IDREF"/>
+    </attribute>
+  </define>
+  <define name="db.linkends.attribute">
+    <attribute name="linkends">
+      <a:documentation>Points to one or more internal link targets by identifying the value of their xml:id attributes</a:documentation>
+      <data type="IDREFS"/>
+    </attribute>
+  </define>
+  <define name="db.xlink.href.attribute">
+    <attribute name="xlink:href">
+      <a:documentation>Identifies a link target with a URI</a:documentation>
+      <data type="anyURI"/>
+    </attribute>
+  </define>
+  <define name="db.xlink.type.attribute">
+    <attribute name="xlink:type">
+      <a:documentation>Identifies the XLink link type</a:documentation>
+      <value>simple</value>
+      <a:documentation>An XLink simple link</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.xlink.role.attribute">
+    <attribute name="xlink:role">
+      <a:documentation>Identifies the XLink role of the link</a:documentation>
+      <data type="anyURI"/>
+    </attribute>
+  </define>
+  <define name="db.xlink.arcrole.attribute">
+    <attribute name="xlink:arcrole">
+      <a:documentation>Identifies the XLink arcrole of the link</a:documentation>
+      <data type="anyURI"/>
+    </attribute>
+  </define>
+  <define name="db.xlink.title.attribute">
+    <optional>
+      <attribute name="xlink:title">
+        <a:documentation>Identifies the XLink title of the link</a:documentation>
+      </attribute>
+    </optional>
+  </define>
+  <define name="db.xlink.show.enumeration">
+    <choice>
+      <value>new</value>
+      <a:documentation>An application traversing to the ending resource should load it in a new window, frame, pane, or other relevant presentation context.</a:documentation>
+      <value>replace</value>
+      <a:documentation>An application traversing to the ending resource should load the resource in the same window, frame, pane, or other relevant presentation context in which the starting resource was loaded.</a:documentation>
+      <value>embed</value>
+      <a:documentation>An application traversing to the ending resource should load its presentation in place of the presentation of the starting resource.</a:documentation>
+      <value>other</value>
+      <a:documentation>The behavior of an application traversing to the ending resource is unconstrained by XLink. The application should look for other markup present in the link to determine the appropriate behavior.</a:documentation>
+      <value>none</value>
+      <a:documentation>The behavior of an application traversing to the ending resource is unconstrained by this specification. No other markup is present to help the application determine the appropriate behavior.</a:documentation>
+    </choice>
+  </define>
+  <define name="db.xlink.show.attribute">
+    <attribute name="xlink:show">
+      <a:documentation>Identifies the XLink show behavior of the link</a:documentation>
+      <ref name="db.xlink.show.enumeration"/>
+    </attribute>
+  </define>
+  <define name="db.xlink.actuate.enumeration">
+    <choice>
+      <value>onLoad</value>
+      <a:documentation>An application should traverse to the ending resource immediately on loading the starting resource.</a:documentation>
+      <value>onRequest</value>
+      <a:documentation>An application should traverse from the starting resource to the ending resource only on a post-loading event triggered for the purpose of traversal.</a:documentation>
+      <value>other</value>
+      <a:documentation>The behavior of an application traversing to the ending resource is unconstrained by this specification. The application should look for other markup present in the link to determine the appropriate behavior.</a:documentation>
+      <value>none</value>
+      <a:documentation>The behavior of an application traversing to the ending resource is unconstrained by this specification. No other markup is present to help the application determine the appropriate behavior.</a:documentation>
+    </choice>
+  </define>
+  <define name="db.xlink.actuate.attribute">
+    <attribute name="xlink:actuate">
+      <a:documentation>Identifies the XLink actuate behavior of the link</a:documentation>
+      <ref name="db.xlink.actuate.enumeration"/>
+    </attribute>
+  </define>
+  <define name="db.href.attributes">
+    <interleave>
+      <ref name="db.xlink.href.attribute"/>
+      <optional>
+        <ref name="db.xlink.type.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.xlink.role.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.xlink.arcrole.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.xlink.title.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.xlink.show.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.xlink.actuate.attribute"/>
+      </optional>
+    </interleave>
+  </define>
+  <define name="db.xml.id.attribute">
+    <attribute name="xml:id">
+      <a:documentation>Identifies the unique ID value of the element</a:documentation>
+      <data type="ID"/>
+    </attribute>
+  </define>
+  <define name="db.version.attribute">
+    <attribute name="version">
+      <a:documentation>Specifies the DocBook version of the element and its descendants</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.xml.lang.attribute">
+    <attribute name="xml:lang">
+      <a:documentation>Specifies the natural language of the element and its descendants</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.xml.base.attribute">
+    <attribute name="xml:base">
+      <a:documentation>Specifies the base URI of the element and its descendants</a:documentation>
+      <data type="anyURI"/>
+    </attribute>
+  </define>
+  <define name="db.remap.attribute">
+    <attribute name="remap">
+      <a:documentation>Provides the name or similar semantic identifier assigned to the content in some previous markup scheme</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.xreflabel.attribute">
+    <attribute name="xreflabel">
+      <a:documentation>Provides the text that is to be generated for a cross reference to the element</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.xrefstyle.attribute">
+    <attribute name="xrefstyle">
+      <a:documentation>Specifies a keyword or keywords identifying additional style information</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.revisionflag.enumeration">
+    <choice>
+      <value>changed</value>
+      <a:documentation>The element has been changed.</a:documentation>
+      <value>added</value>
+      <a:documentation>The element is new (has been added to the document).</a:documentation>
+      <value>deleted</value>
+      <a:documentation>The element has been deleted.</a:documentation>
+      <value>off</value>
+      <a:documentation>Explicitly turns off revision markup for this element.</a:documentation>
+    </choice>
+  </define>
+  <define name="db.revisionflag.attribute">
+    <attribute name="revisionflag">
+      <a:documentation>Identifies the revision status of the element</a:documentation>
+      <ref name="db.revisionflag.enumeration"/>
+    </attribute>
+  </define>
+  <define name="db.dir.enumeration">
+    <choice>
+      <value>ltr</value>
+      <a:documentation>Left-to-right text</a:documentation>
+      <value>rtl</value>
+      <a:documentation>Right-to-left text</a:documentation>
+      <value>lro</value>
+      <a:documentation>Left-to-right override</a:documentation>
+      <value>rlo</value>
+      <a:documentation>Right-to-left override</a:documentation>
+    </choice>
+  </define>
+  <define name="db.dir.attribute">
+    <attribute name="dir">
+      <a:documentation>Identifies the direction of text in an element</a:documentation>
+      <ref name="db.dir.enumeration"/>
+    </attribute>
+  </define>
+  <define name="db.common.base.attributes">
+    <interleave>
+      <optional>
+        <ref name="db.version.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.xml.lang.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.xml.base.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.remap.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.xreflabel.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.revisionflag.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.dir.attribute"/>
+      </optional>
+      <ref name="db.effectivity.attributes"/>
+      <ref name="db.its.attributes"/>
+    </interleave>
+  </define>
+  <define name="db.common.attributes">
+    <interleave>
+      <optional>
+        <ref name="db.xml.id.attribute"/>
+      </optional>
+      <ref name="db.common.base.attributes"/>
+      <optional>
+        <ref name="db.annotations.attribute"/>
+      </optional>
+    </interleave>
+  </define>
+  <define name="db.common.idreq.attributes">
+    <interleave>
+      <ref name="db.xml.id.attribute"/>
+      <ref name="db.common.base.attributes"/>
+      <optional>
+        <ref name="db.annotations.attribute"/>
+      </optional>
+    </interleave>
+  </define>
+  <define name="db.common.linking.attributes">
+    <optional>
+      <choice>
+        <ref name="db.linkend.attribute"/>
+        <ref name="db.href.attributes"/>
+      </choice>
+    </optional>
+  </define>
+  <define name="db.common.req.linking.attributes">
+    <choice>
+      <ref name="db.linkend.attribute"/>
+      <ref name="db.href.attributes"/>
+    </choice>
+  </define>
+  <define name="db.common.data.attributes">
+    <optional>
+      <attribute name="format">
+        <a:documentation>Specifies the format of the data</a:documentation>
+      </attribute>
+    </optional>
+    <choice>
+      <attribute name="fileref">
+        <a:documentation>Indentifies the location of the data by URI</a:documentation>
+        <data type="anyURI"/>
+      </attribute>
+      <attribute name="entityref">
+        <a:documentation>Identifies the location of the data by external identifier (entity name)</a:documentation>
+        <data type="ENTITY"/>
+      </attribute>
+    </choice>
+  </define>
+  <define name="db.verbatim.continuation.enumeration">
+    <choice>
+      <value>continues</value>
+      <a:documentation>Line numbering continues from the immediately preceding element with the same name.</a:documentation>
+      <value>restarts</value>
+      <a:documentation>Line numbering restarts (begins at 1, usually).</a:documentation>
+    </choice>
+  </define>
+  <define name="db.verbatim.continuation.attribute">
+    <attribute name="continuation">
+      <a:documentation>Determines whether line numbering continues from the previous element or restarts.</a:documentation>
+      <ref name="db.verbatim.continuation.enumeration"/>
+    </attribute>
+  </define>
+  <define name="db.verbatim.linenumbering.enumeration">
+    <choice>
+      <value>numbered</value>
+      <a:documentation>Lines are numbered.</a:documentation>
+      <value>unnumbered</value>
+      <a:documentation>Lines are not numbered.</a:documentation>
+    </choice>
+  </define>
+  <define name="db.verbatim.linenumbering.attribute">
+    <attribute name="linenumbering">
+      <a:documentation>Determines whether lines are numbered.</a:documentation>
+      <ref name="db.verbatim.linenumbering.enumeration"/>
+    </attribute>
+  </define>
+  <define name="db.verbatim.startinglinenumber.attribute">
+    <attribute name="startinglinenumber">
+      <a:documentation>Specifies the initial line number.</a:documentation>
+      <data type="integer"/>
+    </attribute>
+  </define>
+  <define name="db.verbatim.language.attribute">
+    <attribute name="language">
+      <a:documentation>Identifies the language (i.e. programming language) of the verbatim content.</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.verbatim.xml.space.attribute">
+    <attribute name="xml:space">
+      <a:documentation>Can be used to indicate explicitly that whitespace in the verbatim environment is preserved. Whitespace must always be preserved in verbatim environments whether this attribute is specified or not.</a:documentation>
+      <value>preserve</value>
+      <a:documentation>Whitespace must be preserved.</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.verbatim.attributes">
+    <interleave>
+      <optional>
+        <ref name="db.verbatim.continuation.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.verbatim.linenumbering.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.verbatim.startinglinenumber.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.verbatim.language.attribute"/>
+      </optional>
+      <optional>
+        <ref name="db.verbatim.xml.space.attribute"/>
+      </optional>
+    </interleave>
+  </define>
+  <define name="db.label.attribute">
+    <attribute name="label">
+      <a:documentation>Specifies an identifying string for presentation purposes</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.width.characters.attribute">
+    <attribute name="width">
+      <a:documentation>Specifies the width (in characters) of the element</a:documentation>
+      <data type="nonNegativeInteger"/>
+    </attribute>
+  </define>
+  <define name="db.spacing.enumeration">
+    <choice>
+      <value>compact</value>
+      <a:documentation>The spacing should be "compact".</a:documentation>
+      <value>normal</value>
+      <a:documentation>The spacing should be "normal".</a:documentation>
+    </choice>
+  </define>
+  <define name="db.spacing.attribute">
+    <attribute name="spacing">
+      <a:documentation>Specifies (a hint about) the spacing of the content</a:documentation>
+      <ref name="db.spacing.enumeration"/>
+    </attribute>
+  </define>
+  <define name="db.pgwide.enumeration">
+    <choice>
+      <value>0</value>
+      <a:documentation>The element should be rendered in the current text flow (with the flow column width).</a:documentation>
+      <value>1</value>
+      <a:documentation>The element should be rendered across the full text page.</a:documentation>
+    </choice>
+  </define>
+  <define name="db.pgwide.attribute">
+    <attribute name="pgwide">
+      <a:documentation>Indicates if the element is rendered across the column or the page</a:documentation>
+      <ref name="db.pgwide.enumeration"/>
+    </attribute>
+  </define>
+  <define name="db.language.attribute">
+    <attribute name="language">
+      <a:documentation>Identifies the language (i.e. programming language) of the content.</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.performance.enumeration">
+    <choice>
+      <value>optional</value>
+      <a:documentation>The content describes an optional step or steps.</a:documentation>
+      <value>required</value>
+      <a:documentation>The content describes a required step or steps.</a:documentation>
+    </choice>
+  </define>
+  <define name="db.performance.attribute">
+    <attribute name="performance">
+      <a:documentation>Specifies if the content is required or optional.</a:documentation>
+      <ref name="db.performance.enumeration"/>
+    </attribute>
+  </define>
+  <define name="db.floatstyle.attribute">
+    <attribute name="floatstyle">
+      <a:documentation>Specifies style information to be used when rendering the float</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.width.attribute">
+    <attribute name="width">
+      <a:documentation>Specifies the width of the element</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.depth.attribute">
+    <attribute name="depth">
+      <a:documentation>Specifies the depth of the element</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.contentwidth.attribute">
+    <attribute name="contentwidth">
+      <a:documentation>Specifies the width of the content rectangle</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.contentdepth.attribute">
+    <attribute name="contentdepth">
+      <a:documentation>Specifies the depth of the content rectangle</a:documentation>
+    </attribute>
+  </define>
+  <define name="db.scalefit.enumeration">
+    <choice>
+      <value>0</value>
+      <a:documentation>False (do not scale-to-fit; anamorphic scaling may occur)</a:documentation>
+      <value>1</value>
+      <a:documentation>True (scale-to-fit; anamorphic scaling is forbidden)</a:documentation>
+    </choice>
+  </define>
+  <define name="db.scale.attribute">
+    <attribute name="scale">
+      <a:documentation>Specifies the scaling factor</a:documentation>
+      <data type="positiveInteger"/>
+    </attribute>
+  </define>
+  <define name="db.halign.enumeration">
+    <choice>
+      <value>center</value>
+      <a:documentation>Centered horizontally</a:documentation>
+      <value>char</value>
+      <a:documentation>Aligned horizontally on the specified character</a:documentation>
+      <value>justify</value>
+      <a:documentation>Fully justified (left and right margins or edges)</a:documentation>
+      <value>left</value>
+      <a:documentation>Left aligned</a:documentation>
+      <value>right</value>
+      <a:documentation>Right aligned</a:documentation>
+    </choice>
+  </define>
+  <define name="db.valign.enumeration">
+    <choice>
+      <value>bottom</value>
+      <a:documentation>Aligned on the bottom of the region</a:documentation>
+      <value>middle</value>
+      <a:documentation>Centered vertically</a:documentation>
+      <value>top</value>
+      <a:documentation>Aligned on the top of the region</a:documentation>
+    </choice>
+  </define>
+  <define name="db.biblio.class.enumeration">
+    <choice>
+      <value>doi</value>
+      <a:documentation>A document object identifier.</a:documentation>
+      <value>isbn</value>
+      <a:documentation>An international standard book number.</a:documentation>
+      <value>isrn</value>
+      <a:documentation>An international standard technical report number (ISO 10444).</a:documentation>
+      <value>issn</value>
+      <a:documentation>An international standard serial number.</a:documentation>
+      <value>libraryofcongress</value>
+      <a:documentation>A Library of Congress reference number.</a:documentation>
+      <value>pubsnumber</value>
+      <a:documentation>A publication number (an internal number or possibly organizational standard).</a:documentation>
+      <value>uri</value>
+      <a:documentation>A Uniform Resource Identifier</a:documentation>
+    </choice>
+  </define>
+  <define name="db.biblio.class-enum.attribute">
+    <optional>
+      <attribute name="class">
+        <a:documentation>Identifies the kind of bibliographic identifier</a:documentation>
+        <ref name="db.biblio.class.enumeration"/>
+      </attribute>
+    </optional>
+  </define>
+  <define name="db.biblio.class-other.attribute">
+    <attribute name="otherclass">
+      <a:documentation>Identifies the nature of the non-standard bibliographic identifier</a:documentation>
+      <data type="NMTOKEN"/>
+    </attribute>
+  </define>
+  <define name="db.biblio.class-other.attributes">
+    <interleave>
+      <attribute name="class">
+        <a:documentation>Identifies the kind of bibliographic identifier</a:documentation>
+        <value>other</value>
+        <a:documentation>Indicates that the identifier is some 'other' kind.</a:documentation>
+      </attribute>
+      <ref name="db.biblio.class-other.attribute"/>
+    </interleave>
+  </define>
+  <define name="db.biblio.class.attribute">
+    <choice>
+      <ref name="db.biblio.class-enum.attribute"/>
+      <ref name="db.biblio.class-other.attributes"/>
+    </choice>
+  </define>
+  <define name="db.ubiq.inlines">
+    <choice>
+      <choice>
+        <ref name="db.inlinemediaobject"/>
+        <ref name="db.remark"/>
+        <ref name="db.superscript"/>
+        <ref name="db.subscript"/>
+        <ref name="db.link.inlines"/>
+        <ref name="db.alt"/>
+      </choice>
+      <ref name="db.annotation"/>
+      <ref name="db.indexterm"/>
+      <ref name="its-ruby"/>
+    </choice>
+  </define>
+  <define name="db._text">
+    <zeroOrMore>
+      <choice>
+        <text/>
+        <ref name="db.ubiq.inlines"/>
+        <ref name="db._phrase"/>
+        <ref name="db.replaceable"/>
+      </choice>
+    </zeroOrMore>
+  </define>
+  <define name="db._title">
+    <interleave>
+      <optional>
+        <ref name="db.title"/>
+      </optional>
+      <optional>
+        <ref name="db.titleabbrev"/>
+      </optional>
+      <optional>
+        <ref name="db.subtitle"/>
+      </optional>
+    </interleave>
+  </define>
+  <define name="db._title.req">
+    <interleave>
+      <ref name="db.title"/>
+      <optional>
+        <ref name="db.titleabbrev"/>
+      </optional>
+      <optional>
+        <ref name="db.subtitle"/>
+      </optional>
+    </interleave>
+  </define>
+  <define name="db._title.only">
+    <interleave>
+      <optional>
+        <ref name="db.title"/>
+      </optional>
+      <optional>
+        <ref name="db.titleabbrev"/>
+      </optional>
+    </interleave>
+  </define>
+  <define name="db._title.onlyreq">
+    <interleave>
+      <ref name="db.title"/>
+      <optional>
+        <ref name="db.titleabbrev"/>
+      </optional>
+    </interleave>
+  </define>
+  <define name="db._info">
+    <choice>
+      <group>
+        <ref name="db._title"/>
+        <optional>
+          <ref name="db.titleforbidden.info"/>
+        </optional>
+      </group>
+      <optional>
+        <ref name="db.info"/>
+      </optional>
+    </choice>
+  </define>
+  <define name="db._info.title.req">
+    <choice>
+      <group>
+        <ref name="db._title.req"/>
+        <optional>
+          <ref name="db.titleforbidden.info"/>
+        </optional>
+      </group>
+      <ref name="db.titlereq.info"/>
+    </choice>
+  </define>
+  <define name="db._info.title.only">
+    <choice>
+      <group>
+        <ref name="db._title.only"/>
+        <optional>
+          <ref name="db.titleforbidden.info"/>
+        </optional>
+      </group>
+      <ref name="db.titleonly.info"/>
+    </choice>
+  </define>
+  <define name="db._info.title.onlyreq">
+    <choice>
+      <group>
+        <ref name="db._title.onlyreq"/>
+        <optional>
+          <ref name="db.titleforbidden.info"/>
+        </optional>
+      </group>
+      <ref name="db.titleonlyreq.info"/>
+    </choice>
+  </define>
+  <define name="db._info.title.forbidden">
+    <optional>
+      <ref name="db.titleforbidden.info"/>
+    </optional>
+  </define>
+  <define name="db.all.inlines">
+    <choice>
+      <text/>
+      <ref name="db.ubiq.inlines"/>
+      <ref name="db.general.inlines"/>
+      <ref name="db.domain.inlines"/>
+      <ref name="db.extension.inlines"/>
+    </choice>
+  </define>
+  <define name="db.general.inlines">
+    <choice>
+      <ref name="db.publishing.inlines"/>
+      <ref name="db.product.inlines"/>
+      <ref name="db.bibliography.inlines"/>
+      <ref name="db.graphic.inlines"/>
+      <ref name="db.indexing.inlines"/>
+      <ref name="db.link.inlines"/>
+    </choice>
+  </define>
+  <define name="db.domain.inlines">
+    <choice>
+      <ref name="db.technical.inlines"/>
+      <ref name="db.math.inlines"/>
+      <ref name="db.markup.inlines"/>
+      <ref name="db.gui.inlines"/>
+      <ref name="db.keyboard.inlines"/>
+      <ref name="db.os.inlines"/>
+      <ref name="db.programming.inlines"/>
+      <ref name="db.error.inlines"/>
+    </choice>
+  </define>
+  <define name="db.technical.inlines">
+    <choice>
+      <choice>
+        <ref name="db.replaceable"/>
+        <ref name="db.package"/>
+        <ref name="db.parameter"/>
+      </choice>
+      <ref name="db.termdef"/>
+      <ref name="db.nonterminal"/>
+      <choice>
+        <ref name="db.systemitem"/>
+        <ref name="db.option"/>
+        <ref name="db.optional"/>
+        <ref name="db.property"/>
+      </choice>
+    </choice>
+  </define>
+  <define name="db.product.inlines">
+    <choice>
+      <ref name="db.trademark"/>
+      <choice>
+        <ref name="db.productnumber"/>
+        <ref name="db.productname"/>
+        <ref name="db.database"/>
+        <ref name="db.application"/>
+        <ref name="db.hardware"/>
+      </choice>
+    </choice>
+  </define>
+  <define name="db.bibliography.inlines">
+    <choice>
+      <ref name="db.citation"/>
+      <ref name="db.citerefentry"/>
+      <ref name="db.citetitle"/>
+      <ref name="db.citebiblioid"/>
+      <ref name="db.author"/>
+      <ref name="db.person"/>
+      <ref name="db.personname"/>
+      <ref name="db.org"/>
+      <ref name="db.orgname"/>
+      <ref name="db.editor"/>
+      <ref name="db.jobtitle"/>
+    </choice>
+  </define>
+  <define name="db.publishing.inlines">
+    <choice>
+      <choice>
+        <ref name="db.abbrev"/>
+        <ref name="db.acronym"/>
+        <ref name="db.date"/>
+        <ref name="db.emphasis"/>
+        <ref name="db.footnote"/>
+        <ref name="db.footnoteref"/>
+        <ref name="db.foreignphrase"/>
+        <ref name="db.phrase"/>
+        <ref name="db.quote"/>
+        <ref name="db.subscript"/>
+        <ref name="db.superscript"/>
+        <ref name="db.wordasword"/>
+      </choice>
+      <ref name="db.glossary.inlines"/>
+      <ref name="db.coref"/>
+    </choice>
+  </define>
+  <define name="db.graphic.inlines">
+    <ref name="db.inlinemediaobject"/>
+  </define>
+  <define name="db.indexing.inlines">
+    <choice>
+      <notAllowed/>
+      <ref name="db.indexterm"/>
+    </choice>
+  </define>
+  <define name="db.link.inlines">
+    <choice>
+      <choice>
+        <ref name="db.xref"/>
+        <ref name="db.link"/>
+        <ref name="db.olink"/>
+        <ref name="db.anchor"/>
+      </choice>
+      <ref name="db.biblioref"/>
+    </choice>
+  </define>
+  <define name="db.extension.inlines">
+    <notAllowed/>
+  </define>
+  <define name="db.nopara.blocks">
+    <choice>
+      <choice>
+        <ref name="db.list.blocks"/>
+        <ref name="db.formal.blocks"/>
+        <ref name="db.informal.blocks"/>
+        <ref name="db.publishing.blocks"/>
+        <ref name="db.graphic.blocks"/>
+        <ref name="db.technical.blocks"/>
+        <ref name="db.verbatim.blocks"/>
+        <ref name="db.bridgehead"/>
+        <ref name="db.remark"/>
+        <ref name="db.revhistory"/>
+      </choice>
+      <ref name="db.indexterm"/>
+      <ref name="db.synopsis.blocks"/>
+      <ref name="db.admonition.blocks"/>
+    </choice>
+  </define>
+  <define name="db.para.blocks">
+    <choice>
+      <ref name="db.anchor"/>
+      <ref name="db.para"/>
+      <ref name="db.formalpara"/>
+      <ref name="db.simpara"/>
+    </choice>
+  </define>
+  <define name="db.all.blocks">
+    <choice>
+      <choice>
+        <ref name="db.nopara.blocks"/>
+        <ref name="db.para.blocks"/>
+        <ref name="db.extension.blocks"/>
+      </choice>
+      <ref name="db.annotation"/>
+    </choice>
+  </define>
+  <define name="db.formal.blocks">
+    <choice>
+      <choice>
+        <ref name="db.example"/>
+        <ref name="db.figure"/>
+        <ref name="db.table"/>
+      </choice>
+      <ref name="db.equation"/>
+    </choice>
+  </define>
+  <define name="db.informal.blocks">
+    <choice>
+      <choice>
+        <ref name="db.informalexample"/>
+        <ref name="db.informalfigure"/>
+        <ref name="db.informaltable"/>
+      </choice>
+      <ref name="db.informalequation"/>
+    </choice>
+  </define>
+  <define name="db.publishing.blocks">
+    <choice>
+      <ref name="db.sidebar"/>
+      <ref name="db.blockquote"/>
+      <ref name="db.address"/>
+      <ref name="db.epigraph"/>
+    </choice>
+  </define>
+  <define name="db.graphic.blocks">
+    <choice>
+      <ref name="db.mediaobject"/>
+      <ref name="db.screenshot"/>
+    </choice>
+  </define>
+  <define name="db.technical.blocks">
+    <choice>
+      <ref name="db.procedure"/>
+      <ref name="db.task"/>
+      <choice>
+        <ref name="db.productionset"/>
+        <ref name="db.constraintdef"/>
+      </choice>
+      <ref name="db.msgset"/>
+    </choice>
+  </define>
+  <define name="db.list.blocks">
+    <choice>
+      <choice>
+        <ref name="db.itemizedlist"/>
+        <ref name="db.orderedlist"/>
+        <ref name="db.procedure"/>
+        <ref name="db.simplelist"/>
+        <ref name="db.variablelist"/>
+        <ref name="db.segmentedlist"/>
+      </choice>
+      <ref name="db.glosslist"/>
+      <ref name="db.bibliolist"/>
+      <ref name="db.calloutlist"/>
+      <ref name="db.qandaset"/>
+    </choice>
+  </define>
+  <define name="db.verbatim.blocks">
+    <choice>
+      <choice>
+        <ref name="db.screen"/>
+        <ref name="db.literallayout"/>
+      </choice>
+      <choice>
+        <ref name="db.programlistingco"/>
+        <ref name="db.screenco"/>
+      </choice>
+      <choice>
+        <ref name="db.programlisting"/>
+        <ref name="db.synopsis"/>
+      </choice>
+    </choice>
+  </define>
+  <define name="db.extension.blocks">
+    <notAllowed/>
+  </define>
+  <define name="db.info.extension">
+    <choice>
+      <ref name="db._any"/>
+      <ref name="its-rules"/>
+    </choice>
+  </define>
+  <define name="db.info.elements">
+    <choice>
+      <choice>
+        <ref name="db.abstract"/>
+        <ref name="db.address"/>
+        <ref name="db.artpagenums"/>
+        <ref name="db.author"/>
+        <ref name="db.authorgroup"/>
+        <ref name="db.authorinitials"/>
+        <ref name="db.bibliocoverage"/>
+        <ref name="db.biblioid"/>
+        <ref name="db.bibliosource"/>
+        <ref name="db.collab"/>
+        <ref name="db.confgroup"/>
+        <ref name="db.contractsponsor"/>
+        <ref name="db.contractnum"/>
+        <ref name="db.copyright"/>
+        <ref name="db.cover"/>
+        <ref name="db.date"/>
+        <ref name="db.edition"/>
+        <ref name="db.editor"/>
+        <ref name="db.issuenum"/>
+        <ref name="db.keywordset"/>
+        <ref name="db.legalnotice"/>
+        <ref name="db.mediaobject"/>
+        <ref name="db.org"/>
+        <ref name="db.orgname"/>
+        <ref name="db.othercredit"/>
+        <ref name="db.pagenums"/>
+        <ref name="db.printhistory"/>
+        <ref name="db.pubdate"/>
+        <ref name="db.publisher"/>
+        <ref name="db.publishername"/>
+        <ref name="db.releaseinfo"/>
+        <ref name="db.revhistory"/>
+        <ref name="db.seriesvolnums"/>
+        <ref name="db.subjectset"/>
+        <ref name="db.volumenum"/>
+        <ref name="db.info.extension"/>
+      </choice>
+      <ref name="db.annotation"/>
+      <ref name="db.extendedlink"/>
+      <choice>
+        <ref name="db.bibliomisc"/>
+        <ref name="db.bibliomset"/>
+        <ref name="db.bibliorelation"/>
+        <ref name="db.biblioset"/>
+      </choice>
+      <ref name="db.itermset"/>
+      <choice>
+        <ref name="db.productname"/>
+        <ref name="db.productnumber"/>
+      </choice>
+    </choice>
+  </define>
+  <define name="db.bibliographic.elements">
+    <choice>
+      <ref name="db.info.elements"/>
+      <ref name="db.publishing.inlines"/>
+      <ref name="db.citerefentry"/>
+      <ref name="db.citetitle"/>
+      <ref name="db.citebiblioid"/>
+      <ref name="db.person"/>
+      <ref name="db.personblurb"/>
+      <ref name="db.personname"/>
+      <ref name="db.subtitle"/>
+      <ref name="db.title"/>
+      <ref name="db.titleabbrev"/>
+    </choice>
+  </define>
+  <div>
+    <define name="db.title.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.title.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.title.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.title">
+      <element name="title">
+        <a:documentation>The text of the title of a section of a document or of a formal block-level element</a:documentation>
+        <ref name="db.title.attlist"/>
+        <zeroOrMore>
+          <ref name="db.all.inlines"/>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.titleabbrev.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.titleabbrev.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.titleabbrev.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.titleabbrev">
+      <element name="titleabbrev">
+        <a:documentation>The abbreviation of a title</a:documentation>
+        <ref name="db.titleabbrev.attlist"/>
+        <zeroOrMore>
+          <ref name="db.all.inlines"/>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.subtitle.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.subtitle.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.subtitle.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.subtitle">
+      <element name="subtitle">
+        <a:documentation>The subtitle of a document</a:documentation>
+        <ref name="db.subtitle.attlist"/>
+        <zeroOrMore>
+          <ref name="db.all.inlines"/>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.info.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.info.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.info.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.info">
+      <element name="info">
+        <a:documentation>A wrapper for information about a component or other block</a:documentation>
+        <ref name="db.info.attlist"/>
+        <interleave>
+          <ref name="db._title"/>
+          <zeroOrMore>
+            <ref name="db.info.elements"/>
+          </zeroOrMore>
+        </interleave>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.titlereq.info.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.titlereq.info.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.titlereq.info.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.titlereq.info">
+      <element name="info">
+        <a:documentation>A wrapper for information about a component or other block with a required title</a:documentation>
+        <ref name="db.titlereq.info.attlist"/>
+        <interleave>
+          <ref name="db._title.req"/>
+          <zeroOrMore>
+            <ref name="db.info.elements"/>
+          </zeroOrMore>
+        </interleave>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.titleonly.info.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.titleonly.info.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.titleonly.info.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.titleonly.info">
+      <element name="info">
+        <a:documentation>A wrapper for information about a component or other block with only a title</a:documentation>
+        <ref name="db.titleonly.info.attlist"/>
+        <interleave>
+          <ref name="db._title.only"/>
+          <zeroOrMore>
+            <ref name="db.info.elements"/>
+          </zeroOrMore>
+        </interleave>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.titleonlyreq.info.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.titleonlyreq.info.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.titleonlyreq.info.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.titleonlyreq.info">
+      <element name="info">
+        <a:documentation>A wrapper for information about a component or other block with only a required title</a:documentation>
+        <ref name="db.titleonlyreq.info.attlist"/>
+        <interleave>
+          <ref name="db._title.onlyreq"/>
+          <zeroOrMore>
+            <ref name="db.info.elements"/>
+          </zeroOrMore>
+        </interleave>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.titleforbidden.info.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.titleforbidden.info.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.titleforbidden.info.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.titleforbidden.info">
+      <element name="info">
+        <a:documentation>A wrapper for information about a component or other block without a title</a:documentation>
+        <ref name="db.titleforbidden.info.attlist"/>
+        <zeroOrMore>
+          <ref name="db.info.elements"/>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.subjectset.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.subjectset.scheme.attribute">
+      <attribute name="scheme">
+        <a:documentation>Identifies the controlled vocabulary used by this set's terms</a:documentation>
+        <data type="NMTOKEN"/>
+      </attribute>
+    </define>
+    <define name="db.subjectset.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.subjectset.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <optional>
+          <ref name="db.subjectset.scheme.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.subjectset">
+      <element name="subjectset">
+        <a:documentation>A set of terms describing the subject matter of a document</a:documentation>
+        <ref name="db.subjectset.attlist"/>
+        <oneOrMore>
+          <ref name="db.subject"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.subject.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.subject.weight.attribute">
+      <attribute name="weight">
+        <a:documentation>Specifies a ranking for this subject relative to other subjects in the same set</a:documentation>
+      </attribute>
+    </define>
+    <define name="db.subject.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.subject.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <optional>
+          <ref name="db.subject.weight.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.subject">
+      <element name="subject">
+        <a:documentation>One of a group of terms describing the subject matter of a document</a:documentation>
+        <ref name="db.subject.attlist"/>
+        <oneOrMore>
+          <ref name="db.subjectterm"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.subjectterm.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.subjectterm.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.subjectterm.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.subjectterm">
+      <element name="subjectterm">
+        <a:documentation>A term in a group of terms describing the subject matter of a document</a:documentation>
+        <ref name="db.subjectterm.attlist"/>
+        <text/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.keywordset.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.keywordset.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.keywordset.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.keywordset">
+      <element name="keywordset">
+        <a:documentation>A set of keywords describing the content of a document</a:documentation>
+        <ref name="db.keywordset.attlist"/>
+        <oneOrMore>
+          <ref name="db.keyword"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.keyword.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.keyword.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.keyword.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.keyword">
+      <element name="keyword">
+        <a:documentation>One of a set of keywords describing the content of a document</a:documentation>
+        <ref name="db.keyword.attlist"/>
+        <text/>
+      </element>
+    </define>
+  </div>
+  <define name="db.table.choice">
+    <choice>
+      <notAllowed/>
+      <ref name="db.cals.table"/>
+      <ref name="db.html.table"/>
+    </choice>
+  </define>
+  <define name="db.informaltable.choice">
+    <choice>
+      <notAllowed/>
+      <ref name="db.cals.informaltable"/>
+      <ref name="db.html.informaltable"/>
+    </choice>
+  </define>
+  <define name="db.table">
+    <ref name="db.table.choice"/>
+  </define>
+  <define name="db.informaltable">
+    <ref name="db.informaltable.choice"/>
+  </define>
+  <div>
+    <define name="db.procedure.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.procedure.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.procedure.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.procedure.info">
+      <ref name="db._info.title.only"/>
+    </define>
+    <define name="db.procedure">
+      <element name="procedure">
+        <a:documentation>A list of operations to be performed in a well-defined sequence</a:documentation>
+        <ref name="db.procedure.attlist"/>
+        <ref name="db.procedure.info"/>
+        <zeroOrMore>
+          <ref name="db.all.blocks"/>
+        </zeroOrMore>
+        <oneOrMore>
+          <ref name="db.step"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.step.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.step.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.step.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <optional>
+          <ref name="db.performance.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.step.info">
+      <ref name="db._info.title.only"/>
+    </define>
+<!--
+
+      This content model is blocks*, step|stepalternatives, blocks* but
+      expressed this way it avoids UPA issues in XSD and DTD versions
+    -->
+    <define name="db.step">
+      <element name="step">
+        <a:documentation>A unit of action in a procedure</a:documentation>
+        <ref name="db.step.attlist"/>
+        <ref name="db.step.info"/>
+        <choice>
+          <group>
+            <oneOrMore>
+              <ref name="db.all.blocks"/>
+            </oneOrMore>
+            <optional>
+              <choice>
+                <ref name="db.substeps"/>
+                <ref name="db.stepalternatives"/>
+              </choice>
+              <zeroOrMore>
+                <ref name="db.all.blocks"/>
+              </zeroOrMore>
+            </optional>
+          </group>
+          <group>
+            <choice>
+              <ref name="db.substeps"/>
+              <ref name="db.stepalternatives"/>
+            </choice>
+            <zeroOrMore>
+              <ref name="db.all.blocks"/>
+            </zeroOrMore>
+          </group>
+        </choice>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.stepalternatives.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.stepalternatives.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.stepalternatives.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <optional>
+          <ref name="db.performance.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.stepalternatives.info">
+      <ref name="db._info.title.forbidden"/>
+    </define>
+    <define name="db.stepalternatives">
+      <element name="stepalternatives">
+        <a:documentation>Alternative steps in a procedure</a:documentation>
+        <ref name="db.stepalternatives.attlist"/>
+        <ref name="db.stepalternatives.info"/>
+        <oneOrMore>
+          <ref name="db.step"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.substeps.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.substeps.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.substeps.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <optional>
+          <ref name="db.performance.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.substeps">
+      <element name="substeps">
+        <a:documentation>A wrapper for steps that occur within steps in a procedure</a:documentation>
+        <ref name="db.substeps.attlist"/>
+        <oneOrMore>
+          <ref name="db.step"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.sidebar.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.sidebar.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.sidebar.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.sidebar.info">
+      <ref name="db._info.title.only"/>
+    </define>
+    <define name="db.sidebar">
+      <element name="sidebar">
+        <a:documentation>A portion of a document that is isolated from the main narrative flow</a:documentation>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:sidebar">
+            <s:assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of sidebar</s:assert>
+          </s:rule>
+        </s:pattern>
+        <ref name="db.sidebar.attlist"/>
+        <ref name="db.sidebar.info"/>
+        <oneOrMore>
+          <ref name="db.all.blocks"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.abstract.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.abstract.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.abstract.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.abstract.info">
+      <ref name="db._info.title.only"/>
+    </define>
+    <define name="db.abstract">
+      <element name="abstract">
+        <a:documentation>A summary</a:documentation>
+        <ref name="db.abstract.attlist"/>
+        <ref name="db.abstract.info"/>
+        <oneOrMore>
+          <ref name="db.para.blocks"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.personblurb.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.personblurb.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.personblurb.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.personblurb.info">
+      <ref name="db._info.title.only"/>
+    </define>
+    <define name="db.personblurb">
+      <element name="personblurb">
+        <a:documentation>A short description or note about a person</a:documentation>
+        <ref name="db.personblurb.attlist"/>
+        <ref name="db.personblurb.info"/>
+        <oneOrMore>
+          <ref name="db.para.blocks"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.blockquote.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.blockquote.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.blockquote.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.blockquote.info">
+      <ref name="db._info.title.only"/>
+    </define>
+    <define name="db.blockquote">
+      <element name="blockquote">
+        <a:documentation>A quotation set off from the main text</a:documentation>
+        <ref name="db.blockquote.attlist"/>
+        <ref name="db.blockquote.info"/>
+        <optional>
+          <ref name="db.attribution"/>
+        </optional>
+        <oneOrMore>
+          <ref name="db.all.blocks"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.attribution.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.attribution.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.attribution.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.attribution">
+      <element name="attribution">
+        <a:documentation>The source of a block quote or epigraph</a:documentation>
+        <ref name="db.attribution.attlist"/>
+        <zeroOrMore>
+          <choice>
+            <ref name="db._text"/>
+            <ref name="db.person"/>
+            <ref name="db.personname"/>
+            <ref name="db.citetitle"/>
+            <ref name="db.citation"/>
+          </choice>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.bridgehead.renderas.enumeration">
+      <choice>
+        <value>sect1</value>
+        <a:documentation>Render as a first-level section</a:documentation>
+        <value>sect2</value>
+        <a:documentation>Render as a second-level section</a:documentation>
+        <value>sect3</value>
+        <a:documentation>Render as a third-level section</a:documentation>
+        <value>sect4</value>
+        <a:documentation>Render as a fourth-level section</a:documentation>
+        <value>sect5</value>
+        <a:documentation>Render as a fifth-level section</a:documentation>
+      </choice>
+    </define>
+    <define name="db.bridgehead.renderas-enum.attribute">
+      <optional>
+        <attribute name="renderas">
+          <a:documentation>Indicates how the bridge head should be rendered</a:documentation>
+          <ref name="db.bridgehead.renderas.enumeration"/>
+        </attribute>
+      </optional>
+    </define>
+    <define name="db.bridgehead.renderas-other.attribute">
+      <attribute name="otherrenderas">
+        <a:documentation>Identifies the nature of the non-standard rendering</a:documentation>
+        <data type="NMTOKEN"/>
+      </attribute>
+    </define>
+    <define name="db.bridgehead.renderas-other.attributes">
+      <interleave>
+        <attribute name="renderas">
+          <a:documentation>Indicates how the bridge head should be rendered</a:documentation>
+          <value>other</value>
+          <a:documentation>Identifies a non-standard rendering</a:documentation>
+        </attribute>
+        <ref name="db.bridgehead.renderas-other.attribute"/>
+      </interleave>
+    </define>
+    <define name="db.bridgehead.renderas.attribute">
+      <choice>
+        <ref name="db.bridgehead.renderas-enum.attribute"/>
+        <ref name="db.bridgehead.renderas-other.attributes"/>
+      </choice>
+    </define>
+    <define name="db.bridgehead.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.bridgehead.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.bridgehead.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <optional>
+          <ref name="db.bridgehead.renderas.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.bridgehead">
+      <element name="bridgehead">
+        <a:documentation>A free-floating heading</a:documentation>
+        <ref name="db.bridgehead.attlist"/>
+        <zeroOrMore>
+          <ref name="db.all.inlines"/>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.remark.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.remark.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.remark.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.remark">
+      <element name="remark">
+        <a:documentation>A remark (or comment) intended for presentation in a draft manuscript</a:documentation>
+        <ref name="db.remark.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.epigraph.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.epigraph.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.epigraph.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.epigraph.info">
+      <ref name="db._info.title.forbidden"/>
+    </define>
+    <define name="db.epigraph">
+      <element name="epigraph">
+        <a:documentation>A short inscription at the beginning of a document or component</a:documentation>
+        <ref name="db.epigraph.attlist"/>
+        <ref name="db.epigraph.info"/>
+        <optional>
+          <ref name="db.attribution"/>
+        </optional>
+        <oneOrMore>
+          <choice>
+            <ref name="db.para.blocks"/>
+            <ref name="db.literallayout"/>
+          </choice>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.footnote.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.footnote.label.attribute">
+      <attribute name="label">
+        <a:documentation>Identifies the desired footnote mark</a:documentation>
+        <data type="NMTOKEN"/>
+      </attribute>
+    </define>
+    <define name="db.footnote.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.footnote.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <optional>
+          <ref name="db.footnote.label.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.footnote">
+      <element name="footnote">
+        <a:documentation>A footnote</a:documentation>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:footnote">
+            <s:assert test="not(.//db:footnote)">footnote must not occur in the descendants of footnote</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:footnote">
+            <s:assert test="not(.//db:example)">example must not occur in the descendants of footnote</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:footnote">
+            <s:assert test="not(.//db:figure)">figure must not occur in the descendants of footnote</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:footnote">
+            <s:assert test="not(.//db:table)">table must not occur in the descendants of footnote</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:footnote">
+            <s:assert test="not(.//db:equation)">equation must not occur in the descendants of footnote</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:footnote">
+            <s:assert test="not(.//db:indexterm)">indexterm must not occur in the descendants of footnote</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:footnote">
+            <s:assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of footnote</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:footnote">
+            <s:assert test="not(.//db:task)">task must not occur in the descendants of footnote</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:footnote">
+            <s:assert test="not(.//db:epigraph)">epigraph must not occur in the descendants of footnote</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:footnote">
+            <s:assert test="not(.//db:caution)">caution must not occur in the descendants of footnote</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:footnote">
+            <s:assert test="not(.//db:important)">important must not occur in the descendants of footnote</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:footnote">
+            <s:assert test="not(.//db:note)">note must not occur in the descendants of footnote</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:footnote">
+            <s:assert test="not(.//db:tip)">tip must not occur in the descendants of footnote</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:footnote">
+            <s:assert test="not(.//db:warning)">warning must not occur in the descendants of footnote</s:assert>
+          </s:rule>
+        </s:pattern>
+        <ref name="db.footnote.attlist"/>
+        <oneOrMore>
+          <ref name="db.all.blocks"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.formalpara.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.formalpara.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.formalpara.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.formalpara.info">
+      <ref name="db._info.title.onlyreq"/>
+    </define>
+    <define name="db.formalpara">
+      <element name="formalpara">
+        <a:documentation>A paragraph with a title</a:documentation>
+        <ref name="db.formalpara.attlist"/>
+        <ref name="db.formalpara.info"/>
+        <zeroOrMore>
+          <ref name="db.indexing.inlines"/>
+        </zeroOrMore>
+        <ref name="db.para"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.para.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.para.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.para.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.para.info">
+      <ref name="db._info.title.forbidden"/>
+    </define>
+    <define name="db.para">
+      <element name="para">
+        <a:documentation>A paragraph</a:documentation>
+        <s:pattern name="Root must have version">
+          <s:rule context="/db:para">
+            <s:assert test="@version">The root element must have a version attribute.</s:assert>
+          </s:rule>
+        </s:pattern>
+        <ref name="db.para.attlist"/>
+        <ref name="db.para.info"/>
+        <zeroOrMore>
+          <choice>
+            <ref name="db.all.inlines"/>
+            <ref name="db.nopara.blocks"/>
+          </choice>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.simpara.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.simpara.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.simpara.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.simpara.info">
+      <ref name="db._info.title.forbidden"/>
+    </define>
+    <define name="db.simpara">
+      <element name="simpara">
+        <a:documentation>A paragraph that contains only text and inline markup, no block elements</a:documentation>
+        <ref name="db.simpara.attlist"/>
+        <ref name="db.simpara.info"/>
+        <zeroOrMore>
+          <ref name="db.all.inlines"/>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.itemizedlist.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.itemizedlist.mark.attribute">
+      <attribute name="mark">
+        <a:documentation>Identifies the type of mark to be used on items in this list</a:documentation>
+        <data type="NMTOKEN"/>
+      </attribute>
+    </define>
+    <define name="db.itemizedlist.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.itemizedlist.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <optional>
+          <ref name="db.spacing.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.itemizedlist.mark.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.itemizedlist.info">
+      <ref name="db._info.title.only"/>
+    </define>
+    <define name="db.itemizedlist">
+      <element name="itemizedlist">
+        <a:documentation>A list in which each entry is marked with a bullet or other dingbat</a:documentation>
+        <ref name="db.itemizedlist.attlist"/>
+        <ref name="db.itemizedlist.info"/>
+        <zeroOrMore>
+          <ref name="db.all.blocks"/>
+        </zeroOrMore>
+        <oneOrMore>
+          <ref name="db.listitem"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.orderedlist.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.orderedlist.continuation.enumeration">
+      <choice>
+        <value>continues</value>
+        <a:documentation>Specifies that numbering should begin where the preceding list left off</a:documentation>
+        <value>restarts</value>
+        <a:documentation>Specifies that numbering should begin again at 1</a:documentation>
+      </choice>
+    </define>
+    <define name="db.orderedlist.continuation.attribute">
+      <attribute name="continuation">
+        <a:documentation>Indicates how list numbering should begin relative to the immediately preceding list</a:documentation>
+        <ref name="db.orderedlist.continuation.enumeration"/>
+      </attribute>
+    </define>
+    <define name="db.orderedlist.startingnumber.attribute">
+      <attribute name="startingnumber">
+        <a:documentation>Specifies the initial line number.</a:documentation>
+        <data type="integer"/>
+      </attribute>
+    </define>
+    <define name="db.orderedlist.inheritnum.enumeration">
+      <choice>
+        <value>ignore</value>
+        <a:documentation>Specifies that numbering should ignore list nesting</a:documentation>
+        <value>inherit</value>
+        <a:documentation>Specifies that numbering should inherit from outer-level lists</a:documentation>
+      </choice>
+    </define>
+    <define name="db.orderedlist.inheritnum.attribute">
+      <attribute name="inheritnum">
+        <a:documentation>Indicates whether or not item numbering should be influenced by list nesting</a:documentation>
+        <ref name="db.orderedlist.inheritnum.enumeration"/>
+      </attribute>
+    </define>
+    <define name="db.orderedlist.numeration.enumeration">
+      <choice>
+        <value>arabic</value>
+        <a:documentation>Specifies Arabic numeration (1, 2, 3, …)</a:documentation>
+        <value>upperalpha</value>
+        <a:documentation>Specifies upper-case alphabetic numeration (A, B, C, …)</a:documentation>
+        <value>loweralpha</value>
+        <a:documentation>Specifies lower-case alphabetic numeration (a, b, c, …)</a:documentation>
+        <value>upperroman</value>
+        <a:documentation>Specifies upper-case Roman numeration (I, II, III, …)</a:documentation>
+        <value>lowerroman</value>
+        <a:documentation>Specifies lower-case Roman numeration (i, ii, iii …)</a:documentation>
+      </choice>
+    </define>
+    <define name="db.orderedlist.numeration.attribute">
+      <attribute name="numeration">
+        <a:documentation>Indicates the desired numeration</a:documentation>
+        <ref name="db.orderedlist.numeration.enumeration"/>
+      </attribute>
+    </define>
+    <define name="db.orderedlist.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.orderedlist.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <optional>
+          <ref name="db.spacing.attribute"/>
+        </optional>
+        <optional>
+          <choice>
+            <ref name="db.orderedlist.continuation.attribute"/>
+            <ref name="db.orderedlist.startingnumber.attribute"/>
+          </choice>
+        </optional>
+        <optional>
+          <ref name="db.orderedlist.inheritnum.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.orderedlist.numeration.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.orderedlist.info">
+      <ref name="db._info.title.only"/>
+    </define>
+    <define name="db.orderedlist">
+      <element name="orderedlist">
+        <a:documentation>A list in which each entry is marked with a sequentially incremented label</a:documentation>
+        <ref name="db.orderedlist.attlist"/>
+        <ref name="db.orderedlist.info"/>
+        <zeroOrMore>
+          <ref name="db.all.blocks"/>
+        </zeroOrMore>
+        <oneOrMore>
+          <ref name="db.listitem"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.listitem.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.listitem.override.attribute">
+      <attribute name="override">
+        <a:documentation>Specifies the keyword for the type of mark that should be used on this
+ item, instead of the mark that would be used by default</a:documentation>
+        <data type="NMTOKEN"/>
+      </attribute>
+    </define>
+    <define name="db.listitem.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.listitem.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <optional>
+          <ref name="db.listitem.override.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.listitem">
+      <element name="listitem">
+        <a:documentation>A wrapper for the elements of a list item</a:documentation>
+        <ref name="db.listitem.attlist"/>
+        <oneOrMore>
+          <ref name="db.all.blocks"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.segmentedlist.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.segmentedlist.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.segmentedlist.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.segmentedlist.info">
+      <ref name="db._info.title.only"/>
+    </define>
+    <define name="db.segmentedlist">
+      <element name="segmentedlist">
+        <a:documentation>A segmented list, a list of sets of elements</a:documentation>
+        <ref name="db.segmentedlist.attlist"/>
+        <ref name="db.segmentedlist.info"/>
+        <oneOrMore>
+          <ref name="db.segtitle"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="db.seglistitem"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.segtitle.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.segtitle.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.segtitle.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.segtitle">
+      <element name="segtitle">
+        <a:documentation>The title of an element of a list item in a segmented list</a:documentation>
+        <ref name="db.segtitle.attlist"/>
+        <zeroOrMore>
+          <ref name="db.all.inlines"/>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.seglistitem.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.seglistitem.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.seglistitem.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.seglistitem">
+      <element name="seglistitem">
+        <a:documentation>A list item in a segmented list</a:documentation>
+        <s:pattern name="Cardinality of segments and titles">
+          <s:rule context="db:seglistitem">
+            <s:assert test="count(db:seg) = count(../db:segtitle)">The number of seg elements must be the same as the number of segtitle elements in the parent segmentedlist</s:assert>
+          </s:rule>
+        </s:pattern>
+        <ref name="db.seglistitem.attlist"/>
+        <oneOrMore>
+          <ref name="db.seg"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.seg.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.seg.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.seg.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.seg">
+      <element name="seg">
+        <a:documentation>An element of a list item in a segmented list</a:documentation>
+        <ref name="db.seg.attlist"/>
+        <zeroOrMore>
+          <ref name="db.all.inlines"/>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.simplelist.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.simplelist.type.enumeration">
+      <choice>
+        <value>horiz</value>
+        <a:documentation>A tabular presentation in row-major order.</a:documentation>
+        <value>vert</value>
+        <a:documentation>A tabular presentation in column-major order.</a:documentation>
+        <value>inline</value>
+        <a:documentation>An inline presentation, usually a comma-delimited list.</a:documentation>
+      </choice>
+    </define>
+    <define name="db.simplelist.type.attribute">
+      <attribute name="type" a:defaultValue="vert">
+        <a:documentation>Specifies the type of list presentation.</a:documentation>
+        <ref name="db.simplelist.type.enumeration"/>
+      </attribute>
+    </define>
+    <define name="db.simplelist.columns.attribute">
+      <attribute name="columns">
+        <a:documentation>Specifies the number of columns for horizontal or vertical presentation</a:documentation>
+        <data type="integer"/>
+      </attribute>
+    </define>
+    <define name="db.simplelist.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.simplelist.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <optional>
+          <ref name="db.simplelist.type.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.simplelist.columns.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.simplelist">
+      <element name="simplelist">
+        <a:documentation>An undecorated list of single words or short phrases</a:documentation>
+        <ref name="db.simplelist.attlist"/>
+        <oneOrMore>
+          <ref name="db.member"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.member.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.member.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.member.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.member">
+      <element name="member">
+        <a:documentation>An element of a simple list</a:documentation>
+        <ref name="db.member.attlist"/>
+        <zeroOrMore>
+          <ref name="db.all.inlines"/>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.variablelist.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.variablelist.termlength.attribute">
+      <attribute name="termlength">
+        <a:documentation>Indicates a length beyond which the presentation system may consider a term too long and select an alternate presentation for that term, item, or list</a:documentation>
+      </attribute>
+    </define>
+    <define name="db.variablelist.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.variablelist.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <optional>
+          <ref name="db.spacing.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.variablelist.termlength.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.variablelist.info">
+      <ref name="db._info.title.only"/>
+    </define>
+    <define name="db.variablelist">
+      <element name="variablelist">
+        <a:documentation>A list in which each entry is composed of a set of one or more terms and an associated description</a:documentation>
+        <ref name="db.variablelist.attlist"/>
+        <ref name="db.variablelist.info"/>
+        <zeroOrMore>
+          <ref name="db.all.blocks"/>
+        </zeroOrMore>
+        <oneOrMore>
+          <ref name="db.varlistentry"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.varlistentry.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.varlistentry.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.varlistentry.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.varlistentry">
+      <element name="varlistentry">
+        <a:documentation>A wrapper for a set of terms and the associated description in a variable list</a:documentation>
+        <ref name="db.varlistentry.attlist"/>
+        <oneOrMore>
+          <ref name="db.term"/>
+        </oneOrMore>
+        <ref name="db.listitem"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.term.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.term.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.term.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.term">
+      <element name="term">
+        <a:documentation>The word or phrase being defined or described in a variable list</a:documentation>
+        <ref name="db.term.attlist"/>
+        <zeroOrMore>
+          <ref name="db.all.inlines"/>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.example.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.example.label.attribute">
+      <ref name="db.label.attribute"/>
+    </define>
+    <define name="db.example.width.attribute">
+      <ref name="db.width.characters.attribute"/>
+    </define>
+    <define name="db.example.pgwide.attribute">
+      <ref name="db.pgwide.attribute"/>
+    </define>
+    <define name="db.example.floatstyle.attribute">
+      <ref name="db.floatstyle.attribute"/>
+    </define>
+    <define name="db.example.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.example.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <optional>
+          <ref name="db.example.label.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.example.floatstyle.attribute"/>
+        </optional>
+        <optional>
+          <choice>
+            <ref name="db.example.width.attribute"/>
+            <ref name="db.example.pgwide.attribute"/>
+          </choice>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.example.info">
+      <ref name="db._info.title.onlyreq"/>
+    </define>
+    <define name="db.example">
+      <element name="example">
+        <a:documentation>A formal example, with a title</a:documentation>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:example">
+            <s:assert test="not(.//db:example)">example must not occur in the descendants of example</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:example">
+            <s:assert test="not(.//db:figure)">figure must not occur in the descendants of example</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:example">
+            <s:assert test="not(.//db:table)">table must not occur in the descendants of example</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:example">
+            <s:assert test="not(.//db:equation)">equation must not occur in the descendants of example</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:example">
+            <s:assert test="not(.//db:caution)">caution must not occur in the descendants of example</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:example">
+            <s:assert test="not(.//db:important)">important must not occur in the descendants of example</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:example">
+            <s:assert test="not(.//db:note)">note must not occur in the descendants of example</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:example">
+            <s:assert test="not(.//db:tip)">tip must not occur in the descendants of example</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:example">
+            <s:assert test="not(.//db:warning)">warning must not occur in the descendants of example</s:assert>
+          </s:rule>
+        </s:pattern>
+        <ref name="db.example.attlist"/>
+        <ref name="db.example.info"/>
+        <oneOrMore>
+          <ref name="db.all.blocks"/>
+        </oneOrMore>
+        <optional>
+          <ref name="db.caption"/>
+        </optional>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.informalexample.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.informalexample.width.attribute">
+      <ref name="db.width.characters.attribute"/>
+    </define>
+    <define name="db.informalexample.floatstyle.attribute">
+      <ref name="db.floatstyle.attribute"/>
+    </define>
+    <define name="db.informalexample.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.informalexample.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <optional>
+          <ref name="db.informalexample.floatstyle.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.informalexample.width.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.informalexample.info">
+      <ref name="db._info.title.forbidden"/>
+    </define>
+    <define name="db.informalexample">
+      <element name="informalexample">
+        <a:documentation>A displayed example without a title</a:documentation>
+        <ref name="db.informalexample.attlist"/>
+        <ref name="db.informalexample.info"/>
+        <oneOrMore>
+          <ref name="db.all.blocks"/>
+        </oneOrMore>
+        <optional>
+          <ref name="db.caption"/>
+        </optional>
+      </element>
+    </define>
+  </div>
+  <define name="db.verbatim.inlines">
+    <choice>
+      <choice>
+        <ref name="db.all.inlines"/>
+        <ref name="db.lineannotation"/>
+      </choice>
+      <ref name="db.co"/>
+    </choice>
+  </define>
+  <define name="db.verbatim.contentmodel">
+    <ref name="db._info.title.forbidden"/>
+    <choice>
+      <ref name="db.textobject"/>
+      <zeroOrMore>
+        <ref name="db.verbatim.inlines"/>
+      </zeroOrMore>
+    </choice>
+  </define>
+  <div>
+    <define name="db.literallayout.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.literallayout.class.enumeration">
+      <choice>
+        <value>monospaced</value>
+        <a:documentation>The literal layout should be formatted with a monospaced font</a:documentation>
+        <value>normal</value>
+        <a:documentation>The literal layout should be formatted with the current font</a:documentation>
+      </choice>
+    </define>
+    <define name="db.literallayout.class.attribute">
+      <attribute name="class">
+        <a:documentation>Specifies the class of literal layout</a:documentation>
+        <ref name="db.literallayout.class.enumeration"/>
+      </attribute>
+    </define>
+    <define name="db.literallayout.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.literallayout.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <ref name="db.verbatim.attributes"/>
+        <optional>
+          <ref name="db.literallayout.class.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.literallayout">
+      <element name="literallayout">
+        <a:documentation>A block of text in which line breaks and white space are to be reproduced faithfully</a:documentation>
+        <ref name="db.literallayout.attlist"/>
+        <ref name="db.verbatim.contentmodel"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.screen.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.screen.width.attribute">
+      <ref name="db.width.characters.attribute"/>
+    </define>
+    <define name="db.screen.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.screen.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <ref name="db.verbatim.attributes"/>
+        <optional>
+          <ref name="db.screen.width.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.screen">
+      <element name="screen">
+        <a:documentation>Text that a user sees or might see on a computer screen</a:documentation>
+        <ref name="db.screen.attlist"/>
+        <ref name="db.verbatim.contentmodel"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.screenshot.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.screenshot.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.screenshot.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.screenshot.info">
+      <ref name="db._info"/>
+    </define>
+    <define name="db.screenshot">
+      <element name="screenshot">
+        <a:documentation>A representation of what the user sees or might see on a computer screen</a:documentation>
+        <ref name="db.screenshot.attlist"/>
+        <ref name="db.screenshot.info"/>
+        <ref name="db.mediaobject"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.figure.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.figure.label.attribute">
+      <ref name="db.label.attribute"/>
+    </define>
+    <define name="db.figure.pgwide.attribute">
+      <ref name="db.pgwide.attribute"/>
+    </define>
+    <define name="db.figure.floatstyle.attribute">
+      <ref name="db.floatstyle.attribute"/>
+    </define>
+    <define name="db.figure.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.figure.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <optional>
+          <ref name="db.figure.label.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.figure.pgwide.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.figure.floatstyle.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.figure.info">
+      <ref name="db._info.title.onlyreq"/>
+    </define>
+    <define name="db.figure">
+      <element name="figure">
+        <a:documentation>A formal figure, generally an illustration, with a title</a:documentation>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:figure">
+            <s:assert test="not(.//db:example)">example must not occur in the descendants of figure</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:figure">
+            <s:assert test="not(.//db:figure)">figure must not occur in the descendants of figure</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:figure">
+            <s:assert test="not(.//db:table)">table must not occur in the descendants of figure</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:figure">
+            <s:assert test="not(.//db:equation)">equation must not occur in the descendants of figure</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:figure">
+            <s:assert test="not(.//db:caution)">caution must not occur in the descendants of figure</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:figure">
+            <s:assert test="not(.//db:important)">important must not occur in the descendants of figure</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:figure">
+            <s:assert test="not(.//db:note)">note must not occur in the descendants of figure</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:figure">
+            <s:assert test="not(.//db:tip)">tip must not occur in the descendants of figure</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:figure">
+            <s:assert test="not(.//db:warning)">warning must not occur in the descendants of figure</s:assert>
+          </s:rule>
+        </s:pattern>
+        <ref name="db.figure.attlist"/>
+        <ref name="db.figure.info"/>
+        <oneOrMore>
+          <ref name="db.all.blocks"/>
+        </oneOrMore>
+        <optional>
+          <ref name="db.caption"/>
+        </optional>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.informalfigure.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.informalfigure.label.attribute">
+      <ref name="db.label.attribute"/>
+    </define>
+    <define name="db.informalfigure.pgwide.attribute">
+      <ref name="db.pgwide.attribute"/>
+    </define>
+    <define name="db.informalfigure.floatstyle.attribute">
+      <ref name="db.floatstyle.attribute"/>
+    </define>
+    <define name="db.informalfigure.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.informalfigure.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <optional>
+          <ref name="db.informalfigure.label.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.informalfigure.pgwide.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.informalfigure.floatstyle.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.informalfigure.info">
+      <ref name="db._info.title.forbidden"/>
+    </define>
+    <define name="db.informalfigure">
+      <element name="informalfigure">
+        <a:documentation>A untitled figure</a:documentation>
+        <ref name="db.informalfigure.attlist"/>
+        <ref name="db.informalfigure.info"/>
+        <oneOrMore>
+          <ref name="db.all.blocks"/>
+        </oneOrMore>
+        <optional>
+          <ref name="db.caption"/>
+        </optional>
+      </element>
+    </define>
+  </div>
+  <define name="db.mediaobject.content">
+    <choice>
+      <choice>
+        <ref name="db.videoobject"/>
+        <ref name="db.audioobject"/>
+        <ref name="db.imageobject"/>
+        <ref name="db.textobject"/>
+      </choice>
+      <ref name="db.imageobjectco"/>
+    </choice>
+  </define>
+  <div>
+    <define name="db.mediaobject.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.mediaobject.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.mediaobject.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.mediaobject.info">
+      <ref name="db._info.title.forbidden"/>
+    </define>
+    <define name="db.mediaobject">
+      <element name="mediaobject">
+        <a:documentation>A displayed media object (video, audio, image, etc.)</a:documentation>
+        <ref name="db.mediaobject.attlist"/>
+        <ref name="db.mediaobject.info"/>
+        <optional>
+          <ref name="db.alt"/>
+        </optional>
+        <oneOrMore>
+          <ref name="db.mediaobject.content"/>
+        </oneOrMore>
+        <optional>
+          <ref name="db.caption"/>
+        </optional>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.inlinemediaobject.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.inlinemediaobject.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.inlinemediaobject.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.inlinemediaobject.info">
+      <ref name="db._info.title.forbidden"/>
+    </define>
+    <define name="db.inlinemediaobject">
+      <element name="inlinemediaobject">
+        <a:documentation>An inline media object (video, audio, image, and so on)</a:documentation>
+        <ref name="db.inlinemediaobject.attlist"/>
+        <ref name="db.inlinemediaobject.info"/>
+        <optional>
+          <ref name="db.alt"/>
+        </optional>
+        <oneOrMore>
+          <ref name="db.mediaobject.content"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.videoobject.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.videoobject.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.videoobject.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.videoobject.info">
+      <ref name="db._info.title.forbidden"/>
+    </define>
+    <define name="db.videoobject">
+      <element name="videoobject">
+        <a:documentation>A wrapper for video data and its associated meta-information</a:documentation>
+        <ref name="db.videoobject.attlist"/>
+        <ref name="db.videoobject.info"/>
+        <ref name="db.videodata"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.audioobject.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.audioobject.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.audioobject.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.audioobject.info">
+      <ref name="db._info.title.forbidden"/>
+    </define>
+    <define name="db.audioobject">
+      <element name="audioobject">
+        <a:documentation>A wrapper for audio data and its associated meta-information</a:documentation>
+        <ref name="db.audioobject.attlist"/>
+        <ref name="db.audioobject.info"/>
+        <ref name="db.audiodata"/>
+      </element>
+    </define>
+  </div>
+  <define name="db.imageobject.content">
+    <choice>
+      <ref name="db.imagedata"/>
+      <ref name="db.imagedata.mathml"/>
+      <ref name="db.imagedata.svg"/>
+    </choice>
+  </define>
+  <div>
+    <define name="db.imageobject.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.imageobject.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.imageobject.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.imageobject.info">
+      <ref name="db._info.title.forbidden"/>
+    </define>
+    <define name="db.imageobject">
+      <element name="imageobject">
+        <a:documentation>A wrapper for image data and its associated meta-information</a:documentation>
+        <ref name="db.imageobject.attlist"/>
+        <ref name="db.imageobject.info"/>
+        <ref name="db.imageobject.content"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.textobject.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.textobject.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.textobject.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.textobject.info">
+      <ref name="db._info.title.forbidden"/>
+    </define>
+    <define name="db.textobject">
+      <element name="textobject">
+        <a:documentation>A wrapper for a text description of an object and its associated meta-information</a:documentation>
+        <ref name="db.textobject.attlist"/>
+        <ref name="db.textobject.info"/>
+        <choice>
+          <ref name="db.phrase"/>
+          <ref name="db.textdata"/>
+          <oneOrMore>
+            <ref name="db.all.blocks"/>
+          </oneOrMore>
+        </choice>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.videodata.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.videodata.align.enumeration">
+      <ref name="db.halign.enumeration"/>
+    </define>
+    <define name="db.videodata.align.attribute">
+      <attribute name="align">
+        <a:documentation>Specifies the (horizontal) alignment of the video data</a:documentation>
+        <ref name="db.videodata.align.enumeration"/>
+      </attribute>
+    </define>
+    <define name="db.videodata.valign.enumeration">
+      <ref name="db.valign.enumeration"/>
+    </define>
+    <define name="db.videodata.valign.attribute">
+      <attribute name="valign">
+        <a:documentation>Specifies the vertical alignment of the video data</a:documentation>
+        <ref name="db.videodata.valign.enumeration"/>
+      </attribute>
+    </define>
+    <define name="db.videodata.width.attribute">
+      <ref name="db.width.attribute"/>
+    </define>
+    <define name="db.videodata.depth.attribute">
+      <ref name="db.depth.attribute"/>
+    </define>
+    <define name="db.videodata.contentwidth.attribute">
+      <ref name="db.contentwidth.attribute"/>
+    </define>
+    <define name="db.videodata.contentdepth.attribute">
+      <ref name="db.contentdepth.attribute"/>
+    </define>
+    <define name="db.videodata.scalefit.enumeration">
+      <ref name="db.scalefit.enumeration"/>
+    </define>
+    <define name="db.videodata.scalefit.attribute">
+      <attribute name="scalefit">
+        <a:documentation>Determines if anamorphic scaling is forbidden</a:documentation>
+        <ref name="db.videodata.scalefit.enumeration"/>
+      </attribute>
+    </define>
+    <define name="db.videodata.scale.attribute">
+      <ref name="db.scale.attribute"/>
+    </define>
+    <define name="db.videodata.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.videodata.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.data.attributes"/>
+        <optional>
+          <ref name="db.videodata.align.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.videodata.valign.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.videodata.width.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.videodata.contentwidth.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.videodata.scalefit.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.videodata.scale.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.videodata.depth.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.videodata.contentdepth.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.videodata.info">
+      <ref name="db._info.title.forbidden"/>
+    </define>
+    <define name="db.videodata">
+      <element name="videodata">
+        <a:documentation>Pointer to external video data</a:documentation>
+        <ref name="db.videodata.attlist"/>
+        <ref name="db.videodata.info"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.audiodata.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.audiodata.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.audiodata.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.data.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.audiodata.info">
+      <ref name="db._info.title.forbidden"/>
+    </define>
+    <define name="db.audiodata">
+      <element name="audiodata">
+        <a:documentation>Pointer to external audio data</a:documentation>
+        <ref name="db.audiodata.attlist"/>
+        <ref name="db.audiodata.info"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.imagedata.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.imagedata.align.enumeration">
+      <ref name="db.halign.enumeration"/>
+    </define>
+    <define name="db.imagedata.align.attribute">
+      <attribute name="align">
+        <a:documentation>Specifies the (horizontal) alignment of the image data</a:documentation>
+        <ref name="db.imagedata.align.enumeration"/>
+      </attribute>
+    </define>
+    <define name="db.imagedata.valign.enumeration">
+      <ref name="db.valign.enumeration"/>
+    </define>
+    <define name="db.imagedata.valign.attribute">
+      <attribute name="valign">
+        <a:documentation>Specifies the vertical alignment of the image data</a:documentation>
+        <ref name="db.imagedata.valign.enumeration"/>
+      </attribute>
+    </define>
+    <define name="db.imagedata.width.attribute">
+      <ref name="db.width.attribute"/>
+    </define>
+    <define name="db.imagedata.depth.attribute">
+      <ref name="db.depth.attribute"/>
+    </define>
+    <define name="db.imagedata.contentwidth.attribute">
+      <ref name="db.contentwidth.attribute"/>
+    </define>
+    <define name="db.imagedata.contentdepth.attribute">
+      <ref name="db.contentdepth.attribute"/>
+    </define>
+    <define name="db.imagedata.scalefit.enumeration">
+      <ref name="db.scalefit.enumeration"/>
+    </define>
+    <define name="db.imagedata.scalefit.attribute">
+      <attribute name="scalefit">
+        <a:documentation>Determines if anamorphic scaling is forbidden</a:documentation>
+        <ref name="db.imagedata.scalefit.enumeration"/>
+      </attribute>
+    </define>
+    <define name="db.imagedata.scale.attribute">
+      <ref name="db.scale.attribute"/>
+    </define>
+    <define name="db.imagedata.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.imagedata.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.data.attributes"/>
+        <optional>
+          <ref name="db.imagedata.align.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.imagedata.valign.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.imagedata.width.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.imagedata.contentwidth.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.imagedata.scalefit.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.imagedata.scale.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.imagedata.depth.attribute"/>
+        </optional>
+        <optional>
+          <ref name="db.imagedata.contentdepth.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.imagedata.info">
+      <ref name="db._info.title.forbidden"/>
+    </define>
+    <define name="db.imagedata">
+      <element name="imagedata">
+        <a:documentation>Pointer to external image data</a:documentation>
+        <ref name="db.imagedata.attlist"/>
+        <ref name="db.imagedata.info"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.textdata.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.textdata.encoding.attribute">
+      <attribute name="encoding">
+        <a:documentation>Identifies the encoding of the text in the external file</a:documentation>
+      </attribute>
+    </define>
+    <define name="db.textdata.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.textdata.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.data.attributes"/>
+        <optional>
+          <ref name="db.textdata.encoding.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.textdata.info">
+      <ref name="db._info.title.forbidden"/>
+    </define>
+    <define name="db.textdata">
+      <element name="textdata">
+        <a:documentation>Pointer to external text data</a:documentation>
+        <ref name="db.textdata.attlist"/>
+        <ref name="db.textdata.info"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.caption.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.caption.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.caption.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.caption.info">
+      <ref name="db._info.title.forbidden"/>
+    </define>
+    <define name="db.caption">
+      <element name="caption">
+        <a:documentation>A caption</a:documentation>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:caption">
+            <s:assert test="not(.//db:example)">example must not occur in the descendants of caption</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:caption">
+            <s:assert test="not(.//db:figure)">figure must not occur in the descendants of caption</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:caption">
+            <s:assert test="not(.//db:table)">table must not occur in the descendants of caption</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:caption">
+            <s:assert test="not(.//db:equation)">equation must not occur in the descendants of caption</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:caption">
+            <s:assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of caption</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:caption">
+            <s:assert test="not(.//db:task)">task must not occur in the descendants of caption</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:caption">
+            <s:assert test="not(.//db:caution)">caution must not occur in the descendants of caption</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:caption">
+            <s:assert test="not(.//db:important)">important must not occur in the descendants of caption</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:caption">
+            <s:assert test="not(.//db:note)">note must not occur in the descendants of caption</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:caption">
+            <s:assert test="not(.//db:tip)">tip must not occur in the descendants of caption</s:assert>
+          </s:rule>
+        </s:pattern>
+        <s:pattern name="Element exclusion">
+          <s:rule context="db:caption">
+            <s:assert test="not(.//db:warning)">warning must not occur in the descendants of caption</s:assert>
+          </s:rule>
+        </s:pattern>
+        <ref name="db.caption.attlist"/>
+        <ref name="db.caption.info"/>
+        <oneOrMore>
+          <ref name="db.all.blocks"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.address.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.address.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.address.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <ref name="db.verbatim.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.address">
+      <element name="address">
+        <a:documentation>A real-world address, generally a postal address</a:documentation>
+        <ref name="db.address.attlist"/>
+        <zeroOrMore>
+          <choice>
+            <ref name="db._text"/>
+            <ref name="db.personname"/>
+            <ref name="db.pob"/>
+            <ref name="db.street"/>
+            <ref name="db.city"/>
+            <ref name="db.state"/>
+            <ref name="db.postcode"/>
+            <ref name="db.country"/>
+            <ref name="db.phone"/>
+            <ref name="db.fax"/>
+            <ref name="db.email"/>
+            <ref name="db.uri"/>
+            <ref name="db.otheraddr"/>
+          </choice>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.street.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.street.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.street.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.street">
+      <element name="street">
+        <a:documentation>A street address in an address</a:documentation>
+        <ref name="db.street.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.pob.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.pob.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.pob.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.pob">
+      <element name="pob">
+        <a:documentation>A post office box in an address</a:documentation>
+        <ref name="db.pob.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.postcode.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.postcode.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.postcode.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.postcode">
+      <element name="postcode">
+        <a:documentation>A postal code in an address</a:documentation>
+        <ref name="db.postcode.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.city.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.city.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.city.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.city">
+      <element name="city">
+        <a:documentation>The name of a city in an address</a:documentation>
+        <ref name="db.city.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.state.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.state.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.state.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.state">
+      <element name="state">
+        <a:documentation>A state or province in an address</a:documentation>
+        <ref name="db.state.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.country.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.country.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.country.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.country">
+      <element name="country">
+        <a:documentation>The name of a country</a:documentation>
+        <ref name="db.country.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.phone.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.phone.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.phone.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.phone">
+      <element name="phone">
+        <a:documentation>A telephone number</a:documentation>
+        <ref name="db.phone.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.fax.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.fax.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.fax.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.fax">
+      <element name="fax">
+        <a:documentation>A fax number</a:documentation>
+        <ref name="db.fax.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.otheraddr.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.otheraddr.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.otheraddr.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.otheraddr">
+      <element name="otheraddr">
+        <a:documentation>Uncategorized information in address</a:documentation>
+        <ref name="db.otheraddr.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.affiliation.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.affiliation.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.affiliation.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.affiliation">
+      <element name="affiliation">
+        <a:documentation>The institutional affiliation of an individual</a:documentation>
+        <ref name="db.affiliation.attlist"/>
+        <optional>
+          <ref name="db.shortaffil"/>
+        </optional>
+        <zeroOrMore>
+          <ref name="db.jobtitle"/>
+        </zeroOrMore>
+        <choice>
+          <optional>
+            <ref name="db.org"/>
+          </optional>
+          <group>
+            <optional>
+              <ref name="db.orgname"/>
+            </optional>
+            <zeroOrMore>
+              <ref name="db.orgdiv"/>
+            </zeroOrMore>
+            <zeroOrMore>
+              <ref name="db.address"/>
+            </zeroOrMore>
+          </group>
+        </choice>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.shortaffil.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.shortaffil.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.shortaffil.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.shortaffil">
+      <element name="shortaffil">
+        <a:documentation>A brief description of an affiliation</a:documentation>
+        <ref name="db.shortaffil.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.jobtitle.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.jobtitle.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.jobtitle.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.jobtitle">
+      <element name="jobtitle">
+        <a:documentation>The title of an individual in an organization</a:documentation>
+        <ref name="db.jobtitle.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.orgname.class.enumeration">
+      <choice>
+        <value>consortium</value>
+        <a:documentation>A consortium</a:documentation>
+        <value>corporation</value>
+        <a:documentation>A corporation</a:documentation>
+        <value>informal</value>
+        <a:documentation>An informal organization</a:documentation>
+        <value>nonprofit</value>
+        <a:documentation>A non-profit organization</a:documentation>
+      </choice>
+    </define>
+    <define name="db.orgname.class-enum.attribute">
+      <attribute name="class">
+        <a:documentation>Specifies the nature of the organization</a:documentation>
+        <ref name="db.orgname.class.enumeration"/>
+      </attribute>
+    </define>
+    <define name="db.orgname.class-other.attributes">
+      <attribute name="class">
+        <a:documentation>Specifies the nature of the organization</a:documentation>
+        <value>other</value>
+        <a:documentation>Indicates a non-standard organization class</a:documentation>
+      </attribute>
+      <attribute name="otherclass">
+        <a:documentation>Identifies the non-standard nature of the organization</a:documentation>
+      </attribute>
+    </define>
+    <define name="db.orgname.class.attribute">
+      <choice>
+        <ref name="db.orgname.class-enum.attribute"/>
+        <ref name="db.orgname.class-other.attributes"/>
+      </choice>
+    </define>
+    <define name="db.orgname.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.orgname.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.orgname.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <optional>
+          <ref name="db.orgname.class.attribute"/>
+        </optional>
+      </interleave>
+    </define>
+    <define name="db.orgname">
+      <element name="orgname">
+        <a:documentation>The name of an organization</a:documentation>
+        <ref name="db.orgname.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.orgdiv.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.orgdiv.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.orgdiv.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.orgdiv">
+      <element name="orgdiv">
+        <a:documentation>A division of an organization</a:documentation>
+        <ref name="db.orgdiv.attlist"/>
+        <zeroOrMore>
+          <ref name="db.all.inlines"/>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.artpagenums.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.artpagenums.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.artpagenums.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.artpagenums">
+      <element name="artpagenums">
+        <a:documentation>The page numbers of an article as published</a:documentation>
+        <ref name="db.artpagenums.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.personname.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.personname.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.personname.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.personname">
+      <element name="personname">
+        <a:documentation>The personal name of an individual</a:documentation>
+        <ref name="db.personname.attlist"/>
+        <choice>
+          <ref name="db._text"/>
+          <oneOrMore>
+            <choice>
+              <ref name="db.honorific"/>
+              <ref name="db.firstname"/>
+              <ref name="db.surname"/>
+              <ref name="db.lineage"/>
+              <ref name="db.othername"/>
+            </choice>
+          </oneOrMore>
+        </choice>
+      </element>
+    </define>
+  </div>
+  <define name="db.person.author.contentmodel">
+    <ref name="db.personname"/>
+    <zeroOrMore>
+      <choice>
+        <ref name="db.personblurb"/>
+        <ref name="db.affiliation"/>
+        <ref name="db.email"/>
+        <ref name="db.uri"/>
+        <ref name="db.address"/>
+        <ref name="db.contrib"/>
+      </choice>
+    </zeroOrMore>
+  </define>
+  <define name="db.org.author.contentmodel">
+    <ref name="db.orgname"/>
+    <zeroOrMore>
+      <choice>
+        <ref name="db.orgdiv"/>
+        <ref name="db.affiliation"/>
+        <ref name="db.email"/>
+        <ref name="db.uri"/>
+        <ref name="db.address"/>
+        <ref name="db.contrib"/>
+      </choice>
+    </zeroOrMore>
+  </define>
+  <define name="db.credit.contentmodel">
+    <choice>
+      <ref name="db.person.author.contentmodel"/>
+      <ref name="db.org.author.contentmodel"/>
+    </choice>
+  </define>
+  <div>
+    <define name="db.author.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.author.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.author.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.author">
+      <element name="author">
+        <a:documentation>The name of an individual author</a:documentation>
+        <ref name="db.author.attlist"/>
+        <ref name="db.credit.contentmodel"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.authorgroup.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.authorgroup.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.authorgroup.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.authorgroup">
+      <element name="authorgroup">
+        <a:documentation>Wrapper for author information when a document has multiple authors or collabarators</a:documentation>
+        <ref name="db.authorgroup.attlist"/>
+        <oneOrMore>
+          <choice>
+            <ref name="db.author"/>
+            <ref name="db.editor"/>
+            <ref name="db.othercredit"/>
+          </choice>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.collab.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.collab.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.collab.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.collab">
+      <element name="collab">
+        <a:documentation>Identifies a collaborator</a:documentation>
+        <ref name="db.collab.attlist"/>
+        <oneOrMore>
+          <choice>
+            <ref name="db.person"/>
+            <ref name="db.personname"/>
+            <ref name="db.org"/>
+            <ref name="db.orgname"/>
+          </choice>
+        </oneOrMore>
+        <zeroOrMore>
+          <ref name="db.affiliation"/>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.authorinitials.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.authorinitials.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.authorinitials.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.authorinitials">
+      <element name="authorinitials">
+        <a:documentation>The initials or other short identifier for an author</a:documentation>
+        <ref name="db.authorinitials.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.person.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.person.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.person.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.person">
+      <element name="person">
+        <a:documentation>A person and associated metadata</a:documentation>
+        <ref name="db.person.attlist"/>
+        <ref name="db.personname"/>
+        <zeroOrMore>
+          <choice>
+            <ref name="db.address"/>
+            <ref name="db.affiliation"/>
+            <ref name="db.email"/>
+            <ref name="db.uri"/>
+            <ref name="db.personblurb"/>
+          </choice>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.org.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.org.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.org.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.org">
+      <element name="org">
+        <a:documentation>An organization and associated metadata</a:documentation>
+        <ref name="db.org.attlist"/>
+        <ref name="db.orgname"/>
+        <zeroOrMore>
+          <choice>
+            <ref name="db.address"/>
+            <ref name="db.affiliation"/>
+            <ref name="db.email"/>
+            <ref name="db.uri"/>
+            <ref name="db.orgdiv"/>
+          </choice>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.confgroup.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.confgroup.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.confgroup.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.confgroup">
+      <element name="confgroup">
+        <a:documentation>A wrapper for document meta-information about a conference</a:documentation>
+        <ref name="db.confgroup.attlist"/>
+        <zeroOrMore>
+          <choice>
+            <ref name="db.confdates"/>
+            <ref name="db.conftitle"/>
+            <ref name="db.confnum"/>
+            <ref name="db.confsponsor"/>
+            <ref name="db.address"/>
+          </choice>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.confdates.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.confdates.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.confdates.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.confdates">
+      <element name="confdates">
+        <a:documentation>The dates of a conference for which a document was written</a:documentation>
+        <ref name="db.confdates.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.conftitle.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.conftitle.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.conftitle.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.conftitle">
+      <element name="conftitle">
+        <a:documentation>The title of a conference for which a document was written</a:documentation>
+        <ref name="db.conftitle.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.confnum.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.confnum.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.confnum.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.confnum">
+      <element name="confnum">
+        <a:documentation>An identifier, frequently numerical, associated with a conference for which a document was written</a:documentation>
+        <ref name="db.confnum.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.confsponsor.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.confsponsor.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.confsponsor.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.confsponsor">
+      <element name="confsponsor">
+        <a:documentation>The sponsor of a conference for which a document was written</a:documentation>
+        <ref name="db.confsponsor.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.contractnum.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.contractnum.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.contractnum.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.contractnum">
+      <element name="contractnum">
+        <a:documentation>The contract number of a document</a:documentation>
+        <ref name="db.contractnum.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.contractsponsor.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.contractsponsor.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.contractsponsor.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.contractsponsor">
+      <element name="contractsponsor">
+        <a:documentation>The sponsor of a contract</a:documentation>
+        <ref name="db.contractsponsor.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.copyright.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.copyright.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.copyright.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.copyright">
+      <element name="copyright">
+        <a:documentation>Copyright information about a document</a:documentation>
+        <ref name="db.copyright.attlist"/>
+        <oneOrMore>
+          <ref name="db.year"/>
+        </oneOrMore>
+        <zeroOrMore>
+          <ref name="db.holder"/>
+        </zeroOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.year.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.year.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.year.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.year">
+      <element name="year">
+        <a:documentation>The year of publication of a document</a:documentation>
+        <ref name="db.year.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.holder.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.holder.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.holder.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.holder">
+      <element name="holder">
+        <a:documentation>The name of the individual or organization that holds a copyright</a:documentation>
+        <ref name="db.holder.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <define name="db.cover.contentmodel">
+    <choice>
+      <choice>
+        <ref name="db.para.blocks"/>
+        <ref name="db.extension.blocks"/>
+        <ref name="db.list.blocks"/>
+        <ref name="db.informal.blocks"/>
+        <ref name="db.publishing.blocks"/>
+        <ref name="db.graphic.blocks"/>
+        <ref name="db.technical.blocks"/>
+        <ref name="db.verbatim.blocks"/>
+        <ref name="db.bridgehead"/>
+        <ref name="db.remark"/>
+        <ref name="db.revhistory"/>
+      </choice>
+      <ref name="db.synopsis.blocks"/>
+    </choice>
+  </define>
+  <div>
+    <define name="db.cover.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.cover.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.cover.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.cover">
+      <element name="cover">
+        <a:documentation>Additional content for the cover of a publication</a:documentation>
+        <ref name="db.cover.attlist"/>
+        <oneOrMore>
+          <ref name="db.cover.contentmodel"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <define name="db.date.contentmodel">
+    <choice>
+      <data type="date"/>
+      <data type="dateTime"/>
+      <data type="gYearMonth"/>
+      <data type="gYear"/>
+      <text/>
+    </choice>
+  </define>
+  <div>
+    <define name="db.date.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.date.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.date.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.date">
+      <element name="date">
+        <a:documentation>The date of publication or revision of a document</a:documentation>
+        <ref name="db.date.attlist"/>
+        <ref name="db.date.contentmodel"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.edition.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.edition.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.edition.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.edition">
+      <element name="edition">
+        <a:documentation>The name or number of an edition of a document</a:documentation>
+        <ref name="db.edition.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.editor.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.editor.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.editor.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.editor">
+      <element name="editor">
+        <a:documentation>The name of the editor of a document</a:documentation>
+        <ref name="db.editor.attlist"/>
+        <ref name="db.credit.contentmodel"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.biblioid.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.biblioid.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.biblioid.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <ref name="db.biblio.class.attribute"/>
+      </interleave>
+    </define>
+    <define name="db.biblioid">
+      <element name="biblioid">
+        <a:documentation>An identifier for a document</a:documentation>
+        <ref name="db.biblioid.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.citebiblioid.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.citebiblioid.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.citebiblioid.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <ref name="db.biblio.class.attribute"/>
+      </interleave>
+    </define>
+    <define name="db.citebiblioid">
+      <element name="citebiblioid">
+        <a:documentation>A citation of a bibliographic identifier</a:documentation>
+        <ref name="db.citebiblioid.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.bibliosource.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.bibliosource.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.bibliosource.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <ref name="db.biblio.class.attribute"/>
+      </interleave>
+    </define>
+    <define name="db.bibliosource">
+      <element name="bibliosource">
+        <a:documentation>The source of a document</a:documentation>
+        <ref name="db.bibliosource.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.bibliorelation.type.enumeration">
+      <choice>
+        <value>hasformat</value>
+        <a:documentation>The described resource pre-existed the referenced resource, which is essentially the same intellectual content presented in another format</a:documentation>
+        <value>haspart</value>
+        <a:documentation>The described resource includes the referenced resource either physically or logically</a:documentation>
+        <value>hasversion</value>
+        <a:documentation>The described resource has a version, edition, or adaptation, namely, the referenced resource</a:documentation>
+        <value>isformatof</value>
+        <a:documentation>The described resource is the same intellectual content of the referenced resource, but presented in another format</a:documentation>
+        <value>ispartof</value>
+        <a:documentation>The described resource is a physical or logical part of the referenced resource</a:documentation>
+        <value>isreferencedby</value>
+        <a:documentation>The described resource is referenced, cited, or otherwise pointed to by the referenced resource</a:documentation>
+        <value>isreplacedby</value>
+        <a:documentation>The described resource is supplanted, displaced, or superceded by the referenced resource</a:documentation>
+        <value>isrequiredby</value>
+        <a:documentation>The described resource is required by the referenced resource, either physically or logically</a:documentation>
+        <value>isversionof</value>
+        <a:documentation>The described resource is a version, edition, or adaptation of the referenced resource; changes in version imply substantive changes in content rather than differences in format</a:documentation>
+        <value>references</value>
+        <a:documentation>The described resource references, cites, or otherwise points to the referenced resource</a:documentation>
+        <value>replaces</value>
+        <a:documentation>The described resource supplants, displaces, or supersedes the referenced resource</a:documentation>
+        <value>requires</value>
+        <a:documentation>The described resource requires the referenced resource to support its function, delivery, or coherence of content</a:documentation>
+      </choice>
+    </define>
+    <define name="db.bibliorelation.type-enum.attribute">
+      <optional>
+        <attribute name="type">
+          <a:documentation>Identifies the type of relationship</a:documentation>
+          <ref name="db.bibliorelation.type.enumeration"/>
+        </attribute>
+      </optional>
+    </define>
+    <define name="db.bibliorelation.type-other.attributes">
+      <optional>
+        <attribute name="type">
+          <a:documentation>Identifies the type of relationship</a:documentation>
+          <value>othertype</value>
+          <a:documentation>The described resource has a non-standard relationship with the referenced resource</a:documentation>
+        </attribute>
+      </optional>
+      <attribute name="othertype">
+        <a:documentation>A keyword that identififes the type of the non-standard relationship</a:documentation>
+        <data type="NMTOKEN"/>
+      </attribute>
+    </define>
+    <define name="db.bibliorelation.type.attribute">
+      <choice>
+        <ref name="db.bibliorelation.type-enum.attribute"/>
+        <ref name="db.bibliorelation.type-other.attributes"/>
+      </choice>
+    </define>
+    <define name="db.bibliorelation.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.bibliorelation.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.bibliorelation.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <ref name="db.biblio.class.attribute"/>
+        <ref name="db.bibliorelation.type.attribute"/>
+      </interleave>
+    </define>
+    <define name="db.bibliorelation">
+      <element name="bibliorelation">
+        <a:documentation>The relationship of a document to another</a:documentation>
+        <ref name="db.bibliorelation.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.bibliocoverage.spacial.enumeration">
+      <choice>
+        <value>dcmipoint</value>
+        <a:documentation>The DCMI Point identifies a point in space using its geographic coordinates</a:documentation>
+        <value>iso3166</value>
+        <a:documentation>ISO 3166 Codes for the representation of names of countries</a:documentation>
+        <value>dcmibox</value>
+        <a:documentation>The DCMI Box identifies a region of space using its geographic limits</a:documentation>
+        <value>tgn</value>
+        <a:documentation>The Getty Thesaurus of Geographic Names</a:documentation>
+      </choice>
+    </define>
+    <define name="db.bibliocoverage.spatial-enum.attribute">
+      <optional>
+        <attribute name="spatial">
+          <a:documentation>Specifies the type of spatial coverage</a:documentation>
+          <ref name="db.bibliocoverage.spacial.enumeration"/>
+        </attribute>
+      </optional>
+    </define>
+    <define name="db.bibliocoverage.spatial-other.attributes">
+      <optional>
+        <attribute name="spatial">
+          <a:documentation>Specifies the type of spatial coverage</a:documentation>
+          <value>otherspatial</value>
+          <a:documentation>Identifies a non-standard type of coverage</a:documentation>
+        </attribute>
+      </optional>
+      <attribute name="otherspatial">
+        <a:documentation>A keyword that identifies the type of non-standard coverage</a:documentation>
+        <data type="NMTOKEN"/>
+      </attribute>
+    </define>
+    <define name="db.bibliocoverage.spatial.attribute">
+      <choice>
+        <ref name="db.bibliocoverage.spatial-enum.attribute"/>
+        <ref name="db.bibliocoverage.spatial-other.attributes"/>
+      </choice>
+    </define>
+    <define name="db.bibliocoverage.temporal.enumeration">
+      <choice>
+        <value>dcmiperiod</value>
+        <a:documentation>A specification of the limits of a time interval</a:documentation>
+        <value>w3c-dtf</value>
+        <a:documentation>W3C Encoding rules for dates and times—a profile based on ISO 8601</a:documentation>
+      </choice>
+    </define>
+    <define name="db.bibliocoverage.temporal-enum.attribute">
+      <optional>
+        <attribute name="temporal">
+          <a:documentation>Specifies the type of temporal coverage</a:documentation>
+          <ref name="db.bibliocoverage.temporal.enumeration"/>
+        </attribute>
+      </optional>
+    </define>
+    <define name="db.bibliocoverage.temporal-other.attributes">
+      <optional>
+        <attribute name="temporal">
+          <a:documentation>Specifies the type of temporal coverage</a:documentation>
+          <value>othertemporal</value>
+          <a:documentation>Specifies a non-standard type of coverage</a:documentation>
+        </attribute>
+      </optional>
+      <attribute name="othertemporal">
+        <a:documentation>A keyword that identifies the type of non-standard coverage</a:documentation>
+        <data type="NMTOKEN"/>
+      </attribute>
+    </define>
+    <define name="db.bibliocoverage.temporal.attribute">
+      <choice>
+        <ref name="db.bibliocoverage.temporal-enum.attribute"/>
+        <ref name="db.bibliocoverage.temporal-other.attributes"/>
+      </choice>
+    </define>
+    <define name="db.bibliocoverage.coverage.attrib">
+      <interleave>
+        <ref name="db.bibliocoverage.spatial.attribute"/>
+        <ref name="db.bibliocoverage.temporal.attribute"/>
+      </interleave>
+    </define>
+    <define name="db.bibliocoverage.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.bibliocoverage.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.bibliocoverage.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <ref name="db.bibliocoverage.coverage.attrib"/>
+      </interleave>
+    </define>
+    <define name="db.bibliocoverage">
+      <element name="bibliocoverage">
+        <a:documentation>The spatial or temporal coverage of a document</a:documentation>
+        <ref name="db.bibliocoverage.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.legalnotice.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.legalnotice.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.legalnotice.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.legalnotice.info">
+      <ref name="db._info.title.only"/>
+    </define>
+    <define name="db.legalnotice">
+      <element name="legalnotice">
+        <a:documentation>A statement of legal obligations or requirements</a:documentation>
+        <ref name="db.legalnotice.attlist"/>
+        <ref name="db.legalnotice.info"/>
+        <oneOrMore>
+          <ref name="db.all.blocks"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.othercredit.class.enumeration">
+      <choice>
+        <value>copyeditor</value>
+        <a:documentation>A copy editor</a:documentation>
+        <value>graphicdesigner</value>
+        <a:documentation>A graphic designer</a:documentation>
+        <value>other</value>
+        <a:documentation>Some other contributor</a:documentation>
+        <value>productioneditor</value>
+        <a:documentation>A production editor</a:documentation>
+        <value>technicaleditor</value>
+        <a:documentation>A technical editor</a:documentation>
+        <value>translator</value>
+        <a:documentation>A translator</a:documentation>
+      </choice>
+    </define>
+    <define name="db.othercredit.class-enum.attribute">
+      <optional>
+        <attribute name="class">
+          <a:documentation>Identifies the nature of the contributor</a:documentation>
+          <ref name="db.othercredit.class.enumeration"/>
+        </attribute>
+      </optional>
+    </define>
+    <define name="db.othercredit.class-other.attribute">
+      <attribute name="otherclass">
+        <a:documentation>Identifies the nature of the non-standard contribution</a:documentation>
+        <data type="NMTOKEN"/>
+      </attribute>
+    </define>
+    <define name="db.othercredit.class-other.attributes">
+      <interleave>
+        <attribute name="class">
+          <a:documentation>Identifies the nature of the contributor</a:documentation>
+          <value>other</value>
+          <a:documentation>Identifies a non-standard contribution</a:documentation>
+        </attribute>
+        <ref name="db.othercredit.class-other.attribute"/>
+      </interleave>
+    </define>
+    <define name="db.othercredit.class.attribute">
+      <choice>
+        <ref name="db.othercredit.class-enum.attribute"/>
+        <ref name="db.othercredit.class-other.attributes"/>
+      </choice>
+    </define>
+    <define name="db.othercredit.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.othercredit.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.othercredit.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+        <ref name="db.othercredit.class.attribute"/>
+      </interleave>
+    </define>
+    <define name="db.othercredit">
+      <element name="othercredit">
+        <a:documentation>A person or entity, other than an author or editor, credited in a document</a:documentation>
+        <ref name="db.othercredit.attlist"/>
+        <ref name="db.credit.contentmodel"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.pagenums.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.pagenums.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.pagenums.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.pagenums">
+      <element name="pagenums">
+        <a:documentation>The numbers of the pages in a book, for use in a bibliographic entry</a:documentation>
+        <ref name="db.pagenums.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.contrib.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.contrib.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.contrib.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.contrib">
+      <element name="contrib">
+        <a:documentation>A summary of the contributions made to a document by a credited source</a:documentation>
+        <ref name="db.contrib.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.honorific.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.honorific.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.honorific.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.honorific">
+      <element name="honorific">
+        <a:documentation>The title of a person</a:documentation>
+        <ref name="db.honorific.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.firstname.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.firstname.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.firstname.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.firstname">
+      <element name="firstname">
+        <a:documentation>The first name of a person</a:documentation>
+        <ref name="db.firstname.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.surname.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.surname.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.surname.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.surname">
+      <element name="surname">
+        <a:documentation>A family name; in western cultures the last name</a:documentation>
+        <ref name="db.surname.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.lineage.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.lineage.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.lineage.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.lineage">
+      <element name="lineage">
+        <a:documentation>The portion of a person's name indicating a relationship to ancestors</a:documentation>
+        <ref name="db.lineage.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.othername.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.othername.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.othername.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.othername">
+      <element name="othername">
+        <a:documentation>A component of a persons name that is not a first name, surname, or lineage</a:documentation>
+        <ref name="db.othername.attlist"/>
+        <ref name="db._text"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.printhistory.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.printhistory.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.printhistory.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.printhistory">
+      <element name="printhistory">
+        <a:documentation>The printing history of a document</a:documentation>
+        <ref name="db.printhistory.attlist"/>
+        <oneOrMore>
+          <ref name="db.para.blocks"/>
+        </oneOrMore>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.pubdate.role.attribute">
+      <attribute name="role"/>
+    </define>
+    <define name="db.pubdate.attlist">
+      <interleave>
+        <optional>
+          <ref name="db.pubdate.role.attribute"/>
+        </optional>
+        <ref name="db.common.attributes"/>
+        <ref name="db.common.linking.attributes"/>
+      </interleave>
+    </define>
+    <define name="db.pubdate">
+      <element name="pubdate">
+        <a:documentation>The date of publication of a document</a:documentation>
+        <ref name="db.pubdate.attlist"/>
+        <ref name="db.date.contentmodel"/>
+      </element>
+    </define>
+  </div>
+  <div>
+    <define name="db.publisher.role.attribute">
+    &n