# The CiteStyle XML DTD - describes the citation style of a journal

# (C) 2000 Markus Hoenicka <markus@mhoenicka.de>

# suggested invocation:

# <!DOCTYPE CITESTYLE PUBLIC "-//Markus Hoenicka//DTD CiteStyle V1.8//EN" "http://refdb.sourceforge.net/dtd/citestylex-1.8/citestylex.dtd">

namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"

STYLESET = element STYLESET { attlist.STYLESET, CITESTYLE+ }
attlist.STYLESET &= empty
CITESTYLE =
  element CITESTYLE {
    attlist.CITESTYLE,
    STYLENAME,
    AUTHOR?,
    COMMENT?,
    URL?,
    REFSTYLE,
    CITSTYLE,
    BIBSTYLE
  }
attlist.CITESTYLE &= empty
STYLENAME = element STYLENAME { attlist.STYLENAME, text }
attlist.STYLENAME &= empty
REFSTYLE = element REFSTYLE { attlist.REFSTYLE, PUBTYPE+ }
attlist.REFSTYLE &= empty
PUBTYPE =
  element PUBTYPE {
    attlist.PUBTYPE,
    ((REFNUMBER
      | CITEKEY
      | AUTHORLIST
      | PUBDATE
      | TITLE
      | JOURNALNAME
      | VOLUME
      | ISSUE
      | PAGES
      | PUBLISHER
      | PUBPLACE
      | SERIAL
      | ADDRESS
      | USERDEF
      | NOTES
      | ABSTRACT
      | LINK
      | TYPEOFWORK
      | AREA
      | OSTYPE
      | DEGREE
      | RUNNINGTIME
      | CLASSCODEINTL
      | CLASSCODEUS
      | SENDEREMAIL
      | RECIPIENTEMAIL
      | MEDIATYPE
      | NUMVOLUMES
      | EDITION
      | COMPUTER
      | CONFERENCELOCATION
      | REGISTRYNUM
      | CLASSIFICATION
      | SECTION
      | PAMPHLETNUM
      | CHAPTERNUM),
     SEPARATOR?)+
  }
attlist.PUBTYPE &=
  attribute TYPE {
    "ABST"
    | "ADVS"
    | "ART"
    | "BILL"
    | "BOOK"
    | "CASE"
    | "CHAP"
    | "COMP"
    | "CONF"
    | "CTLG"
    | "DATA"
    | "ELEC"
    | "GEN"
    | "ICOMM"
    | "INPR"
    | "JFULL"
    | "JOUR"
    | "MAP"
    | "MGZN"
    | "MPCT"
    | "MUSIC"
    | "NEWS"
    | "PAMP"
    | "PAT"
    | "PCOMM"
    | "RPRT"
    | "SER"
    | "SLIDE"
    | "SOUND"
    | "STAT"
    | "THES"
    | "UNBILL"
    | "UNPB"
    | "VIDEO"
  }
INTEXTDEF =
  element INTEXTDEF {
    attlist.INTEXTDEF,
    ((REFNUMBER
      | CITEKEY
      | AUTHORLIST
      | PUBDATE
      | TITLE
      | JOURNALNAME
      | VOLUME
      | ISSUE
      | PAGES
      | PUBLISHER
      | PUBPLACE),
     SEPARATOR?)+
  }
attlist.INTEXTDEF &= empty
AUTHORONLY =
  element AUTHORONLY {
    attlist.AUTHORONLY,
    ((REFNUMBER
      | AUTHORLIST
      | PUBDATE
      | TITLE
      | JOURNALNAME
      | VOLUME
      | ISSUE
      | PAGES
      | PUBLISHER
      | PUBPLACE),
     SEPARATOR?)+
  }
attlist.AUTHORONLY &= empty
YEARONLY =
  element YEARONLY {
    attlist.YEARONLY,
    ((REFNUMBER
      | AUTHORLIST
      | PUBDATE
      | TITLE
      | JOURNALNAME
      | VOLUME
      | ISSUE
      | PAGES
      | PUBLISHER
      | PUBPLACE),
     SEPARATOR?)+
  }
