| <!ELEMENT BENCH (AVAILSOLVER+,LINEARSYSTEM+)> | 
 |   <!ELEMENT AVAILSOLVER (SOLVER+)> | 
 |     <!ELEMENT SOLVER (TYPE,PACKAGE)> | 
 |       <!ELEMENT TYPE (#PCDATA)>  <!-- One of LU, LLT, LDLT, ITER --> | 
 |       <!ELEMENT PACKAGE (#PCDATA)>  <!-- Derived from a library --> | 
 |   <!ELEMENT LINEARSYSTEM (MATRIX,SOLVER_STAT+,BEST_SOLVER,GLOBAL_PARAMS*)> | 
 |     <!ELEMENT MATRIX (NAME,SIZE,ENTRIES,PATTERN?,SYMMETRY,POSDEF?,ARITHMETIC,RHS*)> | 
 |       <!ELEMENT NAME (#PCDATA)> | 
 |       <!ELEMENT SIZE (#PCDATA)> | 
 |       <!ELEMENT ENTRIES (#PCDATA)> <!-- The number of nonzeros elements --> | 
 |       <!ELEMENT PATTERN (#PCDATA)>  <!-- Is structural pattern symmetric or not --> | 
 |       <!ELEMENT SYMMETRY (#PCDATA)> <!-- symmmetry with numerical values --> | 
 |       <!ELEMENT POSDEF (#PCDATA)> <!-- Is the matrix positive definite or not --> | 
 |       <!ELEMENT ARITHMETIC (#PCDATA)>  | 
 |       <!ELEMENT RHS (SOURCE)>  <!-- A matrix can have one or more right hand side associated. --> | 
 |         <!ELEMENT SOURCE (#PCDATA)> <!-- Source of the right hand side, either generated or provided --> | 
 |     <!ELEMENT SOLVER_STAT (PARAMS*,TIME,ERROR,ITER?)> | 
 |       <!ELEMENT PARAMS (#PCDATA)> | 
 |       <!ELEMENT TIME (COMPUTE,SOLVE,TOTAL)> | 
 |         <!ELEMENT COMPUTE (#PCDATA)> <!-- Time to analyze,to factorize, or to setup the preconditioner--> | 
 |         <!ELEMENT SOLVE (#PCDATA)> <!-- Time to solve with all the available rhs --> | 
 |         <!ELEMENT TOTAL (#PCDATA)> | 
 |       <!ELEMENT ERROR (#PCDATA)> <!-- Either the relative error or the relative residual norm --> | 
 |       <!ELEMENT ITER (#PCDATA)> <!-- Number of iterations --> | 
 |     <!ELEMENT BEST_SOLVER CDATA> <!-- Id of the best solver --> | 
 |     <!ELEMENT GLOBAL_PARAMS (#PCDATA)> <!-- Parameters shared by all solvers --> | 
 |  | 
 | <!ATTLIST SOLVER ID CDATA #REQUIRED> | 
 | <!ATTLIST SOLVER_STAT ID CDATA #REQUIRED> | 
 | <!ATTLIST BEST_SOLVER ID CDATA #REQUIRED> | 
 | <!ATTLIST RHS ID CDATA #IMPLIED> |