diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/export-example.rng')
-rw-r--r-- | Master/texmf-dist/tex/context/base/export-example.rng | 377 |
1 files changed, 377 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/export-example.rng b/Master/texmf-dist/tex/context/base/export-example.rng new file mode 100644 index 00000000000..93b21ba50bb --- /dev/null +++ b/Master/texmf-dist/tex/context/base/export-example.rng @@ -0,0 +1,377 @@ +# author : Hans Hagen, PRAGMA-ADE, Hasselt NL +# copyright : PRAGMA ADE / ConTeXt Development Team +# license : see context related readme files +# comment : companion to context.mkiv + +# todo: check all content (not yet ok but a bit boring job) +# todo: add attributes +# todo: we need more | and less , +# +# validate with "rnv -c export-example.rng" + +namespace m = "http://www.w3.org/1998/Math/MathML" + +start = e_document + +# Because users can typeset anything the content is somewhat +# unpredictable so this is just an indication of what to expect. + +c_everything = + text + | c_inline + | e_verbatimblock + | e_lines + | e_itemgroup + | e_table + | e_tabulate + | e_register + | e_list + | e_section + | e_float + | e_formula + | e_combination + +c_inline = + text + | e_ignore + | e_metadata + | e_construct + | e_highlight + | e_verbatim + | e_description + | e_descriptionsymbol + | e_sorting + | e_synonym + | e_image + | e_mpgraphic + | e_math + | e_sub + | e_sup + | e_subsup + | e_link + | e_margintext + | e_margintextblock + +# We pass some relevant information via attributes. The detail attribute +# is common and provides information about the class or environment used. + +a_detail = attribute detail { + text +} + +# The document element is the root of all. + +e_document = element document { + c_everything * +} + +e_ignore = element ignore { + c_everything * +} + +e_metadata = element metadata { + element metavariable { + attribute name { text } ? + , text + } * +} + +e_section = element section { + a_detail ? + | ( + element sectiontitle { + c_inline * + } + , element sectionnumber { + c_inline * + } * + , element sectioncontent { + c_everything * + } + ) +} + +e_paragraph = element paragraph { + c_inline * +} + +e_p = element p { + c_inline * +} + +e_break = element break { + empty +} + +e_construct = element construct { + c_everything* +} + +e_highlight = element highlight { + c_inline* +} + +e_itemgroup = element itemgroup { + element item { + element itemtag { + c_inline * + } + } , + element itemcontent { + c_everything * + } +} + +e_combination = element combination { + element combinationpair { + element combinationcontent { + inline* + } , + element combinationcaption { + inline* + } + } +} + +e_description = element description { + element descriptiontag { + c_inline* + } , + element descriptioncontent { + c_inline* + } , + element descriptionsymbol { + c_inline* + } +} + +e_descriptionsymbol = element descriptionsymbol { + c_inline* +} + +e_verbatimblock = element verbatimblock { + element verbatimlines { + element verbatimline { + text + } * + } * +} + +e_verbatim = element verbatim { + text +} + +e_lines = element lines { + element line { + text + } * +} + +e_synonym = element synonym { + text +} + +e_sorting = element sorting { + text +} + +e_register = element register { + element registersection { + element registertag { + text + } ? + , + element registerentries { + ( + element registerentry { + text + } | + element registersee { + text + } + ), + ( + element registerpages { + element registerpage { + text + } * + } | + element registerpage { + text + } | + element registerpagerange { + element registerpage { + text + } , + element registerpage { + text + } + } + ) + } ? + } * +} + +e_table = element table { + element tablerow { + element tablecell { + c_inline * + } * + } * +} + +e_tabulate = element tabulate { + element tabulaterow { + element tabulatecell { + c_inline * + } * + } * +} + +e_list = element list { + element listitem { + element listtag { + text + } ? , + element listcontent { + text + } ? , + element listdata { + text + } ? , + element listpage { + text + } ? + } +} + +e_delimitedblock = element delimitedblock { + c_everything* +} + +e_delimited = element delimited { + c_inline +} + +e_subsentence = element subsentence { + c_inline +} + +e_float = element float { + element floatcaption { + element floatlabel { + text + } , + element floatnumber { + text + } , + element floattext { + c_inline + } + } , + element floatcontent { + c_inline + } +} + +e_image = element image { + empty +} + +e_mpgraphic = element mpgraphic { + empty +} + +e_formula = element formula { + element subformula { + element formulacontent { + e_math* + } + } , + element formulaset { + element formulacontent { + e_math* + } + } , + element formulacaption { + element formulalabel { + text + } , + element formulanumber { + text + } + } , + element formulacontent { + e_math* + } +} + +e_link = element link { + c_inline +} + +e_margintextblock = element margintextblock { + c_inline +} + +e_margintext = element margintext { + c_inline +} + +e_quantity = element quantity { + element unit { + text + } , + element number { + text + } +} + +e_unit = element unit { + text | + e_math +} + +e_sub = element sub { + c_inline +} + +e_sup = element sup { + c_inline +} + +e_subsup = element subsup { + c_inline, + c_inline +} + +# There are enough mathml dtd's out there so this is just a +# simplified placeholder. + +e_math_basics = + element m:mn | m:mi | m:mo | m:ms | m:merror | m:mtext { + text + } | + element m:mrow | m:msub | m:msup | m:msqrt | m:mfenced | m:maction { + e_math_basics * + } | + element m:msubsup | m:munder | m:mover | m:mfrac | m:mroot { + e_math_basics, + e_math_basics + } | + element m:munderover { + e_math_basics, + e_math_basics, + e_math_basics + } | + element m:mtable { + element m:mtr { + element m:mtd { + e_math_basics * + } * + } * + } + +e_math = element m:math { + e_math_basics * +} |