| 1 | [[PageOutline(1-4,,pullout)]] |
| 2 | |
| 3 | [wiki:echo-schema ECHO-Schema], [wiki:echo-schema/overview 1. Überblick], [wiki:echo-schema/usage-guide 2. Usage Guide], [wiki:echo-schema/implementation 3. Umsetzung] |
| 4 | |
| 5 | == 2. Usage Guide |
| 6 | |
| 7 | Eine erste Version des Usage Guide für das Schema: [source:trunk/papers/documentation/usage_guide.pdf PDF] |
| 8 | (Stand April 2010; TO DO: aus LaTeX in das Wiki übertragen, aktualisieren) |
| 9 | |
| 10 | === General |
| 11 | |
| 12 | Design decisions: |
| 13 | * one schema for all texts |
| 14 | * modules should be independent |
| 15 | * tags in the DESpecs should have some counterpart in the Schema, if possible |
| 16 | * however, do not mimic the DESpecs structure |
| 17 | |
| 18 | Standard suffixes as in xhtml: |
| 19 | * .attrib (defined in echo-attribute) |
| 20 | * .datatype (defined in echo-datatype) |
| 21 | * .model (defined in echo-content) |
| 22 | * .class (defined in several modules) |
| 23 | |
| 24 | IDs are expected, but XML texts should also validate without IDs |
| 25 | |
| 26 | === Informationsquellen und minimales Schema |
| 27 | |
| 28 | Der Kern des Schemas: |
| 29 | "(--)" bedeutet: nicht minimal, aber man bekommt etwas dafür, was über die optische Anzeige des Textes hinausgeht |
| 30 | |
| 31 | || Ebene || minimal || China || Modul || Element || |
| 32 | || || || || || || |
| 33 | || Grobstruktur || + || -- || echo-start || <echo> || |
| 34 | || || + || -- || echo-metadata || <metadata> || |
| 35 | || || +/-- || -- || echo-metadata || Metadaten || |
| 36 | || || + || -- || echo-div || <text> || |
| 37 | || || || || || || |
| 38 | || Mittelstruktur || (--) || + || echo-div || <div index>, <div toc> || |
| 39 | || || (--) || -- || echo-div || <div chapter> etc. || |
| 40 | || || || || || || |
| 41 | || Feinstruktur || + || + || echo-block || <head>, <p>, <note> || |
| 42 | || || + || -- || echo-block || <s> || |
| 43 | || || -- || + || echo-block-scholarly || <quote> || |
| 44 | || || -- || -- || echo-block-scholarly || <set-off> || |
| 45 | || || || || || || |
| 46 | || Text || -- || + || echo-content || <emph> || |
| 47 | || || (--) || -- || echo-content || <reg> || |
| 48 | || || (--) || -- || echo-content-scholarly || <foreign>, <ref> || |
| 49 | || || -- || -- || echo-content-scholarly || <sic>, <set-off>, <q> || |
| 50 | || || || || || || |
| 51 | || Hilfsmodule || + || n/a || echo-attribute || -- || |
| 52 | || || + || n/a || echo-datatype || -- || |
| 53 | || || || || || || |
| 54 | || F: Figures || -- || + || echo-figure || <figure>, <caption> etc. || |
| 55 | || F: Handwritten || -- || + || echo-handwritten || <handwritten> || |
| 56 | || F: Chinese text || -- || + || echo-chinese-text || <head ti>, <p @indent>, <p @ics>, <pb @ics> || |
| 57 | || F: Textflows || -- || + || echo-textflows || <head @flow>, <p @flow>, <div multiflow @flows> || |
| 58 | || F: Tables || -- || + || echo-import-xhtml || <xhtml:table> || |
| 59 | || F: Lists || -- || -- || echo-import-xhtml || <xhtml:ul> etc. || |
| 60 | || F: Floats || -- || -- || echo-float || <div float> || |
| 61 | || F: Images || -- || -- || echo-figure || <image> || |
| 62 | || || || || || || |
| 63 | || T: Milestones || (--) || + || echo-milestone || <pb> (auch F), <lb>, <cb> || |
| 64 | || T: Corruptions || -- || + || echo-gap || <gap>, <unsure> || |
| 65 | || || -- || + || echo-de || <de:unknown>, <de:wrong> || |
| 66 | || T: Chinese notes || -- || + || echo-chinese-text || <lb halfline> || |
| 67 | || T: Floats || -- || + || echo-float || <anchor> || |
| 68 | || T: numbers etc. || (--) || -- || echo-mathematics || <num>, <var> || |
| 69 | || T: formulas || (--) || -- || echo-import-mathml || <mml:math> || |
| 70 | || T: Verse || -- || -- || echo-textflows || <lb @label> || |
| 71 | || T: Images || -- || -- || echo-figure || <image> || |
| 72 | || T: Gis || -- || -- || echo-gis || <place>, <time> || |
| 73 | || || || || || || |
| 74 | || G: Gis || -- || -- || echo-gis || <dcterms:temporal>, <dcterms:spatial> || |
| 75 | |
| 76 | |
| 77 | === Übersicht über die Module |
| 78 | |
| 79 | * [source:trunk/schema/schema/echo/echo-echo.rnc echo] ist die Haupt-Datei des Schemas. Hier werden alle Module geladen. |
| 80 | |
| 81 | * [source:trunk/schema/schema/echo/modules/echo-echo-start.rnc echo-start], [source:trunk/schema/schema/echo/modules/echo-echo-metadata.rnc echo-metadata], [source:trunk/schema/schema/echo/modules/echo-echo-div.rnc echo-div], [source:trunk/schema/schema/echo/modules/echo-echo-block.rnc echo-block], [source:trunk/schema/schema/echo/modules/echo-echo-block-scholarly.rnc echo-block-scholarly] definieren die Struktur des XML-Dokuments bis vom root element `<echo>` bis zum Text-Level: |
| 82 | {{{ |
| 83 | <echo> echo-start.rnc |
| 84 | <metadata> echo-metadata.rnc |
| 85 | <text> echo-div.rnc |
| 86 | <div> - " - |
| 87 | <head> echo-block.rnc |
| 88 | <p> - " - |
| 89 | <s> - " - |
| 90 | <note> - " - |
| 91 | }}} |
| 92 | * [source:trunk/schema/schema/echo/modules/echo-echo-start.rnc echo-start]: Zum root element <echo> gibt es kein Gegenstück in den DESpecs. Es muss in das Dokument eingefügt werden. |
| 93 | * [source:trunk/schema/schema/echo/modules/echo-echo-metadata.rnc echo-metadata]: Zu <metadata> und allen darin enthaltenen Metadaten gibt es kein Gegenstück in den DESpecs. <metadata> und einige Metadaten sind notwendig und müssen in das Dokument eingefügt werden. Andere Metadaten sind optional. |
| 94 | * [source:trunk/schema/schema/echo/modules/echo-echo-div.rnc echo-div]: Zu <text> und <div> gibt es ebenfalls kein Gegenstück in den DESpecs. <text> ist notwendig und muss in das Dokument eingefügt werden. <div> kann weggelassen werden. |
| 95 | * [source:trunk/schema/schema/echo/modules/echo-echo-block.rnc echo-block], [source:trunk/schema/schema/echo/modules/echo-echo-block-scholarly.rnc echo-block-scholarly]: <head> und <p> haben direkte Gegenstücke in den DESpecs. <note> hat die Gegenstücke <mgl>, <mgr> und <fn>. Das Element <s> hat kein Gegenstück in den DESpecs. Es muss aber in das Dokument eingefügt werden, um das Dokument valide zu machen. |
| 96 | |
| 97 | * [source:trunk/schema/schema/echo/modules/echo-echo-content.rnc echo-content], [source:trunk/schema/schema/echo/modules/echo-echo-content-scholarly.rnc echo-content-scholarly] definieren das Inline-Modell für Text. Der Text muss nicht weiter ausgezeichnet werden, um ein valides Dokument zu haben. |
| 98 | |
| 99 | * [source:trunk/schema/schema/echo/modules/echo-echo-attribute.rnc echo-attribute], [source:trunk/schema/schema/echo/modules/echo-echo-datatype.rnc echo-datatype] definieren Standard-Attribute und -Datentypen. Sie werden von allen Modulen verwendet. |
| 100 | |
| 101 | * [source:trunk/schema/schema/echo/modules/echo-echo-gap.rnc echo-gap], [source:trunk/schema/schema/echo/modules/echo-echo-de.rnc echo-de] |
| 102 | * [source:trunk/schema/schema/echo/modules/echo-echo-figure.rnc echo-figure] |
| 103 | * [source:trunk/schema/schema/echo/modules/echo-echo-handwritten.rnc echo-handwritten] |
| 104 | * [source:trunk/schema/schema/echo/modules/echo-echo-milestone.rnc echo-milestone] |
| 105 | * [source:trunk/schema/schema/echo/modules/echo-echo-float.rnc echo-float] |
| 106 | * [source:trunk/schema/schema/echo/modules/echo-echo-mathematics.rnc echo-mathematics] |
| 107 | * [source:trunk/schema/schema/echo/modules/echo-echo-chinese-text.rnc echo-chinese-text] |
| 108 | * [source:trunk/schema/schema/echo/modules/echo-echo-gis.rnc echo-gis] |
| 109 | * [source:trunk/schema/schema/echo/modules/echo-echo-textflows.rnc echo-textflows] |
| 110 | * [source:trunk/schema/schema/echo/xhtml/echo-echo-import-xhtml.rnc echo-import-xhtml] |
| 111 | * [source:trunk/schema/schema/echo/modules/echo-echo-import-mathml.rnc echo-import-mathml] |
| 112 | |
| 113 | === echo-start |
| 114 | |
| 115 | <text>: The default type is "free". |
| 116 | |
| 117 | === echo-metadata |
| 118 | |
| 119 | [source:trunk/schema/schema/echo/modules/echo-echo-metadata.rnc echo-metadata]: There is no counterpart of the metadata in the DESpecs. |
| 120 | |
| 121 | ==== dcterms |
| 122 | |
| 123 | * <dcterms:identifier> |
| 124 | |
| 125 | Bibliographisch: |
| 126 | * <dcterms:title> +, <dcterms:alternative> * |
| 127 | * <dcterms:alternative> refines <dcterms:title> |
| 128 | * <dcterms:creator> +, <dcterms:contributor> * |
| 129 | * <dcterms:creator> refines <dcterms:contributor> |
| 130 | * <dcterms:publisher> * |
| 131 | * <dcterms:language>+ |
| 132 | * <dcterms:date> ? |
| 133 | * <dcterms:description> * |
| 134 | |
| 135 | Lizenz: |
| 136 | * <dcterms:rights> *, <dcterms:license> *, <dcterms:accessRights> |
| 137 | * <dcterms:license> may be text or a URI. |
| 138 | * <dcterms:license> and <dcterms:accessRights> refine <dcterms:rights> |
| 139 | * <dcterms:rightsHolder> * |
| 140 | * <dcterms:provenance> * |
| 141 | * <dcterms:dateCopyrighted> ? |
| 142 | * <dcterms:dateCopyrighted> refines <dcterms:date> |
| 143 | |
| 144 | Dabei meint + "mindestens einmal", * "beliebig oft", ? "höchstens einmal". Ohne Symbol heißt "genau einmal". Verpflichtend sind also: |
| 145 | * <dcterms:identifier> |
| 146 | * <dcterms:title> |
| 147 | * <dcterms:creator> |
| 148 | * <dcterms:language> |
| 149 | * <dcterms:accessRights> |
| 150 | |
| 151 | Zu "refines": creator refines contributor, d.h. ein creator ist automatisch auch ein contributor; aber ein contributor ist nicht unbedingt ein creator. Anders gesagt: A refines B heißt, A ist eine Teilmenge von B. Anderes Beispiel: Eiche refines Baum. |
| 152 | |
| 153 | ==== other metadata |
| 154 | |
| 155 | * <font>, <font-family> |
| 156 | * echo.font-families <-- "song style" in echo-chinese-text |
| 157 | * <echolink>, <echodir> |
| 158 | |
| 159 | In general, there is no counterpart for <text> or <div> in the DESpecs. |
| 160 | |
| 161 | === echo-div |
| 162 | |
| 163 | DESpecs nach Schema: |
| 164 | * <ind> --> <div type="index"> |
| 165 | * <toc> --> <div type="toc"> |
| 166 | * other types: |
| 167 | * if the type is in the standard list: type="definition" type-free="界" |
| 168 | * if it is not in the standard list: type="other" type-free="界/definition" |
| 169 | |
| 170 | Liste aller div-Typen, die auf besondere Weise behandelt werden: |
| 171 | * u.a. float |
| 172 | * aber auch multiflow, parallel; chapter, section; ... |
| 173 | |
| 174 | === echo-block |
| 175 | |
| 176 | * Headings: <head> |
| 177 | * <h> --> <head> |
| 178 | * Semantic units: <s> |
| 179 | * (<s> is not in the raw text) |
| 180 | * Floating objects in <s> (all <note>, <handwritten>, <table>; most <figure>; some <math>) are replaced by <anchor> and moved to a <div type="float"> directly behind the <p>. The new <div type="float"> contains all <note>, <handwritten>, <figure>, <table>, <math> that have been moved in this <div>. |
| 181 | * Notes: <note> |
| 182 | * <mgl> --> <anchor type="note"/>, <note position="left"> |
| 183 | * <mgr> --> <anchor type="note"/>, <note position="right"> |
| 184 | * echo.note.content = echo.flexible.model to allow for different kinds of notes |
| 185 | |
| 186 | === echo-block-scholarly |
| 187 | |
| 188 | * <set-off> |
| 189 | |
| 190 | === echo-content |
| 191 | |
| 192 | Most elements in this module have no counterpart in the Specs and will be added in the post-processing stage. |
| 193 | |
| 194 | ==== <emph> |
| 195 | |
| 196 | <emph> for emphasis (should be used only when something is not tagged otherwise) |
| 197 | |
| 198 | The tags `_ _` (for italics), `<bf>`, `<sc>`, `<_>`, `<^>`, `<ul>`, `<ol>`, `<st>`, `<red>`, `<sp>` in the Specs are normally represented by <emph style="...">. The tags can be combined, e.g. <emph style="it bf"> for bold italics. For a whole <s> or <p>, the style attribute is there (or even higher in the hierarchy). |
| 199 | |
| 200 | ==== <reg> |
| 201 | |
| 202 | Only the original text is regularized using echo.reg; typing conventions and additional typos in the transcription are silently resolved. |
| 203 | |
| 204 | list of typing conventions in the DESpecs which are silently resolved: |
| 205 | * `$` --> ſ |
| 206 | * `\'q` --> q + combining diacritic (U+0300 etc.) and normalization form C, for example q̀ |
| 207 | * ... |
| 208 | |
| 209 | examples: |
| 210 | {{{ |
| 211 | <reg orig="ijs" type="lig">ijs</reg> |
| 212 | <reg orig="sphęrae" type="simple">sphaerae</reg> |
| 213 | <reg orig="sphęrae">sphaerae</reg> |
| 214 | <reg orig="sphę rae" type="simple">sphae<lb/>rae</reg> |
| 215 | <reg orig="eiuſdẽ" type="context">eiuſdem</reg> |
| 216 | <reg orig="eſsẽt" type="context">eſsent</reg> |
| 217 | <reg orig="lib." type="context">liber</reg> |
| 218 | in <reg orig="lib." type="context">libro</reg> |
| 219 | <reg orig="qñ" type="wordlist">quando</reg> |
| 220 | <reg orig="tm̃" type="wordlist/context">tamen</reg> |
| 221 | <reg orig="tm̃" type="wordlist/context">tantum</reg> |
| 222 | <reg orig="Arist." type="unresolved">Arist.</reg> |
| 223 | <reg orig="inrerrogas" type="typo" resp="paul">interrogas</reg> |
| 224 | <reg orig="quem" type="conjecture" resp="paul">quam</reg> |
| 225 | <reg orig="re ferre" type="conjecture" resp="paul">re<lb/>ferre</reg> |
| 226 | <reg orig="ꝑꝑ" type="unknown">ꝑꝑ</reg> |
| 227 | <reg orig="ꝑꝑ" type="conjecture" resp="paul">prope</reg> |
| 228 | }}} |
| 229 | note: |
| 230 | * the default type is "simple", e.g. <reg orig="sphęrae">sphaerae</reg> |
| 231 | * Beispiel veraltet! |
| 232 | * Beachte: der type kann zurzeit nicht weggelassen werden, und das ist auch gut so, falls man nämlich die <reg> automatisiert nachbearbeiten muss. |
| 233 | * the first exampe ijs applies only if `ij` is not silently resolved |
| 234 | * missing hyphens are indicated by a soft hyphen "" rather than <reg>; however, you may use "conjecture" in non-trivial cases |
| 235 | * the generic "abbr" may be used for any abbreviation |
| 236 | * abbreviations are not resolved within <ref>, e.g. ex <ref id="N400238">.19. lib. quinti Eu-<lb/>clid.</ref> (wirklich?) |
| 237 | |
| 238 | ==== Text-Modelle |
| 239 | |
| 240 | Avoiding Recursions: Wie ist die Inline-model-Hierarchie? |
| 241 | * inline anfangen können: s head caption description variables, evtl. note handwritten xhtml |
| 242 | * in inline, und Inhalt inline (mit Rekursionsgefahr): s-set-off, ref, foreign, emph, q |
| 243 | * in inline, und Inhalt plaintext: reg, sic, num, var, place, time |
| 244 | * in inline, und inhalt es selbst: mml.math |
| 245 | * in plaintext, und Inhalt plaintext: gibt es nicht |
| 246 | * in plaintext, Inhalt text: unsure (Inhalt in plaintext ändern?) |
| 247 | * in plaintext, leer: milestones, anchor, gap, unknown, wrong |
| 248 | |
| 249 | Schematron-Regel, die Rekursionen aufspürt, d.h. |
| 250 | * z.B. <ref> in <ref> |
| 251 | * z.B. <ref> in <foreign> in ... in <ref> |
| 252 | also zusammen: kein Element aus dieser Gruppe darf sich sich selbst als ancestor haben. |
| 253 | |
| 254 | |
| 255 | === echo-content-scholarly |
| 256 | |
| 257 | * <ref> |
| 258 | * <sic> for mistakes in the original text: |
| 259 | * o<!> --> o<de:wrong/> --> <sic comment="n missing">o</sic> (see the discussion in echo-de) |
| 260 | * <foreign>: Foreign text is not marked in the transcription, i.e. <foreign> cannot be inserted automatedly without additional linguistic knowledge. |
| 261 | * Exception: <rom>sentence</rom> --> <foreign xml:lang="la">sentence</foreign> with language "la" as a first guess, and similarly in Chinese text. |
| 262 | * (echo.foreign has echo.core.attrib, but echo.language.attrib is obligatory) |
| 263 | * Quotations: |
| 264 | * <q> is for short inline quotes. Note that echo.delimiter-attrib is optional; however, please use it if possible |
| 265 | * <quote> (echo.quote) for longer inline quotes (one-sentence quote are <quote><s>Sentence.</s></quote> and not <s><q>Sentence.</q></s>) |
| 266 | * <quote> (echo.blockquote) for blockquotes |
| 267 | * Es kann keine Rekursionen von quote-Elementen geben. |
| 268 | |
| 269 | === echo-gap |
| 270 | |
| 271 | * @@ --> <gap extent="2"/> |
| 272 | * <gap> --> <gap/> |
| 273 | * x< ? > --> x<unsure/> or <unsure>x</unsure> (this can not be fully automated) |
| 274 | |
| 275 | === echo-de |
| 276 | |
| 277 | This module contains tags from the DESpecs that will be removed in the course of processing. We use the namespace "de" for the corresponding elements in the xml: |
| 278 | * <001> --> <de:unknown code="001"/> (bzw. wir haben eine Tabelle, was gemeint ist) |
| 279 | * <!> --> <de:wrong/> --> remove or <sic> |
| 280 | |
| 281 | === echo-figure |
| 282 | |
| 283 | * <fig> --> <figure>, eventuell mit <anchor/> |
| 284 | * <cap> --> <caption> |
| 285 | * <desc> --> <description> |
| 286 | * <var> --> <variables> |
| 287 | |
| 288 | === echo-handwritten |
| 289 | |
| 290 | In its simplest form, <handwritten> is just an empty tag. Nonetheless, within <s> it is replaced by <anchor> and moved to <div type="float"> to cater for scholarly additions, i.e. it is part of echo.float.class and not of echo.inline.class |
| 291 | |
| 292 | * <hd> --> <handwritten/>, eventuell mit <anchor/> |
| 293 | |
| 294 | === echo-float |
| 295 | |
| 296 | === echo-milestone |
| 297 | |
| 298 | ==== line breaks |
| 299 | |
| 300 | [Dieser Abschnitt ist sicher veraltet!] |
| 301 | |
| 302 | <lb/> can be in plaintext (<s>, <head>, some <note>, all members of echo.inline.class) and <p> |
| 303 | |
| 304 | in <p>: since a paragraph is split into <s>, most line breaks are actually in <s>. However: |
| 305 | * <lb/></s><s> and </s><s><lb/> shouldn't occur (--> </s><lb/><s> [and space before </s>?]) |
| 306 | * <lb/></s></p> shouldn't occur at all |
| 307 | |
| 308 | in <s> (and similarly for <head> and the members of echo.inline.class): |
| 309 | * line break --> <lb/>; no space before <lb/>; no line break after <lb/>; space after <lb/> if there is a hyphen before <lb/> (no automated space if the hyphen is missing) |
| 310 | |
| 311 | examples: |
| 312 | * <s>亦<lb/>能使人無疑。</s> |
| 313 | * <note>Plutar <lb/>chus in <lb/>commẽ <lb/>tario de <lb/>dæmo-<lb/>nio So-<lb/>cratis.</note> |
| 314 | |
| 315 | We use the normal hyphen U+002D instead of the soft hyphen U+00AD because the soft hyphen is not displayed in the xhtml. --> ? |
| 316 | |
| 317 | ==== column breaks |
| 318 | |
| 319 | * <col 1>...</col><col 2>...</col> --> ...<cb/>... |
| 320 | |
| 321 | ==== page breaks |
| 322 | |
| 323 | [Dieser Abschnitt ist sicher veraltet!] |
| 324 | |
| 325 | <pb/> can occur wherever <lb/> occurs (although it will be rare in <head>), and <div> |
| 326 | * <pb vii><rh>xyz</rh> --> <pb n="10" o="vii" o-norm="7" rhead="xyz" xlink:href="URI"/> |
| 327 | * <pb 一六七a> --> <pb n="..." o="一六七a" o-norm="167a" xlink:href="URI"/> |
| 328 | |
| 329 | === echo-attribute |
| 330 | |
| 331 | In echo-attribute werden Standard-Attribute definiert. |
| 332 | |
| 333 | Text-Eigenschaften: |
| 334 | * echo.language.attrib (@xml:lang) |
| 335 | * echo.style.attrib (@style): |
| 336 | * direkt in: <text>; <emph>, <num>, <var>, <w>, <place>, <time>, <person> |
| 337 | * via echo.core.attrib in: <div>, <p>, <quote>, <note>, <handwritten>, <entry>; <reg>, <foreign>, <ref>, <q> |
| 338 | * via echo.inline.attrib in: <head>, <s>, <caption>, <description>, <variables>, <form>, <translation>, <pronunciation> |
| 339 | * in xhtml:* als @class |
| 340 | * echo.id.attrib (@xml:id) |
| 341 | * echo.core.attrib fasst echo.language.attrib, echo.style.attrib und echo.id.attrib zusammen |
| 342 | * echo.space.attrib (@xml:space="preserve") |
| 343 | * echo.inline.attrib ist echo.core.attrib plus echo.space.attrib |
| 344 | |
| 345 | Div-Attribute: |
| 346 | * echo.n.attrib (@n) |
| 347 | * echo.level.attrib (@level) |
| 348 | Notes: |
| 349 | * echo.symbol.attrib (@symbol) |
| 350 | Links: |
| 351 | * echo.file.attrib (@file) |
| 352 | * echo.internal-link.attrib (@xlink:href, @xlink:label, @xlink:type) |
| 353 | * echo.external-link.attrib (@xlink:href) |
| 354 | Zitate: |
| 355 | * echo.delimiter.attrib (@open, @close) |
| 356 | |
| 357 | === echo-datatype |
| 358 | |
| 359 | === echo-mathematics |
| 360 | |
| 361 | * number <num>: |
| 362 | * "vii" --> <num value="7">vii</num> |
| 363 | * "½" --> <num value="0.5">½</num> |
| 364 | * variable <var>: |
| 365 | * "AB" --> <var type="line">AB</var> (type ist optional) |
| 366 | |
| 367 | Eine Funktion von <num> und <var> ist es, den Inhalt vor der morphologischen Analyse zu verstecken. |
| 368 | |
| 369 | Note: The scope of echo.num and echo.var is very limited. More complex mathematics is expressed with MathML --> echo-import-mathml |
| 370 | |
| 371 | === echo-chinese-text |
| 372 | |
| 373 | * <ti> --> <head type="ti"> |
| 374 | * indentations in Chinese text: |
| 375 | * <p ii> --> <p indent="2char"> oder nur "2"? |
| 376 | * <p xx> --> <p indent="-2char"> |
| 377 | * (indent is deliberately not defined as style="valid css" because it may be semantically meaningful) |
| 378 | * Linien: |
| 379 | * <sl> --> <emph style="sl"> |
| 380 | * <dl> --> <emph style="dl"> |
| 381 | * <wl> --> <emph style="wl"> |
| 382 | * <cl> --> <emph style="cl"> |
| 383 | |
| 384 | Small text: |
| 385 | * in <p>: <sm> --> <small> |
| 386 | * everywhere else: <emph style="sm"> (<h>, rhead, <ti>, <toc>, etc.) |
| 387 | * `\\` --> <smlb/> |
| 388 | |
| 389 | (plus some manual corrections where this simple distinction doesn't fit, e.g. <sm>chen</sm>) |
| 390 | |
| 391 | === echo-gis |
| 392 | |
| 393 | Note: this module is still experimental. |
| 394 | |
| 395 | Beachte in diesem Modul definierte Metadaten |
| 396 | |
| 397 | === echo-textflows |
| 398 | |
| 399 | @flow is normally a number, or "footnote" |
| 400 | |
| 401 | === echo-import-xhtml |
| 402 | |
| 403 | The xhtml modules are part of the Jing distribution: |
| 404 | * [http://relaxng.org/ Relax NG Homepage] |
| 405 | * Thai Open Source: [http://www.thaiopensource.com/relaxng/ Relax NG], [http://www.thaiopensource.com/relaxng/xhtml/ xhtml modules] |
| 406 | * Jing and Trang at [http://code.google.com/p/jing-trang/ Google Code] |
| 407 | * xhtml modules in our local copy of the Jing distribution: [source:trunk/schema/thirdparty/jing-20091111/lib/xhtml/modules/basic-table.rng basic-table.rng], |
| 408 | [source:trunk/schema/thirdparty/jing-20091111/lib/xhtml/modules/list.rng list.rng], |
| 409 | [source:trunk/schema/thirdparty/jing-20091111/lib/xhtml/modules/attribs.rng attribs.rng], |
| 410 | [source:trunk/schema/thirdparty/jing-20091111/lib/xhtml/modules/datatypes.rng datatypes.rng] |
| 411 | |
| 412 | The original rng files can be converted into the Relax NG compact syntax using [http://www.thaiopensource.com/relaxng/trang-manual.html Trang]. Oxygen offers a GUI for this conversion. |
| 413 | |
| 414 | Diese Module übernehmen wir dann ohne weitere Änderungen. Alle Anpassungen werden in echo-import-xhtml gemacht. |
| 415 | |
| 416 | ==== xhtml-basic-table |
| 417 | |
| 418 | We ignore Block.class in xhtml-basic-table: The following lines replace |
| 419 | |
| 420 | "Block.class |= table" in xhtml-basic-table |
| 421 | |
| 422 | {{{ |
| 423 | echo.float.class |= xhtml.table |
| 424 | echo.anchor.types |= "table" |
| 425 | }}} |
| 426 | |
| 427 | ==== xhtml-list |
| 428 | |
| 429 | We ignore Block.class in xhtml-list: The following lines replace |
| 430 | |
| 431 | "List.class = ul | ol | dl", |
| 432 | |
| 433 | "Block.class |= List.class" |
| 434 | |
| 435 | {{{ |
| 436 | echo.float.class |= xhtml.ul | xhtml.ol | xhtml.dl |
| 437 | echo.anchor.types |= "ul" | "ol" | "dl" |
| 438 | }}} |
| 439 | |
| 440 | Note that xhtml:ul, xhtml:ol, xhtml:dl do not correspond to <ul>, <ol>, <dl> in the DESpecs! |
| 441 | |
| 442 | ==== xhtml-attribs |
| 443 | |
| 444 | We use the following xhtml elements: table, caption, tr, th, td; dl, dt, dd; ol, ul, li. |
| 445 | All these elements have Common.attrib (th and td via Cell.attrib). |
| 446 | xml:lang and class are already in Common.attrib, and we add xml:id { xsd:NCName } to it |
| 447 | (however, Common.attrib already includes the attribute id { xsd:ID }) |
| 448 | |
| 449 | ==== xhtml-datatypes ==== |
| 450 | |
| 451 | ==== xhtml-text ==== |
| 452 | |
| 453 | Dieses Modul wird nicht importiert. Stattdessen werden Inline.model und Flow.model durch echo.flexible.content ersetzt: |
| 454 | * Inline.model = echo.flexible.content |
| 455 | * Flow.model = echo.flexible.content |
| 456 | ursprüngliche Definitionen: |
| 457 | * Inline.model = (text | Inline.class)* |
| 458 | * Block.mix = Block.class |
| 459 | * Block.model = Block.mix+ |
| 460 | * Flow.model = (text | Inline.class | Block.class)* |
| 461 | |
| 462 | === echo-import-mathml |
| 463 | |
| 464 | Note: Simple mathematical terms, i.e. numbers and variables, are marked using echo.num and echo.var (defined in echo-mathematics). |
| 465 | |
| 466 | mml.math.content erlaubt beliebige Elemente <mml:*> innerhalb von <mml:math>. |
| 467 | |
| 468 | This placeholder code above is good enough for the moment. We simply assume that the MathML parts are well-formed. This is plausible since the MathML code is created from a LaTeX formula by a MathML-converter. |
| 469 | |
| 470 | In addition, Oxygen seems to have a separate validation engine for MathML. |
| 471 | |