attlist.YEARONLY &= empty
REFNUMBER =
  element REFNUMBER { attlist.REFNUMBER, PRECEEDING?, FOLLOWING? }
attlist.REFNUMBER &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
CITEKEY = element CITEKEY { attlist.CITEKEY, PRECEEDING?, FOLLOWING? }
attlist.CITEKEY &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
AUTHORLIST =
  element AUTHORLIST {
    attlist.AUTHORLIST,
    PRECEEDING?,
    FOLLOWING?,
    ABBREVIATEFIRST?,
    ABBREVIATESUBSEQ?,
    AEMPTY?,
    ASAME?,
    AUTHORSEPS,
    AUTHORNAMES,
    TEXT?,
    TEXTED?
  }
attlist.AUTHORLIST &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?,
  attribute ALTERNATESTYLE {
    "ABOLD"
    | "AITALIC"
    | "ABOLDITALIC"
    | "ASUPER"
    | "ASUB"
    | "AULINE"
    | "ABOLDULINE"
    | "AITULINE"
    | "ABOLDITULINE"
    | "NONE"
  }?,
  [ a:defaultValue = "AEMPTY" ]
  attribute ALTERNATETEXT {
    "AEMPTY"
    | "TITLEPART"
    | "TITLEPUB"
    | "TITLESERIES"
    | "TITLEALL"
    | "JOURNALNAME"
    | "NONE"
  }?,
  [ a:defaultValue = "PUB" ]
  attribute ROLE { "PART" | "PUB" | "SERIES" | "ALL" }?
ABBREVIATEFIRST =
  element ABBREVIATEFIRST { attlist.ABBREVIATEFIRST, text }
ABBREVIATESUBSEQ =
  element ABBREVIATESUBSEQ { attlist.ABBREVIATESUBSEQ, text }
attlist.ABBREVIATEFIRST &=
  attribute MAXAUTHOR { text },
  attribute DISPLAYAUTHOR { text },
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
attlist.ABBREVIATESUBSEQ &=
  attribute MAXAUTHOR { text },
  attribute DISPLAYAUTHOR { text },
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
AEMPTY = element AEMPTY { attlist.AEMPTY, text }
attlist.AEMPTY &= empty
ASAME = element ASAME { attlist.ASAME, text }
attlist.ASAME &= empty
AUTHORSEPS =
  element AUTHORSEPS { attlist.AUTHORSEPS, TWOSEPS, THREESEPS }
attlist.AUTHORSEPS &= empty
TWOSEPS = element TWOSEPS { attlist.TWOSEPS, text }
attlist.TWOSEPS &= empty
THREESEPS =
  element THREESEPS { attlist.THREESEPS, THREESEPSEACH, THREESEPSLAST }
attlist.THREESEPS &= empty
THREESEPSEACH = element THREESEPSEACH { attlist.THREESEPSEACH, text }
attlist.THREESEPSEACH &= empty
THREESEPSLAST = element THREESEPSLAST { attlist.THREESEPSLAST, text }
attlist.THREESEPSLAST &= empty
AUTHORNAMES =
  element AUTHORNAMES { attlist.AUTHORNAMES, NAMEFIRST, NAMEOTHER }
attlist.AUTHORNAMES &= empty
NAMEFIRST = element NAMEFIRST { attlist.NAMEFIRST, empty }
NAMEOTHER = element NAMEOTHER { attlist.NAMEOTHER, empty }
attlist.NAMEFIRST &=
  [ a:defaultValue = "LASTFIRSTMIDDLE" ]
  attribute NAMEORDER {
    "FIRSTMIDDLELAST"
    | "LASTCOMMAFIRSTMIDDLE"
    | "LASTCOMMASPCFIRSTMIDDLE"
    | "LASTFIRSTMIDDLE"
    | "LAST"
  }?,
  [ a:defaultValue = "F.M." ]
  attribute INITIALSTYLE {
    "FIRSTSPCMIDDLE"
    | "FIRSTSPCM."
    | "FIRSTSPCM"
    | "F.SPCM."
    | "F.M."
    | "FSPCM"
    | "FM"
  }?,
  [ a:defaultValue = "NONE" ]
  attribute UPPERCASE { "NONE" | "LASTNAME" | "ALL" }?
