[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xml-dev
Subject:    [xml-dev] linking
From:       "Bruce D'Arcus" <bdarcus () myrealbox ! com>
Date:       2004-12-27 18:08:05
Message-ID: 419353A7-5832-11D9-B728-000A95B10832 () myrealbox ! com
[Download RAW message or body]

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:

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

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:citation>
   <cite:citation-source>
<!-- 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"/>
     </cite:biblioref>
   </cite:citation-source>
   <cite:citation-body>
     <span class="citation">(Doe, 1999: 23-24)</span>
   </cite:citation-body>
</cite:citation>

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.

Bruce

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 {
    citation-source-element,
    citation-body-element?
}

## 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 {
    biblioref-element+
}

## 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 {
    detail-element*,
    caption-element*,
    biblioref-attlist
}
## 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 {
      "chapters"
     | "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,
           cite.text-content
         }
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 {
       (cite.text-content
        | attribute * { text })*
     }
   }


-----------------------------------------------------------------
The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
initiative of OASIS <http://www.oasis-open.org>

The list archives are at http://lists.xml.org/archives/xml-dev/

To subscribe or unsubscribe from this list use the subscription
manager: <http://www.oasis-open.org/mlmanage/index.php>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic