EDIT by MDH 2011-12-22: I believe both of these issues are now fixed. I wrote a template to split lists and it's now in use, and I think LSPW has fixed the erroneous @target
attributes. Setting this task to Completed.
Several XHTML validation issues have arisen recently. They fall into the following categories:
- Unexpected elements inside lists.
le_bon_mariage.xml
has many instances of page breaks, and forme works which occur inside lists. The XSLT doesn't expect this, and outputs XHTML elements inside<ul>
and<ol>
which are of course invalid (only<li>
is allowed). - Duplicate ids in reference links. Reference links inside the text are provided with unique ids so that you can navigate to them, and these ids are constructed from the target id of the reference itself, followed by an underscore and a number; numbers are provided in sequence by counting preceding references. This is going wrong somehow, resulting in more than one reference link with the same id attribute in the XHTML.
The first requires a policy decision (do we allow other elements than item inside of list?), followed by fixes to the XML and/or the XSLT to deal with the consequences of the policy. The second seems to be caused by typos in the @target attributes of ref elements in the references file; I've identified a set of these and asked LSPW to fix them. The same kind of typos also show up in anthology documents, so I've identified a stack of them using XQuery and sent them to LSPW too.
NOTE: With regard to the first issue, I wrote to the TEI list, and had a number of useful responses; I think the most appropriate was to keep the current markup (which is, after all, "correct"), but use a two-stage transformation to get the document to XHTML. In the first stage, any lists bisected by page breaks, forme works etc. would be split into two lists, allowing the second transform to proceed appropriately. This is a really good idea, and could also be used to handle bisected lg
s, which are currently output as <ul>
/<li>
sets if they're not bisected, or <div>
/<span>
sets if they are.