% \iffalse meta-comment
%
%% File: tagpdf-data.dtx
%
% Copyright (C) 2022-2024 Ulrike Fischer
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
% license or (at your option) any later version.  The latest version
% of this license is in the file
%
%    https://www.latex-project.org/lppl.txt
%
% This file is part of the "tagpdf bundle" (The Work in LPPL)
% and all files in that bundle must be distributed together.
%
% -----------------------------------------------------------------------
%
% The development version of the bundle can be found at
%
%    https://github.com/latex3/tagpdf
%
% for those people who are interested.
%<*driver>
\DocumentMetadata{}
\documentclass{l3doc}
\usepackage{array,booktabs,caption}
\hypersetup{pdfauthor=Ulrike Fischer,
 pdftitle=tagpdf-data module (tagpdf)}
\begin{document}
  \DocInput{\jobname.dtx}
\end{document}
%</driver>
% \fi
% \title{^^A
%   The \pkg{tagpdf-data} module\\ 
%   Data files for tag namespaces and containment rules^^A
%   \\ Part of the tagpdf package
% }
%
% \author{^^A
%  Ulrike Fischer\thanks
%    {^^A
%      E-mail:
%        \href{mailto:fischer@troubleshooting-tex.de}
%          {fischer@troubleshooting-tex.de}^^A
%    }^^A
% }
%
% \date{Version 0.99f, released 2024-09-16}
% \maketitle
% \begin{documentation}
% This files contains a various data files which are read in
% by \pkg{tagpdf} to setup name spaces and  rules for tag relationships.
% 
% \end{documentation}
% \begin{implementation}
% \section{The LaTeX namespace}
% This is the main new namespace. It is bound to change a lot!
% It lists the new tag, the rolemap and the namespace of the rolemap.
% latex-lab has also a namespace module, which takes precedence!
%    \begin{macrocode}
%<*ns-latex>
%% \ProvidesExplFile {tagpdf-ns-latex.def} {2024-09-16} {0.99f}
%% {latex} {https://www.latex-project.org/ns/dflt/2022}{}
title,        Title,    pdf2,
part,         Title,    pdf2,
section,      H1,       pdf2, 
subsection,   H2,       pdf2,
subsubsection,H3,       pdf2,
paragraph,    H4,       pdf2, 
subparagraph, H5,       pdf2,
list,         L,        pdf2,
itemize,      L,        pdf2,
enumerate,    L,        pdf2,
description,  L,        pdf2,
quote,        BlockQuote,pdf,
quotation,    BlockQuote,pdf,
verbatim,     Div,      pdf2, 
item,         LI,       pdf2,
itemlabel,    Lbl,      pdf2,
itembody,     LBody,    pdf2,
footnote,     FENote,   pdf2,
footnotemark, Lbl,      pdf2,
footnotelabel,Lbl,      pdf2,
text-unit,    Part,     pdf2,
text,         P,        pdf2,
%</ns-latex>
%    \end{macrocode}
% \section{The LaTeX-book namespace}
% This changes the rolemapping of some tags for heading with
% to values more suitable in book classes. 
% It is bound to change
%    \begin{macrocode}
%<*ns-latex-book>
%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2024-09-16} {0.99f}
%% {latex-book} {https://www.latex-project.org/ns/book/2022}{}
chapter,       H1,pdf2,
section,       H2,pdf2,
subsection,    H3,pdf2,
subsubsection, H4,pdf2,
paragraph,     H5,pdf2,
subparagraph,  H6,pdf2,
%</ns-latex-book>
%    \end{macrocode}
%
% \section{The pdf namespace data}
%    \begin{macrocode}
%<*ns-pdf>
%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2024-09-16} {0.99f}
%%  {pdf}   {http://iso.org/pdf/ssn}{}
StructTreeRoot,StructTreeRoot,pdf,D,
Document,Document,pdf,D,   
Part,Part,pdf,G,       
Sect,Sect,pdf,G,       
Div,Div,pdf,G,        
Caption,Caption,pdf,GB,    
NonStruct,NonStruct,pdf,G,  
H,H,pdf,B,
H1,H1,pdf,B,
H2,H2,pdf,B,
H3,H3,pdf,B,
H4,H4,pdf,B,
H5,H5,pdf,B,
H6,H6,pdf,B,
P,P,pdf,B,
L,L,pdf,BI,           
LI,LI,pdf,L,          
Lbl,Lbl,pdf,I,         
LBody,LBody,pdf,L,       
Table,Table,pdf,B,
TR,TR,pdf,T,          
TH,TH,pdf,T,          
TD,TD,pdf,T,          
THead,THead,pdf,T,       
TBody,TBody,pdf,T,       
TFoot,TFoot,pdf,T,       
Span,Span,pdf,I,        
Link,Link,pdf,GBI,        
Annot,Annot,pdf,GBI,
Figure,Figure,pdf,GBI,
Formula,Formula,pdf,GBI,
Form,Form,pdf,GBI,
Ruby,Ruby,pdf,I,
RB,RB,pdf,I,
RT,RT,pdf,I,
Warichu,Warichu,pdf,I,
WT,WT,pdf,I,
WP,WP,pdf,I,
Artifact,NonStruct,pdf,GBI, 
Art,Art,pdf,,G,  % only pdf, types unclear, needs correction later       
BlockQuote,BlockQuote,pdf,G, %or GB?
TOC,TOC,pdf,G,        
TOCI,TOCI,pdf,G,       
Index,Index,pdf,G,
Private,Private,pdf,G,
Quote,Quote,pdf,I,      
Note,Note,pdf,GBI, % I in reference, but        
Reference,Reference,pdf,B, %  
BibEntry,BibEntry,pdf,B, %   
Code,Code,pdf,I, %
DocumentFragment,Art,pdf,D, %from pdf2
Aside,Note,pdf,G,
H7,H6,pdf,B,
H8,H6,pdf,B, 
H9,H6,pdf,B,
H10,H6,pdf,B,
Title,P,pdf,GB,
FENote,Note,pdf,GBI,
Sub,Span,pdf,I,
Em,Span,pdf,I,
Strong,Span,pdf,I, 
%</ns-pdf>
%    \end{macrocode}
% \section{The pdf 2.0 namespace data}
%    \begin{macrocode}
%<*ns-pdf2>
%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2024-09-16} {0.99f} 
%%  {pdf2}  {http://iso.org/pdf2/ssn}{}
StructTreeRoot,StructTreeRoot,pdf2,D,
Document,Document,pdf2,D,   
Part,Part,pdf2,G,       
Sect,Sect,pdf2,G,       
Div,Div,pdf2,G,        
Caption,Caption,pdf2,GB,    
NonStruct,NonStruct,pdf2,G,  
H,H,pdf2,B,
H1,H1,pdf2,B,
H2,H2,pdf2,B,
H3,H3,pdf2,B,
H4,H4,pdf2,B,
H5,H5,pdf2,B,
H6,H6,pdf2,B,
P,P,pdf2,B,
L,L,pdf2,BI,           
LI,LI,pdf2,L,          
Lbl,Lbl,pdf2,I,         
LBody,LBody,pdf2,L,       
Table,Table,pdf2,B,
TR,TR,pdf2,T,          
TH,TH,pdf2,T,          
TD,TD,pdf2,T,          
THead,THead,pdf2,T,       
TBody,TBody,pdf2,T,       
TFoot,TFoot,pdf2,T,       
Span,Span,pdf2,I,        
Link,Link,pdf2,GBI,        
Annot,Annot,pdf2,GBI,
Figure,Figure,pdf2,GBI,
Formula,Formula,pdf2,GBI,
Form,Form,pdf2,GBI,
Ruby,Ruby,pdf2,I,
RB,RB,pdf2,I,
RT,RT,pdf2,I,
Warichu,Warichu,pdf2,I,
WT,WT,pdf2,I,
WP,WP,pdf2,I,
Artifact,Artifact,pdf2,GBI, 
DocumentFragment,DocumentFragment,pdf2,D, %rest only pdf2
Aside,Aside,pdf2,G,
H7,H7,pdf2,B,
H8,H8,pdf2,B, 
H9,H9,pdf2,B,
H10,H10,pdf2,B,
Title,Title,pdf2,GB,
FENote,FENote,pdf2,GBI,
Sub,Sub,pdf2,I,
Em,Em,pdf2,I,
Strong,Strong,pdf2,I, 
%</ns-pdf2>
%    \end{macrocode}
% \section{The mathml namespace data}
%    \begin{macrocode}
%<*ns-mathml>
%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2024-09-16} {0.99f}
% {mathml}{http://www.w3.org/1998/Math/MathML}{}
abs,abs,mathml,
and,and,mathml,
annotation,annotation,mathml,
apply,apply,mathml,
approx,approx,mathml,
arccos,arccos,mathml,
arccosh,arccosh,mathml,
arccot,arccot,mathml,
arccoth,arccoth,mathml,
arccsc,arccsc,mathml,
arccsch,arccsch,mathml,
arcsec,arcsec,mathml,
arcsech,arcsech,mathml,
arcsin,arcsin,mathml,
arcsinh,arcsinh,mathml,
arctan,arctan,mathml,
arctanh,arctanh,mathml,
arg,arg,mathml,
bind,bind,mathml,
bvar,bvar,mathml,
card,card,mathml,
cartesianproduct,cartesianproduct,mathml,
cbytes,cbytes,mathml,
ceiling,ceiling,mathml,
cerror,cerror,mathml,
ci,ci,mathml,
cn,cn,mathml,
codomain,codomain,mathml,
complexes,complexes,mathml,
compose,compose,mathml,
condition,condition,mathml,
conjugate,conjugate,mathml,
cos,cos,mathml,
cosh,cosh,mathml,
cot,cot,mathml,
coth,coth,mathml,
cs,cs,mathml,
csc,csc,mathml,
csch,csch,mathml,
csymbol,csymbol,mathml,
curl,curl,mathml,
declare,declare,mathml,
degree,degree,mathml,
determinant,determinant,mathml,
diff,diff,mathml,
divergence,divergence,mathml,
divide,divide,mathml,
domain,domain,mathml,
domainofapplication,domainofapplication,mathml,
emptyset,emptyset,mathml,
eq,eq,mathml,
equivalent,equivalent,mathml,
eulergamma,eulergamma,mathml,
exists,exists,mathml,
exp,exp,mathml,
exponentiale,exponentiale,mathml,
factorial,factorial,mathml,
factorof,factorof,mathml,
false,false,mathml,
floor,floor,mathml,
fn,fn,mathml,
forall,forall,mathml,
gcd,gcd,mathml,
geq,geq,mathml,
grad,grad,mathml,
gt,gt,mathml,
ident,ident,mathml,
image,image,mathml,
imaginary,imaginary,mathml,
imaginaryi,imaginaryi,mathml,
implies,implies,mathml,
in,in,mathml,
infinity,infinity,mathml,
int,int,mathml,
integers,integers,mathml,
intersect,intersect,mathml,
interval,interval,mathml,
inverse,inverse,mathml,
lambda,lambda,mathml,
laplacian,laplacian,mathml,
lcm,lcm,mathml,
leq,leq,mathml,
limit,limit,mathml,
ln,ln,mathml,
log,log,mathml,
logbase,logbase,mathml,
lowlimit,lowlimit,mathml,
lt,lt,mathml,
maction,maction,mathml,
maligngroup,maligngroup,mathml,
malignmark,malignmark,mathml,
math,math,mathml,
matrix,matrix,mathml,
matrixrow,matrixrow,mathml,
max,max,mathml,
mean,mean,mathml,
median,median,mathml,
menclose,menclose,mathml,
merror,merror,mathml,
mfenced,mfenced,mathml,
mfrac,mfrac,mathml,
mglyph,mglyph,mathml,
mi,mi,mathml,
min,min,mathml,
minus,minus,mathml,
mlabeledtr,mlabeledtr,mathml,
mlongdiv,mlongdiv,mathml,
mmultiscripts,mmultiscripts,mathml,
mn,mn,mathml,
mo,mo,mathml,
mode,mode,mathml,
moment,moment,mathml,
momentabout,momentabout,mathml,
mover,mover,mathml,
mpadded,mpadded,mathml,
mphantom,mphantom,mathml,
mprescripts,mprescripts,mathml,
mroot,mroot,mathml,
mrow,mrow,mathml,
ms,ms,mathml,
mscarries,mscarries,mathml,
mscarry,mscarry,mathml,
msgroup,msgroup,mathml,
msline,msline,mathml,
mspace,mspace,mathml,
msqrt,msqrt,mathml,
msrow,msrow,mathml,
mstack,mstack,mathml,
mstyle,mstyle,mathml,
msub,msub,mathml,
msubsup,msubsup,mathml,
msup,msup,mathml,
mtable,mtable,mathml,
mtd,mtd,mathml,
mtext,mtext,mathml,
mtr,mtr,mathml,
munder,munder,mathml,
munderover,munderover,mathml,
naturalnumbers,naturalnumbers,mathml,
neq,neq,mathml,
none,none,mathml,
not,not,mathml,
notanumber,notanumber,mathml,
notin,notin,mathml,
notprsubset,notprsubset,mathml,
notsubset,notsubset,mathml,
or,or,mathml,
otherwise,otherwise,mathml,
outerproduct,outerproduct,mathml,
partialdiff,partialdiff,mathml,
pi,pi,mathml,
piece,piece,mathml,
piecewise,piecewise,mathml,
plus,plus,mathml,
power,power,mathml,
primes,primes,mathml,
product,product,mathml,
prsubset,prsubset,mathml,
quotient,quotient,mathml,
rationals,rationals,mathml,
real,real,mathml,
reals,reals,mathml,
reln,reln,mathml,
rem,rem,mathml,
root,root,mathml,
scalarproduct,scalarproduct,mathml,
sdev,sdev,mathml,
sec,sec,mathml,
sech,sech,mathml,
selector,selector,mathml,
semantics,semantics,mathml,
sep,sep,mathml,
set,set,mathml,
setdiff,setdiff,mathml,
share,share,mathml,
sin,sin,mathml,
sinh,sinh,mathml,
subset,subset,mathml,
sum,sum,mathml,
tan,tan,mathml,
tanh,tanh,mathml,
tendsto,tendsto,mathml,
times,times,mathml,
transpose,transpose,mathml,
true,true,mathml,
union,union,mathml,
uplimit,uplimit,mathml,
variance,variance,mathml,
vector,vector,mathml,
vectorproduct,vectorproduct,mathml,
xor,xor,mathml,
%</ns-mathml>
%    \end{macrocode}
% \section{Rule naming}
% \begin{macro}{\c_@@_role_rules_prop}
% These two properties map the rule strings to numbers and back.
% There are in tagpdf-data.dtx near the csv files for easier maintenance.
%    \begin{macrocode}
%<*package>
\prop_const_from_keyval:Nn \c_@@_role_rules_prop
 {
    0..n = 1,
    0..1 = 2,
    1    = 3, %StructTreeRoot, not really needed
    [a]  = 4, %ruby
    [b]  = 5, %warichu
    c    = 6, % WP ??
    ���    = 7, % Part,Div,NonStruct -> "check parent"
    ���*   = 8, % or negative by default?
    ���    = -1,
 }
%in debug??
\prop_const_from_keyval:Nn \c_@@_role_rules_num_prop
 {
   1 = 0..n,
   2 = 0..1,
   3 = 1   , %StructTreeRoot, not really needed
   4 = [a] , %ruby
   5 = [b] , %warichu
   6 = c   , % WP ??
   7 = ���   , % Part,Div,NonStruct -> "check parent"
   8 = ���*  , % or negative by default?
  -1 = ��� ,
 }
%</package>
%    \end{macrocode}
% \end{macro}
% \section{The parent-child rules for pdf <2.0}
% This csv contains the parent-child matrix for pdf <2.0.
% The values are currently the strings used in the PDF reference.
% This will perhaps change in future.
%    \begin{macrocode}
%<*parent-child>
%% \ProvidesExplFile {tagpdf-parent-child.csv} {2024-09-16} {0.99f}
,,,StructTreeRoot,Document,Art,Part,Div,Sect,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,MC
Document,both,document level,1,0..n,���,���,���,���,0..n,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���
Art,1.7,grouping,���,0..n,���,���,���,0..n,0..n,���,���,���,���,0..n,���,0..n,���,���,���,0..1,0..1,���,���,���,0..n,0..n,���,���,���,���,���,���,���,���,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,���,���
Part,both,grouping,���,0..n,0..n,���,���,0..n,0..n,���,0..n,���,0..n,0..n,���,0..n,���,0..n,���,���,���,���,0..n,���,���*,���*,���*,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,0..n,0..n,0..n,���
Div,both,grouping,���,0..n,0..n,���,���,0..n,0..n,���,���,0..n,0..n,0..n,���,0..n,���,0..n,���,���,���,���,0..n,���,0..n,0..n,0..n,���,���,���,���,���,���,���,���,0..n,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
Sect,both,grouping,���,0..n,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,���,0..n,���,���,���,0..1,0..1,���,���,���,0..n,0..n,���,���,���,���,���,���,���,���,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,���,���
BlockQuote,1.7,grouping?,���,0..n,0..n,���,���,0..n,0..n,���,���,���,���,0..n,���,0..n,���,���,���,���,���,���,���,���,���*,���*,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,0..n,0..n,0..n,���
NonStruct,both,grouping,���,0..n,0..n,���,���,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���
TOC,1.7,grouping,���,0..n,0..n,���,���,0..n,0..n,���,0..n,0..n,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���
TOCI,1.7,TOC,���,���,���,���,���,���,���,���,0..n,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���
Index,1.7,grouping?,���,0..n,0..n,���,���,0..n,0..n,���,���,���,���,0..n,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
Private,1.7,grouping,���,0..n,0..n,���,���,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���
P,both,block,���,0..n,0..n,���,���,0..n,0..n,���,���,0..n,0..n,0..n,���,0..n,���,0..n,���,���,���,���,���,���,���*,���*,���,���,���,���,���,���,���,���,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
Hn,both,block,���,0..n,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,���,���,���,���,���,���,���,���,���,���,���*,���*,���,���,���,���,���,���,���,���,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
H,both,block,���,0..1,0..1,���,���,0..1,0..1,���,���,���,0..n,0..n,���,���,���,���,���,���,���,���,���,���,���*,���*,���,���,���,���,���,���,���,���,���,���,0..1,���,���,0..1,0..1,���,���,���,0..1,0..1,0..1,���
Quote,1.7,inline,���,���,���,���,���,���,���,���,���,���,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,0..n,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
Note,1.7,inline,���,0..n,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,���,���,���,���,���,���,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
Reference,1.7,inline,���,���,���,���,���,���,0..n,���,���,0..n,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���*,���*,���,0..n,0..n,0..n,���,0..n,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
BibEntry,1.7,inline,���,���,���,���,���,���,���,���,���,���,���,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,���,���,���,���,���,���,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
Lbl,both,inline,���,���,0..n,���,���,0..n,0..n,���,���,0..n,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,���,0..n,0..n,0..n,0..n,���,���,���,���,���,���,���,���,0..n,���,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
Code,1.7,inline,���,0..n,0..n,���,���,0..n,0..n,���,���,���,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,���*,���,���,���,���,���,���,���,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
Span,both,inline,���,���,���,���,���,���,���,���,���,���,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,0..n,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
Link,both,grouping!block!inline,���,0..n,0..n,���,���,0..n,0..n,���,���,���,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,0..n,���,���,0..n,0..n,0..n,���,0..n,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
Annot,both,grouping!block!inline,���,0..n,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,0..n,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
Form,both,grouping!block!inline,���,0..n,0..n,���,���,0..n,0..n,���,���,���,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,0..n,���,0..n,���*,���*,���,���,0..n,0..n,0..n,���,0..n,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
Ruby,both,inline,���,���,���,���,���,���,���,���,���,���,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,���,���,���,���,���,���,���,���,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
RB,both,inline,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,[a],���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���
RT,both,inline,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,[a],���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���
RP,both,inline,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,[a],���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���
Warichu,both,inline,���,���,���,���,���,���,���,���,���,���,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,���,���,���,���,���,���,���,���,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
WT,both,inline,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,[b],���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���
WP,both,inline,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,[b],���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���
L,both,block!inline,���,0..n,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,���,0..n,���,���,0..n,���,���,���,���,���,���*,���*,���*,���,���,���,���,���,���,���,0..n,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
LI,both,in L,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���
LBody,both,in LI,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���
Table,both,block,���,0..n,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,���,0..n,���,���,0..n,���,���,���,���,���,���*,���*,���*,���,���,���,���,���,���,���,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
TR,both,Table,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,0..n,0..n,0..n,���,���,���,���
TH,both,Table,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���
TD,both,Table,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���
THead,both,Table,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..1,���,���,���,���,���,���,���,���,���,���
TBody,both,Table,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���
TFoot,both,Table,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..1,���,���,���,���,���,���,���,���,���,���
Caption,both,grouping!block,���,���,0..n,���,���,0..n,0..1,���,0..1,���,0..n,0..n,���,���*,���,���,���,���,���,���,���,���,���*,���*,0..1,���,���,���,���,���,���,���,0..1,���,0..1,0..1,���,���,���,���,���,���,���,0..1,0..1,���
Figure,both,grouping!block!inline,���,0..n,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,���*,���,���,���,���,���,���,c,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
Formula,both,grouping!block!inline,���,0..n,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,0..n,���,���,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,���*,���,���,���,���,���,���,���,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
MC,both,---,���,���,���,���,���,���,0..n,���,���,���,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,���,���,0..n,���,���,���,0..n,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���
%</parent-child>
%    \end{macrocode}
% \section{The parent-child rules for pdf =2.0}
% This csv contains the parent-child matrix for pdf = 2.0.
% The values are currently the strings used in the PDF reference.
% This will perhaps change in future.
%    \begin{macrocode}
%<*parent-child-2>
%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2024-09-16} {0.99f}
,,,StructTreeRoot,Document,DocumentFragment,Art,Part,Div,Sect,Aside,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Title,Sub,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Em,Strong,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,FENote,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,math,mathml,Artifact,MC
Document,both,document level,1,0..n,0..n,���,���,���,���,0..n,0..n,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���
DocumentFragment,2.0,document level,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,���,���,���,0..n,���,���,���,���*,���,���,���,���,���,���,���*,���,���,���,���*,���*,���,���,���,���,���,���,���,���,���*,���,���,���,���,���,���,���,���,���,���,���*,���,���,���,���,0..n,���
Art,1.7,grouping,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,���,���,0..n,���,���,���,0..n,���,���,���,0..1,0..1,���,���,���,���,���,0..n,0..n,���,���,���,���,���,���,���,���,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,���,���,���,0..n,���
Part,both,grouping,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,0..n,���,0..n,0..n,0..n,���,���,0..n,���,0..n,���,���,���,���,0..n,���,���,���,���*,���*,���*,���,���,���,���,���,���,���,0..n,���,���,0..n,���,���,���,���,���,���,���,0..n,0..n,0..n,���,���,0..n,���
Div,both,grouping,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,0..n,���,���,0..n,���,0..n,���,���,���,���,0..n,���,���,���,0..n,0..n,0..n,���,���,���,���,���,���,���,0..n,���,0..n,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
Sect,both,grouping,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,���,���,0..n,0..n,���,���,���,0..n,���,���,���,0..1,0..1,���,���,���,���,���,0..n,0..n,���,���,���,���,���,���,���,���,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,���,���,���,0..n,���
Aside,2.0,grouping,���,0..n,0..n,0..n,���,���,0..n,���,���,���,���,���,���,0..n,0..n,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���*,���*,���,���,���,���,���,���,���,���,0..n,���,���,0..n,���,���,���,���,���,���,���,0..n,0..n,0..n,���,���,0..n,���
BlockQuote,1.7,grouping?,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,���,���,���,0..n,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���*,���*,���,���,���,���,���,���,���,���,0..n,���,���,0..n,���,���,���,���,���,���,���,0..n,0..n,0..n,���,���,0..n,���
NonStruct,both,grouping,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,���,0..n,���
TOC,1.7,grouping,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,0..n,0..n,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���
TOCI,1.7,TOC,���,���,���,���,���,���,���,���,���,���,0..n,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���
Index,1.7,grouping?,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,���,���,���,0..n,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
Private,1.7,grouping,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,���,0..n,���
P,both,block,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,0..n,���,���,0..n,���,0..n,���,���,���,���,���,���,���,���,���*,���*,���,���,���,���,���,���,���,���,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
Hn,both,block,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,���,���,0..n,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���*,���*,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
H,both,block,���,0..1,0..1,0..1,���,���,0..1,0..1,0..1,���,���,���,0..n,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���*,���*,���,���,���,���,���,���,���,���,���,���,���,0..1,���,���,0..1,0..1,���,���,���,0..1,0..1,0..1,���,���,0..1,���
Title,2.0,grouping!block,���,0..n,0..n,0..n,���,���,0..n,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���*,���*,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���
Sub,2.0,inline,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,0..n,0..n,���,���,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,0..n,0..n,0..n,���,���,0..n,���,���,���,���,���,���,���,0..n,���*,0..n,���,���,0..n,���
Quote,1.7,inline,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,0..n,0..n,0..n,0..n,���,���,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,0..n,0..n,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
Note,1.7,inline,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,���,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,���,���,���,���,���,���,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
Reference,1.7,inline,���,���,���,���,���,���,���,0..n,0..n,���,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���*,���*,���,0..n,0..n,0..n,���,0..n,0..n,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
BibEntry,1.7,inline,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,0..n,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,���,���,���,���,���,���,���,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
Lbl,both,inline,���,���,���,0..n,���,���,0..n,0..n,0..n,���,���,0..n,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,���,0..n,0..n,0..n,0..n,0..n,0..n,���,���,���,���,���,���,���,0..n,���,0..n,���,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
Code,1.7,inline,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,���,���,���,0..n,0..n,0..n,0..n,0..n,���,���,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,���*,���,���,���,���,���,���,���,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
Em,2.0,inline,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,0..n,0..n,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
Strong,2.0,inline,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,0..n,0..n,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
Span,both,inline,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,0..n,0..n,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
Link,both,grouping!block!inline,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,���,���,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,0..n,���,���,0..n,0..n,0..n,���,0..n,0..n,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
Annot,both,grouping!block!inline,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,���,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,0..n,0..n,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
Form,both,grouping!block!inline,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,���,���,���,0..n,0..n,0..n,0..n,0..n,���,���,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,���*,���*,���,���,0..n,0..n,0..n,���,0..n,0..n,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
Ruby,both,inline,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,0..n,0..n,0..n,0..n,���,���,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,���,���,���,���,���,���,���,���,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
RB,both,inline,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,[a],���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���
RT,both,inline,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,[a],���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���
RP,both,inline,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,[a],���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���
Warichu,both,inline,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,0..n,0..n,0..n,0..n,���,���,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,���,���,���,���,���,���,���,���,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
WT,both,inline,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,[b],���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���
WP,both,inline,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,[b],���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���
FENote,2.0,grouping!block!inline,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,���,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,0..n,���,���,���,���,���,���,���,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
L,both,block!inline,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,���,���,0..n,0..n,0..n,0..n,���,0..n,���,���,0..n,���,���,���,���,���,���,���,���*,���*,���*,���,���,���,���,���,���,���,0..n,0..n,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
LI,both,in L,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���
LBody,both,in LI,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���
Table,both,block,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���,���,0..n,���,���,���,���,���,���,���,���*,���*,���*,���,���,���,���,���,���,���,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
TR,both,Table,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,0..n,0..n,0..n,���,���,���,���,���,0..n,���
TH,both,Table,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,0..n,���
TD,both,Table,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,0..n,���
THead,both,Table,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..1,���,���,���,���,���,���,���,���,���,���,���,0..n,���
TBody,both,Table,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,0..n,���
TFoot,both,Table,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..1,���,���,���,���,���,���,���,���,���,���,���,0..n,���
Caption,both,grouping!block,���,���,���,0..n,���,���,0..n,0..1,0..1,���,0..1,���,0..n,0..n,0..1,���,���,���*,���,���,���,���,���,���,���,���,���,���,���*,���*,0..1,���,���,���,���,���,���,���,���*,0..1,���,0..1,0..1,���,���,���,���,���,���,���,0..1,0..1,���,���,0..n,���
Figure,both,grouping!block!inline,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,���,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,���*,���,���,���,���,���,���,c,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
Formula,both,grouping!block!inline,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,���,���,0..n,0..n,0..n,0..n,0..n,0..n,���,���,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,���*,���,���,���,���,���,���,���,0..n,���,���,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,���,0..n,���
Artifact,2.0,grouping!block!inline,���,0..n,0..n,0..n,���,���,0..n,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,0..n,0..n,0..n,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,���,0..n,���
math,2.0,?,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,���,���,0..n,���
mathml,2.0,?,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,���,0..n,0..n,0..n,���
MC,both,---,���,���,���,���,���,���,���,0..n,0..n,���,���,���,���,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,���,���,���,0..n,���,���,0..n,���,0..n,0..n,���,���,0..n,0..n,���,���,���,0..n,0..n,0..n,���,0..n,0..n,���
%</parent-child-2>
% \end{implementation}
% \PrintIndex