Allow any element to override its collation value
<indexterm>1927<index-sort-as>Nineteen Twenty-Seven</index-sort-as></indexterm>It is also crucial for languages such as Japanese where there is not a one-to-one relationship between orthography and pronunciation.
<codeph>int fopen(const char *f);<collate-as>fopen</collate-as></codeph>
<lq><lines>The wasp, he is a nasty one, He scavenges and thrives. Unlike the honest honey-bee, He doesn't care for hives. - Pam Ayres<collate-as>Wasp, he is a nasty one, The</collate-as></lines></lq>
Pongo is a character in <cite>101 Dalmatians<collate-as>One Hundred and One Dalmatians</collate-as></cite>.
The intent of this proposed feature is to give authors the ability to decouple the collation order of an element from its textual appearance. This is useful in cases where content is auto-generated, such as lists of terms/tables/figures and indexes.
Any case where processing auto-generates or re-orders items based on those items' string values. Here are two examples.
<glossentry> <title>100 Years' War<collate-as>Hundred Years War</collate-as></title> <glossdef>A conflict between England and France in the Middle Ages.</glossdef> </glossentry>
<ul-sorted> <li>Pink Floyd</li> <li>U2</li> <li conref="sometopic.xml#topicid/someartist"/> <li>Alan Parsons<collate-as>Parsons, Alan</collate-as></li> <li>The Alan Parsons Project<collate-as>Parsons, Alan</collate-as></li> <li conref="someothertopic.xml#topicid/someotherartist"/> <!-- Hundreds more here. --> </ul-sorted>
Trivial. Can be done as a specialization of data, which is in almost every elements' content model. May benefit from a DITA 1.2 proposal which limits specializations to certain elements.
If implemented as a specialization, new DTD/Schema files and alterations to the topic shells. Toolkit implementations need to ignore the collate-as element (which they do for data anyway) except where they are looking for the collation value of an element.
In the architectural specification, a new subsection of "DITA processing" needs to be created to explain the meaining of collate-as. It should give examples similar to the ones in this proposal. Default handling of the element (to ignore it) and cases where it should be consulted (list generation) should be discussed. The specification should state that collate-as does not affect the language used in the collation process (that remains with xml:lang), only the value used in the collation process. The specification should emphasize that this element is never required, and that it may be meaningless for some outputs. The specification should remind readers that in the context of translation, it may be necessary to create or destroy collate-as elements, depending on the source and target language.
The language specification should describe the collate-as element and give its content model (#CDATA).