# hes16a.dtd (multiple C*)
# derived from:
# losfile.dtd
# DTD for the bible texts of the freeware watchwords programs.
# Version 06t-33:
# last changes:
# attribute kni
# attribute c
# previous version: hes06-33t.dtd
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
Books =
"Gn"
| "Ex"
| "Lv"
| "Nu"
| "Dt"
| "Jos"
| "Jdc"
| "Rth"
| "1Sm"
| "2Sm"
| "1Rg"
| "2Rg"
| "1Chr"
| "2Chr"
| "Esr"
| "Neh"
| "Esth"
| "Job"
| "Ps"
| "Prv"
| "Eccl"
| "Ct"
| "Is"
| "Jr"
| "Thr"
| "Ez"
| "Dn"
| "Hos"
| "Joel"
| "Am"
| "Ob"
| "Jon"
| "Mch"
| "Nah"
| "Hab"
| "Zph"
| "Hgg"
| "Zch"
| "Ml"
| "Mt"
| "Mc"
| "L"
| "J"
| "Act"
| "R"
| "1K"
| "2K"
| "G"
| "E"
| "Ph"
| "Kol"
| "1Th"
| "2Th"
| "1T"
| "2T"
| "Tt"
| "Phm"
| "H"
| "Jc"
| "1P"
| "2P"
| "1J"
| "2J"
| "3J"
| "Jd"
| "Ap"
Line = (text | X | EM)*
# Top level structure
LOSFILE =
element LOSFILE {
attlist.LOSFILE, HEAD, (YEAR | MONTH | WEEK | DAY | LOSUNG)+
}
attlist.LOSFILE &=
[ a:defaultValue = "1" ] attribute dtdmainvers { string "1" }?,
attribute dtdsubvers { text }?,
attribute xml:lang { xsd:NMTOKEN },
attribute year { text }
HEAD = element HEAD { attlist.HEAD, FILEVERS, XLAT, SUBLANG* }
attlist.HEAD &= empty
FILEVERS = element FILEVERS { attlist.FILEVERS, text }
attlist.FILEVERS &= empty
XLAT = element XLAT { attlist.XLAT, text }
attlist.XLAT &= empty
# language info
SUBLANG = element SUBLANG { attlist.SUBLANG, TLPATTERN, MONTHS, DOW }
attlist.SUBLANG &= attribute subcode { text }
TLPATTERN = element TLPATTERN { attlist.TLPATTERN, Line }
attlist.TLPATTERN &= empty
MONTHS = element MONTHS { attlist.MONTHS, empty }
attlist.MONTHS &=
attribute jan { text },
attribute feb { text },
attribute mar { text },
attribute apr { text },
attribute may { text },
attribute jun { text },
attribute jul { text },
attribute aug { text },
attribute sep { text },
attribute oct { text },
attribute nov { text },
attribute dec { text }
DOW = element DOW { attlist.DOW, empty }
attlist.DOW &=
attribute sun { text },
attribute mon { text },
attribute tue { text },
attribute wed { text },
attribute thu { text },
attribute fri { text },
attribute sat { text }
# Non-watchwords info (calendar etc.)
YEAR = element YEAR { attlist.YEAR, TL, S, IL?, L+, SL }
attlist.YEAR &= attribute y { text }
MONTH = element MONTH { attlist.MONTH, TL, S, IL?, L+, SL }
attlist.MONTH &= attribute m { text }
WEEK = element WEEK { attlist.WEEK, S, IL?, L+, SL }
attlist.WEEK &=
attribute d { text },
attribute m { text },
attribute ord { text }?
DAY = element DAY { attlist.DAY, (S, IL?, L+, SL, SR?, CR?, C?)? }
attlist.DAY &=
attribute d { text },
attribute m { text },
[ a:defaultValue = "important" ]
attribute type { "sunday" | "holiday" | "important" | "week" }?,
attribute ord { text }?,
attribute label { text }?,
attribute name { text },
attribute meaning { text }?,
attribute src { text }?
# Structure for one watch word (one day)
LOSUNG =
element LOSUNG { attlist.LOSUNG, TL, OT, NT, TT?, SR?, CR?, C* }
attlist.LOSUNG &=
attribute d { text },
attribute m { text }
OT = element OT { attlist.OT, S, IL?, L+, SL }
attlist.OT &= empty
NT = element NT { attlist.NT, S, IL?, L+, SL }
attlist.NT &= empty
TT = element TT { attlist.TT, L+, SL }
attlist.TT &= empty
S = element S { attlist.S, empty }
attlist.S &=
attribute b { Books },
attribute kni { text }?,
attribute ch { xsd:integer }?,
attribute v { xsd:integer },
attribute r2 { text }?,
attribute ch2 { xsd:integer }?,
attribute v2 { xsd:integer }?,
attribute r3 { text }?,
attribute ch3 { xsd:integer }?,
attribute v3 { xsd:integer }?,
attribute r4 { text }?,
attribute ch4 { xsd:integer }?,
attribute v4 { xsd:integer }?,
attribute n { text }?,
attribute tr { text }?
TL = element TL { attlist.TL, Line }
attlist.TL &= empty
IL = element IL { attlist.IL, Line }
attlist.IL &= empty
SL = element SL { attlist.SL, Line }
attlist.SL &= empty
SR = element SR { attlist.SR, S*, SL }
attlist.SR &= empty
CR = element CR { attlist.CR, S?, SL }
attlist.CR &= empty
C = element C { attlist.C, L+ }
attlist.C &= empty
L = element L { attlist.L, Line }
attlist.L &= empty
X = element X { attlist.X, text }
attlist.X &= empty
EM = element EM { attlist.EM, text }
attlist.EM &= empty
start = LOSFILE