OK, on the plane-ride back from Edmonton yesterday, I think I've figured out a plan to solve the styling problem:

I am going to push the OD TC to take up two proposals:

1) the details of the bib metadata model and storage (this is dependent on current discussions around metadata in OD)
2)  the styling

WRT to the second, I've decided it's a waste of time to worry about CSL per se too much. We can instead provide surgical modifications to the OD styling support and get the same functionality (which is what matters most). If we need to do CSL import/export later because it's being taken up outside OD/OOo, then that should be easy enough. Indeed, I created an XSLT that can convert CSL files to results like this:

  <text:citation-configuration text:delimiter=";">
<text:multiple-authors text:position="first" text:min-authors="6" text:use-first="6">et al.</text:multiple-authors> <text:multiple-authors text:position="subsequent" text:min-authors="6" text:use-first="1">et al.</text:multiple-authors>
    <text:layout>
      <text:creator text:suffix=""/>
      <text:year/>
      <text:point text:prefix=": "/>
    </text:layout>
  </text:citation-configuration>

So I think I will propose enhancing an existing element in the styles.xml file (text:bibliography-configuration), and adding a citation analog (the above example).

There is one possible wrinkle in this, though. The above collapses what is currently handled in two places in OD: in the styles file and the content file (in some "index" related code). It just may be a problem because it would mean me deviating from current approaches in OD. I do think my approach is better though, so ...

Anyway, below are the bib-related schema fragments from the current spec, which I've converted to the RNG Compact version (easier to edit; at least for me).

# first the citations; this div is already getting replaced
div {
  element text:bibliography-mark {
    attribute text:bibliography-type { text-bibliography-types },
    attribute text:identifier
              | text:address
              | text:annote
              | text:author
              | text:booktitle
              | text:chapter
              | text:edition
              | text:editor
              | text:howpublished
              | text:institution
              | text:journal
              | text:month
              | text:note
              | text:number
              | text:organizations
              | text:pages
              | text:publisher
              | text:school
              | text:series
              | text:title
              | text:report-type
              | text:volume
              | text:year
              | text:url
              | text:custom1
              | text:custom2
              | text:custom3
              | text:custom4
              | text:custom5
              | text:isbn
              | text:issn { \string }*,
    text
  }

# bib types
text-bibliography-types =
  "article"
  | "book"
  | "booklet"
  | "conference"
  | "custom1"
  | "custom2"
  | "custom3"
  | "custom4"
  | "custom5"
  | "email"
  | "inbook"
  | "incollection"
  | "inproceedings"
  | "journal"
  | "manual"
  | "mastersthesis"
  | "misc"
  | "phdthesis"
  | "proceedings"
  | "techreport"
  | "unpublished"
  | "www"
}

# bibliography content

text-bibliography =
  element text:bibliography {
    sectionAttr, text-bibliography-source, text-index-body
  }
text-bibliography-source =
  element text:bibliography-source {
    text-index-title-template?, text-bibliography-entry-template*
  }
text-bibliography-entry-template =
  element text:bibliography-entry-template {
    text-bibliography-entry-template-attrs,
    (text-index-entry-span
     | text-index-entry-tab-stop
     | text-index-entry-bibliography)*
  }
text-bibliography-entry-template-attrs &=
  attribute text:bibliography-type { text-bibliography-types }
text-bibliography-entry-template-attrs &=
  attribute text:style-name { styleNameRef }

# ??

text-index-entry-bibliography =
  element text:index-entry-bibliography {
    text-index-entry-bibliography-attrs
  }
text-index-entry-bibliography-attrs &=
  attribute text:style-name { styleNameRef }?
text-index-entry-bibliography-attrs &=
  attribute text:bibliography-data-field {
    "address"
    | "annote"
    | "author"
    | "bibliography-type"
    | "booktitle"
    | "chapter"
    | "custom1"
    | "custom2"
    | "custom3"
    | "custom4"
    | "custom5"
    | "edition"
    | "editor"
    | "howpublished"
    | "identifier"
    | "institution"
    | "isbn"
    | "issn"
    | "journal"
    | "month"
    | "note"
    | "number"
    | "organizations"
    | "pages"
    | "publisher"
    | "report-type"
    | "school"
    | "series"
    | "title"
    | "url"
    | "volume"
    | "year"
  }

# styling

text-bibliography-configuration =
  element text:bibliography-configuration {
    text-bibliography-configuration-attlist, text-sort-key*
  }
text-bibliography-configuration-attlist &=
  attribute text:prefix { \string }?,
  attribute text:suffix { \string }?
text-bibliography-configuration-attlist &=
  [ a:defaultValue = "false" ]
  attribute text:numbered-entries { boolean }?
text-bibliography-configuration-attlist &=
  [ a:defaultValue = "true" ]
  attribute text:sort-by-position { boolean }?,
  attribute fo:language { languageCode }?,
  attribute fo:country { countryCode }?,
  attribute text:sort-algorithm { \string }?
text-sort-key = element text:sort-key { text-sort-key-attlist, empty }
text-sort-key-attlist &=
  attribute text:key {
    "address"
    | "annote"
    | "author"
    | "bibliography-type"
    | "booktitle"
    | "chapter"
    | "custom1"
    | "custom2"
    | "custom3"
    | "custom4"
    | "custom5"
    | "edition"
    | "editor"
    | "howpublished"
    | "identifier"
    | "institution"
    | "isbn"
    | "issn"
    | "journal"
    | "month"
    | "note"
    | "number"
    | "organizations"
    | "pages"
    | "publisher"
    | "report-type"
    | "school"
    | "series"
    | "title"
    | "url"
    | "volume"
    | "year"
  },
  [ a:defaultValue = "true" ] attribute text:sort-ascending { boolean }?


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to