attlist.NAMEOTHER &=
  [ a:defaultValue = "LASTFIRSTMIDDLE" ]
  attribute NAMEORDER {
    "FIRSTMIDDLELAST"
    | "LASTCOMMAFIRSTMIDDLE"
    | "LASTCOMMASPCFIRSTMIDDLE"
    | "LASTFIRSTMIDDLE"
    | "LAST"
  }?,
  [ a:defaultValue = "F.M." ]
  attribute INITIALSTYLE {
    "FIRSTSPCMIDDLE"
    | "FIRSTSPCM."
    | "FIRSTSPCM"
    | "F.SPCM."
    | "F.M."
    | "FSPCM"
    | "FM"
  }?,
  [ a:defaultValue = "NONE" ]
  attribute UPPERCASE { "NONE" | "LASTNAME" | "ALL" }?
TEXT = element TEXT { attlist.TEXT, TEXTSINGLE?, TEXTMULTIPLE? }
attlist.TEXT &= empty
TEXTED = element TEXTED { attlist.TEXTED, TEXTSINGLE?, TEXTMULTIPLE? }
attlist.TEXTED &= empty
TEXTSINGLE =
  element TEXTSINGLE { attlist.TEXTSINGLE, PRECEEDING?, FOLLOWING? }
attlist.TEXTSINGLE &= empty
TEXTMULTIPLE =
  element TEXTMULTIPLE { attlist.TEXTMULTIPLE, PRECEEDING?, FOLLOWING? }
attlist.TEXTMULTIPLE &= empty
PRECEEDING = element PRECEEDING { attlist.PRECEEDING, text }
attlist.PRECEEDING &= empty
FOLLOWING = element FOLLOWING { attlist.FOLLOWING, text }
attlist.FOLLOWING &= empty
PUBDATE =
  element PUBDATE {
    attlist.PUBDATE, PRECEEDING?, FOLLOWING?, FIRSTSEP?, SECONDSEP?
  }
attlist.PUBDATE &=
  [ a:defaultValue = "YES" ] attribute FORMAT { "YES" | "NO" }?,
  [ a:defaultValue = "Y" ]
  attribute SEQUENCE {
    "MDY" | "DMY" | "YMD" | "MY" | "YM" | "MD" | "DM" | "Y"
  }?,
  [ a:defaultValue = "ARABICMONTH" ]
  attribute MONTHFORMAT {
    "FULL" | "ABBREVDOT" | "THREELETTER" | "ARABICMONTH" | "ROMANMONTH"
  }?,
  [ a:defaultValue = "ARABICDAY" ]
  attribute DAYFORMAT { "ARABICDAY" | "ROMANDAY" }?,
  [ a:defaultValue = "FOURDIGIT" ]
  attribute YEARFORMAT { "FOURDIGIT" | "TWODIGIT" | "ROMANYEAR" }?,
  [ a:defaultValue = "NN" ] attribute PADLEADINGZERO { "YY" | "NN" }?,
  [ a:defaultValue = "PRIMARY" ]
  attribute ROLE { "PRIMARY" | "SECONDARY" | "ALL" }?,
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
FIRSTSEP = element FIRSTSEP { attlist.FIRSTSEP, text }
attlist.FIRSTSEP &= empty
SECONDSEP = element SECONDSEP { attlist.SECONDSEP, text }
attlist.SECONDSEP &= empty
TITLE = element TITLE { attlist.TITLE, PRECEEDING?, FOLLOWING? }
attlist.TITLE &=
  [ a:defaultValue = "ASIS" ]
  attribute CASE { "ASIS" | "UPPER" | "LOWER" | "ICAPS" }?,
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?,
  attribute MAXTITLE { text }?,
  [ a:defaultValue = "PUB" ]
  attribute ROLE { "PART" | "PUB" | "SERIES" | "ALL" }?
