<!ENTITY % meshReportObject "( category | summary | datum | data | date | name | value | real | integer | string | true | false )" >
<!ENTITY % meshReportObject "( category | summary | datum | data | date | name | value | real | integer | string | true | false )" >


<!-- <!ELEMENT mesh_report %meshReportObject> -->
<!ELEMENT mesh_report (header, mesh_summary*, mesh_quality*, mesh_diagnostics*)>
<!ATTLIST mesh_report version CDATA "1.0" >

<!-- Collections -->
<!ELEMENT header (mesher, description, date, user)>
<!ELEMENT mesh_summary (data*)>
<!ELEMENT mesh_quality (metric*)>
<!ELEMENT metric (metric*)>

<!ELEMENT mesh_diagnostics (diagnostic*)>
<!ELEMENT diagnostic (number, key)>

<!ELEMENT data (datum*)>
<!ELEMENT datum (name, value)>






<!--- Primitive types -->
<!ELEMENT filename (#PCDATA)>
<!ELEMENT history (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT value (#PCDATA)>

<!ELEMENT string (#PCDATA)>
<!ELEMENT data (#PCDATA)> <!-- Contents interpreted as Base-64 encoded -->
<!ELEMENT date (#PCDATA)> <!-- Contents should conform to a subset of ISO 8601 (in particular, YYYY '-' MM '-' DD 'T' HH ':' MM ':' SS 'Z'.  Smaller units may be omitted with a loss of precision) -->

<!-- Numerical primitives -->
<!ELEMENT true EMPTY>  <!-- Boolean constant true -->
<!ELEMENT false EMPTY> <!-- Boolean constant false -->
<!ELEMENT real (#PCDATA)> <!-- Contents should represent a floating point number matching ("+" | "-")? d+ ("."d*)? ("E" ("+" | "-") d+)? where d is a digit 0-9.  -->
<!ELEMENT integer (#PCDATA)> <!-- Contents should represent a (possibly signed) integer number in base 10 -->
