If you want to include an identifier *for a bibliographic item* (not an author, publisher, etc.)in a <biblStruct>, it's not clear how to do it, and the content models of these elements seem less aligned than you would expect.
Plausible locations for an identifier for a bibliographic item in <biblStruct> are:
a) biblStruct/idno (see the "NISTIR 4681" example at http://www.tei-c.org/release/doc/tei-p5-doc/en/html/CO.html#COBICOI )
b) biblStruct/monogr/idno -- This could contain an identifier relating to the monographic item (such as an ISBN).
c) biblStruct/analytic/idno -- This could contain an identifier relating to the analytic item.
d) biblStruct/series/idno -- This could contain an identifier relating to the series (such as an ISSN).
It would be good to have clarity on choosing between (a) and the others, especially (b) since <monogr> is required in <biblStruct> anyway.
See also http://purl.org/TEI/FR/3555190 for a similar problem with <biblScope>, which can also occur in various places.
You could also supply the identifier as value of xml:id on the biblStruct (or the other elements)
It's clear that we need to draft some guidance for these various cases.
xml:id is not intended to provide identifiers for the object being represented (e.g. a bibliographical record) but for the representation itself (assigning a unique reference to the XML object so that one can point ti it). It is thus extremely infelicitous to have it as an alternative to idno which can be typed, iterated, etc. and thus perfectly match the needs express in this ticket (and in general for all aspects in the TEI where we want to provide identifiers possibly based on external schemes)
Back to the ticket proper. Would not a good strategy to recommend using b) c) and/or d) exclusively and avoid a) ?
I cannot think of any meaningful way in which a biblStruct might have an idno of its own independent of one attached to a monogr, analytic, or series within it. Hence we propose moving idno out of the content model. Note that this involves changing one existing example in the Guidelines, and also several examples in the TEI bibliog.
Actually it involves changing loads of examples in the TEI bibliog, many of which (Kevin said) ought probably to be <ref>s instead. I have changed the one existing example in the G/lines and will open a new ticket proposing a review of the bibliography. We retain <idno> as a direct child of <biblStruct> for backwards compatibility, but this is not recommended practice: ptr or ref should be used instead, and have now been added to the content model. I have also added some more discussion of the use of <idno> to the chapter.
That new ticket that Lou opened, for the record, is at https://sourceforge.net/p/tei/bugs/448/ .
I believe this is a deprecation according to http://www.tei-c.org/Activities/Council/Working/tcw27.xml . However, I can't figure out how to deprecate use of
<idno>
as a child of<biblStruct>
: I can't add @validUntil on<rng:ref>
!Changed to AMBER to force discussion of Kevin's problem in deprecating.
New ticket about how to solve this: https://sourceforge.net/p/tei/feature-requests/486/ .
Revision r13003 (tagged as “P5_idno_child_of_biblStruct_deprecated”) has a version of
<biblStruct>
that has a Schematron constraint that warns it should not be used. That cannot be implemented right now (during the pre-release cool & freeze) because we use<idno>
as a child of<biblStruct>
in the bibliography of P5. This should be a reasonably easy fix (use the tagged biblStruct.xml, then fix the validation errors in the bibliography), but it can’t be made until after next release (scheduled for 2014-09-16).This was fixed 2014-09-19 in revision 13042, but I forgot to close the ticket.