JOURNALNAME =
  element JOURNALNAME { attlist.JOURNALNAME, PRECEEDING?, FOLLOWING? }
attlist.JOURNALNAME &=
  [ a:defaultValue = "ASIS" ]
  attribute CASE { "ASIS" | "UPPER" | "LOWER" | "ICAPS" }?,
  [ a:defaultValue = "ABBREV" ]
  attribute DEFAULTTEXT { "ABBREV" | "FULL" | "USERONE" | "USERTWO" }?,
  [ a:defaultValue = "AFULL" ]
  attribute ALTERNATETEXT {
    "AABBREV" | "AFULL" | "AUSERONE" | "AUSERTWO"
  }?,
  [ a:defaultValue = "SPACE" ]
  attribute PUNCTUATION { "SPACE" | "PERIOD" | "PERIODSPACE" }?,
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
VOLUME = element VOLUME { attlist.VOLUME, PRECEEDING?, FOLLOWING? }
attlist.VOLUME &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
ISSUE = element ISSUE { attlist.ISSUE, PRECEEDING?, FOLLOWING? }
attlist.ISSUE &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
PAGES =
  element PAGES {
    attlist.PAGES, PRECEEDING?, FOLLOWING?, SINGLEPAGE?, PAGERANGE?
  }
attlist.PAGES &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
SINGLEPAGE =
  element SINGLEPAGE { attlist.SINGLEPAGE, PRECEEDING?, FOLLOWING? }
attlist.SINGLEPAGE &= empty
PAGERANGE =
  element PAGERANGE {
    attlist.PAGERANGE, PRECEEDING?, RANGESEPARATOR?, FOLLOWING?
  }
attlist.PAGERANGE &=
  [ a:defaultValue = "FULL" ]
  attribute TYPE {
    "FULL" | "ABBREV" | "CHICAGO" | "TWODIGIT" | "STARTONLY"
  }?
RANGESEPARATOR = element RANGESEPARATOR { attlist.RANGESEPARATOR, text }
attlist.RANGESEPARATOR &= empty
PUBLISHER =
  element PUBLISHER { attlist.PUBLISHER, PRECEEDING?, FOLLOWING? }
attlist.PUBLISHER &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
PUBPLACE =
  element PUBPLACE { attlist.PUBPLACE, PRECEEDING?, FOLLOWING? }
attlist.PUBPLACE &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
SERIAL = element SERIAL { attlist.SERIAL, PRECEEDING?, FOLLOWING? }
attlist.SERIAL &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
ADDRESS = element ADDRESS { attlist.ADDRESS, PRECEEDING?, FOLLOWING? }
attlist.ADDRESS &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
USERDEF = element USERDEF { attlist.USERDEF, PRECEEDING?, FOLLOWING? }
attlist.USERDEF &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?,
  [ a:defaultValue = "1" ]
  attribute ROLE { "1" | "2" | "3" | "4" | "5" }?
NOTES = element NOTES { attlist.NOTES, PRECEEDING?, FOLLOWING? }
attlist.NOTES &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
ABSTRACT =
  element ABSTRACT { attlist.ABSTRACT, PRECEEDING?, FOLLOWING? }
attlist.ABSTRACT &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
LINK = element LINK { attlist.LINK, PRECEEDING?, FOLLOWING? }
attlist.LINK &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?,
  [ a:defaultValue = "0" ]
  attribute ROLE { "0" | "1" | "2" | "3" | "4" }?
TYPEOFWORK =
  element TYPEOFWORK { attlist.TYPEOFWORK, PRECEEDING?, FOLLOWING? }
attlist.TYPEOFWORK &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
AREA = element AREA { attlist.AREA, PRECEEDING?, FOLLOWING? }
attlist.AREA &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
OSTYPE = element OSTYPE { attlist.OSTYPE, PRECEEDING?, FOLLOWING? }
attlist.OSTYPE &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
DEGREE = element DEGREE { attlist.DEGREE, PRECEEDING?, FOLLOWING? }
attlist.DEGREE &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
RUNNINGTIME =
  element RUNNINGTIME { attlist.RUNNINGTIME, PRECEEDING?, FOLLOWING? }
attlist.RUNNINGTIME &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
CLASSCODEINTL =
  element CLASSCODEINTL {
    attlist.CLASSCODEINTL, PRECEEDING?, FOLLOWING?
  }
attlist.CLASSCODEINTL &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
CLASSCODEUS =
  element CLASSCODEUS { attlist.CLASSCODEUS, PRECEEDING?, FOLLOWING? }
attlist.CLASSCODEUS &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
SENDEREMAIL =
  element SENDEREMAIL { attlist.SENDEREMAIL, PRECEEDING?, FOLLOWING? }
attlist.SENDEREMAIL &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
RECIPIENTEMAIL =
  element RECIPIENTEMAIL {
    attlist.RECIPIENTEMAIL, PRECEEDING?, FOLLOWING?
  }
attlist.RECIPIENTEMAIL &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
MEDIATYPE =
  element MEDIATYPE { attlist.MEDIATYPE, PRECEEDING?, FOLLOWING? }
attlist.MEDIATYPE &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
NUMVOLUMES =
  element NUMVOLUMES { attlist.NUMVOLUMES, PRECEEDING?, FOLLOWING? }
attlist.NUMVOLUMES &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
EDITION = element EDITION { attlist.EDITION, PRECEEDING?, FOLLOWING? }
attlist.EDITION &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
COMPUTER =
  element COMPUTER { attlist.COMPUTER, PRECEEDING?, FOLLOWING? }
attlist.COMPUTER &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
CONFERENCELOCATION =
  element CONFERENCELOCATION {
    attlist.CONFERENCELOCATION, PRECEEDING?, FOLLOWING?
  }
attlist.CONFERENCELOCATION &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
REGISTRYNUM =
  element REGISTRYNUM { attlist.REGISTRYNUM, PRECEEDING?, FOLLOWING? }
attlist.REGISTRYNUM &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
CLASSIFICATION =
  element CLASSIFICATION {
    attlist.CLASSIFICATION, PRECEEDING?, FOLLOWING?
  }
attlist.CLASSIFICATION &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
SECTION = element SECTION { attlist.SECTION, PRECEEDING?, FOLLOWING? }
attlist.SECTION &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
PAMPHLETNUM =
  element PAMPHLETNUM { attlist.PAMPHLETNUM, PRECEEDING?, FOLLOWING? }
attlist.PAMPHLETNUM &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
CHAPTERNUM =
  element CHAPTERNUM { attlist.CHAPTERNUM, PRECEEDING?, FOLLOWING? }
attlist.CHAPTERNUM &=
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
SEPARATOR = element SEPARATOR { attlist.SEPARATOR, text }
attlist.SEPARATOR &= empty
CITSTYLE =
  element CITSTYLE {
    attlist.CITSTYLE,
    PRECEEDING?,
    FOLLOWING?,
    CITSEPARATOR,
    RANGESEPARATOR?,
    INTEXTDEF?,
    AUTHORONLY?,
    YEARONLY?
  }
