OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help




[ Lists Home | Date Index | Thread Index ]

I've been working on some projects for bibliographic and citation 
coding and formatting, and was wondering if people have feedback on one 
little part of that: linking the citation to the bibliographic record.

OK, here's what the new DocBook biblioref code looks like:

    <biblioref linkend="doe99a" unit="page" begin="23" end="24"/>

Now, here's an example from a small standalone schema recently approved 
for inclusion in OpenOffice, but which could also be embedded in other 
document formats, like WordML.

<!-- cite:key currently serves the same role as docbook's linkend, but 
is defined as a token -->
     <cite:biblioref cite:key="doe99a">
       <cite:detail cite:units="pages" cite:begin="23" cite:end="24"/>
     <span class="citation">(Doe, 1999: 23-24)</span>

Now, the issue:

The linkend attribute in DocBook is defined as an idref.  However, it's 
not necessarily the case that one would actually include the referent 
in the document.  Indeed, in my stylesheets, I assume that data is 
external to the document: either in a flat file, or in some sort of 
database (I use http with the doc() function to communicate with the 
eXist XML DB right now).

Basically, I just want the citation code to point to a record id, but I 
want where that record gets found to be configured in the xslt code.  
I'd also like a standardized way to do this.

So is there a better way to code these pointers?  Perhaps using xlink?

I paste the RELAX NG schema below.  It's been approved, but I'm pretty 
sure I could make minor changes.


default namespace cite = "http://purl.org/NET/xbiblio/cite";

start = citation-element

## A citation consists of two elements; one the structural source data
## and the other the presentational display.
citation-element = element cite:citation {

## The source element consists of one-or-more biblioref elements, which
## are the references within the citation. For example, the citation
## (Doe, 1999; Smith, 2000) contains two references.
citation-source-element = element cite:citation-source {

## In fields across the social sciences and humanities, it is
## common for citations to include further detail, including
## more specific point citations (for example, page numbers)
## as well as captions. We allow more than one detail element
## to allow for coding such as (Doe, 1999: pages 1, 2, 3-5) or
## (Doe, 1999: page 2, paragraph 3).
biblioref-element = element cite:biblioref {
## Key is the pointer to the bibliographic record ID.
biblioref-attlist &= attribute cite:key { token }

## The detail element captures point citation information
## such as cited page numbers.
detail-element = element cite:detail { detail-attlist }
detail-attlist = attribute cite:begin { xsd:string },
    attribute cite:end { xsd:string }?,
    attribute cite:units {
     | "figures"
     | "formulas"
     | "lines"
     | "pages"
     | "paragraphs"
     | "parts"
     | "sections"

## For examples such as (for more on this, see Doe, 1999).
caption-element = element cite:caption {
caption-attlist = attribute cite:position { "before" | "after" }

## The element to contain the rendered code is uncontrolled.
citation-body-element = element cite:citation-body { cite.text-content }

cite.text-content =
   element * {
     mixed {
        | attribute * { text })*


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS