summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/stex/schema/rnc/LaTeXML/LaTeXML-tabular.rnc
blob: 4ff4bc3feab9ac7b6eaf50bd538c990942bbac75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# /=====================================================================\ 
# |  LaTeXML-tabular.rnc                                                |
# | RelaxNG model for LaTeXML generated documents                       |
# |=====================================================================|
# | Part of LaTeXML:                                                    |
# |  Public domain software, produced as part of work done by the       |
# |  United States Government & not subject to copyright in the US.     |
# |=====================================================================|
# | Bruce Miller <bruce.miller@nist.gov>                        #_#     |
# | http://dlmf.nist.gov/LaTeXML/                              (o o)    |
# \=========================================================ooo==U==ooo=/

default namespace = "http://dlmf.nist.gov/LaTeXML"

## This module defines the basic tabular, or alignment, structure.
## It is roughly parallel to the HTML model.
Misc.class &= tabular*

#======================================================================

tabular =
## An alignment structure corresponding to tabular  or various similar forms.
## The model is basically a copy of HTML4's table.
element tabular { tabular_attributes &  tabular_model }

## Attributes for \elementref{tabular}.
tabular_attributes = 
  Common.attributes & 

  ## which row's baseline aligns with the container's baseline.
  attribute vattach { "top" | "middle" | "bottom" }? &

  ## the desired width of the tabular.
  attribute width { Length.type }?

### MiKo: this can be tightened. Is it really true that we have more than one body?
## Content model for \elementref{tabular}.
tabular_model = thead* & tfoot* & tbody* & tr*

#======================================================================

thead =
## A container for a set of rows that correspond to the header of the tabular.
element thead { thead_attributes &  thead_model }

## Attributes for \elementref{thead}.
thead_attributes = Common.attributes

## Content model for \elementref{thead}.
thead_model = tr*

#======================================================================

tfoot =
## A container for a set of rows that correspond to the footer of the tabular.
element tfoot { tfoot_attributes &  tfoot_model }

## Attributes for \elementref{tfoot}.
tfoot_attributes = Common.attributes

## Content model for \elementref{tfoot}.
tfoot_model = tr*

#======================================================================

tbody =
## A container for a set of rows corresponding to the body of the tabular.
element tbody { tbody_attributes &  tbody_model }

## Attributes for \elementref{tbody}.
tbody_attributes = Common.attributes

## Content model for \elementref{tbody}.
tbody_model = tr*

#======================================================================

tr =
## A row of a tabular.
element tr { tr_attributes &  tr_model }

## Attributes for \elementref{tr}.
tr_attributes = Common.attributes

## Content model for \elementref{tr}.
tr_model = td*

#======================================================================

td =
## A cell in a row of a tabular.
element td { td_attributes &  td_model }

## Attributes for \elementref{td}.
td_attributes = 

  Common.attributes & 

  ## indicates how many columns this cell spans or covers.
  attribute colspan { xsd:nonNegativeInteger }? &

  ## indicates how many rows this cell spans or covers.
  attribute rowspan { xsd:nonNegativeInteger }? &

# This would have been clearer, but messes up conversion to dtd
#  attribute align { "left" | "right" | "center" | "justify" | text }? &
  ##  specifies the alignment of the content.
  attribute align { text }? &

  ## specifies the desired width for the column.
  attribute width { Length.type }? &

  ## records a sequence of t or tt, r or rr, b or bb and l or ll
  ## for borders or doubled borders on any side of the cell.
  attribute border { text }? &

  ## whether this cell corresponds to a table head or foot.
  attribute thead {xsd:boolean}?

## Content model for \elementref{td}.
td_model =  Flow.model

#======================================================================