attlist.CITSTYLE &=
  [ a:defaultValue = "AUTHORDATE" ]
  attribute INTEXTSEQUENCE {
    "ASIS" | "AUTHORDATE" | "CITEKEY" | "DATEASC" | "DATEDESC"
  }?,
  attribute STYLE {
    "BOLD"
    | "ITALIC"
    | "BOLDITALIC"
    | "SUPER"
    | "SUB"
    | "ULINE"
    | "BOLDULINE"
    | "ITULINE"
    | "BOLDITULINE"
    | "NONE"
  }?
CITSEPARATOR = element CITSEPARATOR { attlist.CITSEPARATOR, text }
attlist.CITSEPARATOR &= empty
BIBSTYLE = element BIBSTYLE { attlist.BIBSTYLE, BIBLIOTITLE?, MONTHS? }
attlist.BIBSTYLE &=
  [ a:defaultValue = "BAUTHORDATE" ]
  attribute BIBLIOSEQUENCE {
    "BASIS" | "BAUTHORDATE" | "BCITEKEY" | "BDATEASC" | "BDATEDESC"
  }?,
  attribute BIBLIOFIRSTINDENT { text }?,
  attribute BIBLIOBLOCKINDENT { text }?,
  attribute FONTSIZE { text }?
BIBLIOTITLE = element BIBLIOTITLE { attlist.BIBLIOTITLE, text }
attlist.BIBLIOTITLE &= empty
AUTHOR = element AUTHOR { attlist.AUTHOR, text }
attlist.AUTHOR &= empty
COMMENT = element COMMENT { attlist.COMMENT, text }
attlist.COMMENT &= empty
URL = element URL { attlist.URL, text }
attlist.URL &= empty
MONTHS =
  element MONTHS {
    attlist.MONTHS,
    JAN,
    FEB,
    MAR,
    APR,
    MAY,
    JUN,
    JUL,
    AUG,
    SEP,
    OCT,
    NOV,
    DEC
  }
attlist.MONTHS &= empty
JAN = element JAN { attlist.JAN, empty }
attlist.JAN &=
  attribute FULL { text }?,
  attribute ABBREV { text }?,
  attribute THREELET { text }?
FEB = element FEB { attlist.FEB, empty }
attlist.FEB &=
  attribute FULL { text }?,
  attribute ABBREV { text }?,
  attribute THREELET { text }?
MAR = element MAR { attlist.MAR, empty }
attlist.MAR &=
  attribute FULL { text }?,
  attribute ABBREV { text }?,
  attribute THREELET { text }?
APR = element APR { attlist.APR, empty }
attlist.APR &=
  attribute FULL { text }?,
  attribute ABBREV { text }?,
  attribute THREELET { text }?
MAY = element MAY { attlist.MAY, empty }
attlist.MAY &=
  attribute FULL { text }?,
  attribute ABBREV { text }?,
  attribute THREELET { text }?
JUN = element JUN { attlist.JUN, empty }
attlist.JUN &=
  attribute FULL { text }?,
  attribute ABBREV { text }?,
  attribute THREELET { text }?
JUL = element JUL { attlist.JUL, empty }
attlist.JUL &=
  attribute FULL { text }?,
  attribute ABBREV { text }?,
  attribute THREELET { text }?
AUG = element AUG { attlist.AUG, empty }
attlist.AUG &=
  attribute FULL { text }?,
  attribute ABBREV { text }?,
  attribute THREELET { text }?
SEP = element SEP { attlist.SEP, empty }
attlist.SEP &=
  attribute FULL { text }?,
  attribute ABBREV { text }?,
  attribute THREELET { text }?
OCT = element OCT { attlist.OCT, empty }
attlist.OCT &=
  attribute FULL { text }?,
  attribute ABBREV { text }?,
  attribute THREELET { text }?
NOV = element NOV { attlist.NOV, empty }
attlist.NOV &=
  attribute FULL { text }?,
  attribute ABBREV { text }?,
  attribute THREELET { text }?
DEC = element DEC { attlist.DEC, empty }
attlist.DEC &=
  attribute FULL { text }?,
  attribute ABBREV { text }?,
  attribute THREELET { text }?
start = STYLESET
