[tei-council] Implementing att.sortable

Martin Holmes mholmes at uvic.ca
Sun Nov 6 07:54:28 EST 2011

Hi all,

I implemented att.sortable on one of the planes, and after one abortive 
attempt to commit the changes over crappy wifi at Toronto, finally got 
them committed. The process raised a couple of questions for me, though:

Q1: Is it possible to make a model a member of an attribute class? For 
instance, I needed to make bibl, biblFull, biblStruct and msDesc members 
of att.sortable. These elements constitute the members of 
model.biblLike, so my first thought was that I should just make 
model.biblLike a member of att.sortable. However, I didn't find any 
examples of models which are members of attribute classes, so I 
concluded that this was not allowed or not implemented, and settled for 
making each individual elementSpec a member of att.sortable.

Q2: list, listPerson, listxx et al are all members of model.listLike, 
except for listChange and listRef. listChange, like the other members of 
model.listLike, can nest; I don't see why it's not a member of 
model.listLike. Is this just an omission? listRef also looks like a 
candidate, except that it can't nest inside itself. Why can't it, when 
other lists can?

This is what I did -- I'll also post this on the ticket, and close it, 
assuming the Jenkinses build everything successfully after the change.

1. Created att.sortable.xml, defining:

<classSpec xmlns="http://www.tei-c.org/ns/1.0" module="tei" type="atts"

I've placed this in the tei module, because its usage is so
wide. I took the attribute definition and examples from
term.xml, which had a local attribute @sortKey, and included some
additional remarks from att.entryLike, which also used to define @sortKey.

2. Removed @sortKey from att.entryLike, which removed the attribute from
entry, entryFree, and superEntry.

3. Made entry, entryFree, and superEntry members of att.sortable, to
replace @sortKey on those elements.

4. Removed the local @sortKey from term.xml, and made it a member of

5. Made the following elements members of att.sortable:

	bibl, biblStruct, biblFull, msDesc;
	(Could these have been done by making model.biblLike a member of 
att.sortable? I didn't do that because I could find no examples of other 
models which were members of attribute classes.)

	person, personGrp, org
	(Could have been done in model.personLike; these are included because 
they can be nested inside

          list, listBibl, listWit, listOrg, listEvent, listPerson,
listPlace, listNym
	(Could have been done in

	Added listChange; it seems to me this should be a member of
		model.listLike. Excluded listRef, because it cannot
		nest -- why?

	item, place,
	idno, witness, relation, relationGrp, event, nym;

6. Added my new att.sortable.xml to the entities in

7. Added a reference to the entity in 
Guidelines/en/ST-infrastructure.xml. (No need to add it to the French 
counterpart because it's just a symlink to the English one.)

More information about the tei-council mailing list