Hi,
Since my last upgrade to BaseX 8.0 beta 9cb3a37 (also just tried BaseX
8.0.1 beta 161c4fd), I noticed that the dtd validation errors are cut when
to long, so I'm getting messages like this one, that don't help my users
much:
File 'html-review/dh4/device-help/3338/50/global/en-us/T1401261601.html'
doesn't validate against BaseX-DTDs/xhtml/xhtml1-transitional.dtd. Error
[bxerr:BXVA0001]: Validation failed. "Error:archie, 5:28: Attribute "...
Plus, in previous versions, I was removing some errors that we don't care
about, which I can't do anymore.
Is there a new option to get the full messages like I used to with
$err:description?
Here is my code snippet (sorry for the ugly color coding in there... never
had time to upgrade them to @class):
*let* *$errors* := <ul>{
*for **$file* *in **$files*
*return try*{
*let **$validate* := *validate:dtd*(*$file*,
*$dtd-file-path*)
*return *<li *style*=*"color:green"*>Ye!</li>
}
*catch* *** {
*let **$error-description* := *$err:description*
*return if* (*contains* (*normalize-space*(
*$error-description*),
*normalize-space*('Attribute ""xmlns""
must be declared for element type'))
or *contains* (*normalize-space*(
*$error-description*),
*normalize-space*('Attribute
""xmlns:xsi"" must be declared for element type')))
(: The 'xmlns' error is introduced by BaseX,
and does not get exported to static content, so we ignore it :)
*then *()
*else if* (*contains* (*normalize-space*(
*$error-description*),
*normalize-space*('Attribute
""content"" is required and must be specified for element type ""meta""')))
*then *() (: No longer true in HTML5 :)
*else *<li *style*=*"color:red;"*>
<p>File '{*$file*/*base-uri*()}'
doesn't validate against {*$dtd-file-path*}.</p>
<p>{'Error [' || *$err:code* || ']: ' ||
*$err:description*}</p>
</li>
}
}</*ul*>
(:let $debug := file:write('debug-in-fix-validation.xml', $errors):)
*return* <ul>{*$errors*//*li*[*contains*(*@style*, 'color:red;')]}</ul>
--
France Baril
Architecte documentaire / Documentation architect
france.baril(a)architextus.com