nora_mark 0.2beta3 → 0.2beta4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +5 -0
  3. data/Gemfile +2 -0
  4. data/README.md +17 -12
  5. data/example/nora-simple.css +52 -0
  6. data/example/noramark-reference-ja.nora +246 -0
  7. data/example/noramark-reference-ja_00001.xhtml +187 -0
  8. data/lib/nora_mark/html/{abstract_item_writer.rb → abstract_node_writer.rb} +3 -3
  9. data/lib/nora_mark/html/context.rb +3 -21
  10. data/lib/nora_mark/html/frontmatter_writer.rb +33 -0
  11. data/lib/nora_mark/html/generator.rb +122 -100
  12. data/lib/nora_mark/html/pages.rb +3 -9
  13. data/lib/nora_mark/html/paragraph_writer.rb +27 -23
  14. data/lib/nora_mark/html/tag_writer.rb +33 -34
  15. data/lib/nora_mark/html/writer_selector.rb +3 -3
  16. data/lib/nora_mark/node.rb +31 -0
  17. data/lib/nora_mark/parser.kpeg +133 -79
  18. data/lib/nora_mark/parser.kpeg.rb +1822 -1526
  19. data/lib/nora_mark/parser.rb +4 -23
  20. data/lib/nora_mark/version.rb +1 -1
  21. data/lib/nora_mark.rb +7 -2
  22. data/nora_mark.gemspec +1 -0
  23. data/spec/epub30-schemas/epub-nav-30.nvdl +16 -0
  24. data/spec/epub30-schemas/epub-nav-30.rnc +10 -0
  25. data/spec/epub30-schemas/epub-nav-30.sch +72 -0
  26. data/spec/epub30-schemas/epub-svg-30.nvdl +15 -0
  27. data/spec/epub30-schemas/epub-svg-30.rnc +15 -0
  28. data/spec/epub30-schemas/epub-svg-30.sch +10 -0
  29. data/spec/epub30-schemas/epub-xhtml-30.nvdl +15 -0
  30. data/spec/epub30-schemas/epub-xhtml-30.rnc +37 -0
  31. data/spec/epub30-schemas/epub-xhtml-30.sch +377 -0
  32. data/spec/epub30-schemas/epub30-catalog.xml +335 -0
  33. data/spec/epub30-schemas/media-overlay-30.nvdl +14 -0
  34. data/spec/epub30-schemas/media-overlay-30.rnc +46 -0
  35. data/spec/epub30-schemas/media-overlay-30.sch +9 -0
  36. data/spec/epub30-schemas/mod/datatypes.rnc +143 -0
  37. data/spec/epub30-schemas/mod/epub-mathml3-30.rnc +74 -0
  38. data/spec/epub30-schemas/mod/epub-prefix-attr.rnc +8 -0
  39. data/spec/epub30-schemas/mod/epub-ssml-attrs.rnc +11 -0
  40. data/spec/epub30-schemas/mod/epub-svg11-30.rnc +12 -0
  41. data/spec/epub30-schemas/mod/epub-svg11-re.sch +7 -0
  42. data/spec/epub30-schemas/mod/epub-switch.rnc +32 -0
  43. data/spec/epub30-schemas/mod/epub-trigger.rnc +17 -0
  44. data/spec/epub30-schemas/mod/epub-type-attr.rnc +7 -0
  45. data/spec/epub30-schemas/mod/epub-xhtml-mathml3-30.rnc +5 -0
  46. data/spec/epub30-schemas/mod/epub-xhtml-svg11-30.rnc +6 -0
  47. data/spec/epub30-schemas/mod/html5/LICENSE +23 -0
  48. data/spec/epub30-schemas/mod/html5/README +21 -0
  49. data/spec/epub30-schemas/mod/html5/html5-aria-30.rnc +105 -0
  50. data/spec/epub30-schemas/mod/html5/html5-attrib-30.rnc +44 -0
  51. data/spec/epub30-schemas/mod/html5/html5-document-30.rnc +44 -0
  52. data/spec/epub30-schemas/mod/html5/html5-edit-30.rnc +24 -0
  53. data/spec/epub30-schemas/mod/html5/html5-embed-30.rnc +155 -0
  54. data/spec/epub30-schemas/mod/html5/html5-forms-30.rnc +431 -0
  55. data/spec/epub30-schemas/mod/html5/html5-grouping-30.rnc +115 -0
  56. data/spec/epub30-schemas/mod/html5/html5-interactive-30.rnc +86 -0
  57. data/spec/epub30-schemas/mod/html5/html5-models-30.rnc +10 -0
  58. data/spec/epub30-schemas/mod/html5/html5-phrasing-30.rnc +134 -0
  59. data/spec/epub30-schemas/mod/html5/html5-script-30.rnc +164 -0
  60. data/spec/epub30-schemas/mod/html5/html5-sections-30.rnc +58 -0
  61. data/spec/epub30-schemas/mod/html5/html5-style-30.rnc +18 -0
  62. data/spec/epub30-schemas/mod/id-unique.sch +10 -0
  63. data/spec/epub30-schemas/mod/mathml/LICENSE +3 -0
  64. data/spec/epub30-schemas/mod/mathml/mathml3-common.rnc +84 -0
  65. data/spec/epub30-schemas/mod/mathml/mathml3-content.rnc +373 -0
  66. data/spec/epub30-schemas/mod/mathml/mathml3-presentation.rnc +536 -0
  67. data/spec/epub30-schemas/mod/mathml/mathml3-strict-content.rnc +60 -0
  68. data/spec/epub30-schemas/mod/security/LICENSE +4 -0
  69. data/spec/epub30-schemas/mod/security/Lenient-Encryption11-ghc.rnc +41 -0
  70. data/spec/epub30-schemas/mod/security/Lenient-Encryption11.rnc +39 -0
  71. data/spec/epub30-schemas/mod/security/Lenient-Signature-exclusiveC14N.rnc +25 -0
  72. data/spec/epub30-schemas/mod/security/Lenient-Signature11-properties-exclusiveC14N.rnc +32 -0
  73. data/spec/epub30-schemas/mod/security/Lenient-Signature11-properties.rnc +30 -0
  74. data/spec/epub30-schemas/mod/security/Lenient-Signature11.rnc +28 -0
  75. data/spec/epub30-schemas/mod/security/Strict-Encryption.rnc +27 -0
  76. data/spec/epub30-schemas/mod/security/Strict-Signature.rnc +22 -0
  77. data/spec/epub30-schemas/mod/security/exc-c14n.rnc +39 -0
  78. data/spec/epub30-schemas/mod/security/security_any.rnc +15 -0
  79. data/spec/epub30-schemas/mod/security/xenc-allowAnyForeign.rnc +25 -0
  80. data/spec/epub30-schemas/mod/security/xenc-schema-11.rnc +96 -0
  81. data/spec/epub30-schemas/mod/security/xenc-schema.rnc +145 -0
  82. data/spec/epub30-schemas/mod/security/xenc11-allowAnyForeign.rnc +19 -0
  83. data/spec/epub30-schemas/mod/security/xmldsig-allowAnyForeign.rnc +47 -0
  84. data/spec/epub30-schemas/mod/security/xmldsig-core-schema.rnc +276 -0
  85. data/spec/epub30-schemas/mod/security/xmldsig-filter2.rnc +16 -0
  86. data/spec/epub30-schemas/mod/security/xmldsig-properties-schema.rnc +34 -0
  87. data/spec/epub30-schemas/mod/security/xmldsig11-allowAnyForeign.rnc +18 -0
  88. data/spec/epub30-schemas/mod/security/xmldsig11-schema.rnc +133 -0
  89. data/spec/epub30-schemas/mod/security/xmlsec-ghc-allowAnyForeign.rnc +21 -0
  90. data/spec/epub30-schemas/mod/security/xmlsec-ghc-schema.rnc +42 -0
  91. data/spec/epub30-schemas/mod/svg11/LICENSE +1 -0
  92. data/spec/epub30-schemas/mod/svg11/README.txt +8 -0
  93. data/spec/epub30-schemas/mod/svg11/svg11-flat.rnc +3999 -0
  94. data/spec/epub30-schemas/ocf-container-30.rnc +16 -0
  95. data/spec/epub30-schemas/ocf-encryption-30.rnc +12 -0
  96. data/spec/epub30-schemas/ocf-signatures-30.rnc +8 -0
  97. data/spec/epub30-schemas/package-30.nvdl +14 -0
  98. data/spec/epub30-schemas/package-30.rnc +91 -0
  99. data/spec/epub30-schemas/package-30.sch +137 -0
  100. data/spec/jing-20091111/bin/jing.jar +0 -0
  101. data/spec/nora_mark_spec.rb +229 -68
  102. data/spec/spec_helper.rb +16 -0
  103. metadata +179 -6
  104. data/lib/nora_mark/html/header_writer.rb +0 -35
  105. data/spec/fixture/test_src_ja.nora +0 -50
@@ -0,0 +1,134 @@
1
+
2
+
3
+
4
+ html5.flow.class |= html5.phrasing.class | html5.a.flow
5
+
6
+ html5.phrasing.class |= datatype.text | html5.a.phrasing | html5.em | html5.strong | html5.small | html5.cite
7
+ | html5.q | html5.dfn | html5.abbr | html5.time | html5.code | html5.var | html5.samp
8
+ | html5.kbd | html5.sup | html5.sub | html5.i | html5.b | html5.mark | html5.bdo | html5.bdi | html5.span
9
+ | html5.br | html5.wbr | html5.s | html5.u | html5.ruby
10
+
11
+ html5.phrasing.attrs &= html5.global.attrs
12
+
13
+
14
+ html5.a.flow = element a { html5.a.flow.attlist & html5.a.flow.content }
15
+ html5.a.flow.attlist &= html5.global.attrs & html5.a.attrs
16
+ html5.a.flow.content = html5.flow.model
17
+ html5.a.phrasing = element a { html5.a.phrasing.attlist & html5.a.phrasing.content }
18
+ html5.a.phrasing.attlist &= html5.phrasing.attrs & html5.a.attrs
19
+ html5.a.phrasing.content = html5.phrasing.model
20
+ html5.a.attrs &= ( html5.href.attr & ( html5.hreflang.attr? & html5.target.attr?
21
+ & html5.rel.attr? & html5.media.attr? & html5.type.mime.attr? ))?
22
+
23
+ html5.abbr = element abbr { html5.abbr.attlist & html5.abbr.content }
24
+ html5.abbr.attlist &= html5.phrasing.attrs
25
+ html5.abbr.content = html5.phrasing.model
26
+
27
+ html5.b = element b { html5.b.attlist & html5.b.content }
28
+ html5.b.attlist &= html5.phrasing.attrs
29
+ html5.b.content = html5.phrasing.model
30
+
31
+ html5.bdo = element bdo { html5.bdo.attlist & html5.bdo.content }
32
+ html5.bdo.attlist &= html5.phrasing.attrs
33
+ html5.bdo.content = html5.phrasing.model
34
+
35
+ html5.bdi = element bdi { html5.bdi.attlist & html5.bdi.content }
36
+ html5.bdi.attlist &= html5.phrasing.attrs
37
+ html5.bdi.content = html5.phrasing.model
38
+
39
+ html5.br = element br { html5.br.attlist }
40
+ html5.br.attlist &= html5.phrasing.attrs
41
+
42
+ html5.cite = element cite { html5.cite.attlist & html5.cite.content }
43
+ html5.cite.attlist &= html5.phrasing.attrs
44
+ html5.cite.content = html5.phrasing.model
45
+
46
+ html5.code = element code { html5.code.attlist & html5.code.content }
47
+ html5.code.attlist &= html5.phrasing.attrs
48
+ html5.code.content = html5.phrasing.model
49
+
50
+ html5.dfn = element dfn { html5.dfn.attlist & html5.dfn.content }
51
+ html5.dfn.attlist &= html5.phrasing.attrs
52
+ html5.dfn.content = html5.phrasing.model
53
+
54
+ html5.em = element em { html5.em.attlist & html5.em.content }
55
+ html5.em.attlist &= html5.phrasing.attrs
56
+ html5.em.content = html5.phrasing.model
57
+
58
+ html5.i = element i { html5.i.attlist & html5.i.content }
59
+ html5.i.attlist &= html5.phrasing.attrs
60
+ html5.i.content = html5.phrasing.model
61
+
62
+ html5.kbd = element kbd { html5.kbd.attlist & html5.kbd.content }
63
+ html5.kbd.attlist &= html5.phrasing.attrs
64
+ html5.kbd.content = html5.phrasing.model
65
+
66
+ html5.mark = element mark { html5.mark.attlist & html5.mark.content }
67
+ html5.mark.attlist &= html5.phrasing.attrs
68
+ html5.mark.content = html5.phrasing.model
69
+
70
+ html5.strong = element strong { html5.strong.attlist & html5.strong.content }
71
+ html5.strong.attlist &= html5.phrasing.attrs
72
+ html5.strong.content = html5.phrasing.model
73
+
74
+ html5.small = element small { html5.small.attlist & html5.small.content }
75
+ html5.small.attlist &= html5.phrasing.attrs
76
+ html5.small.content = html5.phrasing.model
77
+
78
+ html5.q = element q { html5.q.attlist & html5.q.content }
79
+ html5.q.attlist &= html5.phrasing.attrs & html5.cite.attr?
80
+ html5.q.content = html5.phrasing.model
81
+
82
+ html5.s = element s { html5.s.attlist & html5.s.content }
83
+ html5.s.attlist &= html5.phrasing.attrs
84
+ html5.s.content = html5.phrasing.model
85
+
86
+ html5.samp = element samp { html5.samp.attlist & html5.samp.content }
87
+ html5.samp.attlist &= html5.phrasing.attrs
88
+ html5.samp.content = html5.phrasing.model
89
+
90
+ html5.sub = element sub { html5.sub.attlist & html5.sub.content }
91
+ html5.sub.attlist &= html5.phrasing.attrs
92
+ html5.sub.content = html5.phrasing.model
93
+
94
+ html5.sup = element sup { html5.sup.attlist & html5.sup.content }
95
+ html5.sup.attlist &= html5.phrasing.attrs
96
+ html5.sup.content = html5.phrasing.model
97
+
98
+ html5.span = element span { html5.span.attlist & html5.span.content }
99
+ html5.span.attlist &= html5.phrasing.attrs
100
+ html5.span.content = html5.phrasing.model
101
+
102
+ html5.time = element time { html5.time.attlist & html5.time.content }
103
+ html5.time.attlist &= html5.phrasing.attrs &
104
+ ((html5.time.pubdate.attr & html5.time.datetime.attr.date-optional-time?)
105
+ | (html5.time.datetime.attr.date-or-time?))
106
+ html5.time.pubdate.attr = attribute pubdate { 'pubdate' | '' }
107
+ html5.time.datetime.attr.date-optional-time = attribute datetime { datatype.html5.date.optional.time }
108
+ html5.time.datetime.attr.date-or-time = attribute datetime { datatype.html5.date.or.time }
109
+ html5.time.content = html5.phrasing.model
110
+
111
+ html5.var = element var { html5.var.attlist & html5.var.content }
112
+ html5.var.attlist &= html5.phrasing.attrs
113
+ html5.var.content = html5.phrasing.model
114
+
115
+ html5.wbr = element wbr { html5.wbr.attlist }
116
+ html5.wbr.attlist &= html5.phrasing.attrs
117
+
118
+ html5.u = element u { html5.u.attlist & html5.u.content }
119
+ html5.u.attlist = html5.phrasing.attrs
120
+ html5.u.content = html5.phrasing.model
121
+
122
+
123
+ html5.ruby = element ruby { html5.ruby.attlist & html5.ruby.content }
124
+ html5.ruby.attlist = html5.phrasing.attrs
125
+ html5.ruby.content = ((html5.phrasing.model, (html5.rt | (html5.rp, html5.rt, html5.rp)))+)
126
+
127
+ html5.rt = element rt { html5.rt.attlist & html5.rt.content }
128
+ html5.rt.attlist &= html5.phrasing.attrs
129
+ html5.rt.content = html5.phrasing.model
130
+
131
+ html5.rp = element rp { html5.rp.attlist & html5.rp.content }
132
+ html5.rp.attlist &= html5.phrasing.attrs
133
+ html5.rp.content = html5.phrasing.model
134
+
@@ -0,0 +1,164 @@
1
+
2
+
3
+
4
+ html5.metadata.class |= html5.script
5
+ html5.flow.class |= html5.script
6
+ html5.phrasing.class |= html5.script
7
+ html5.global.attrs &= html5.global.scripting.attrs
8
+ html5.body.attlist &= html5.scripting.body.attrs
9
+
10
+ html5.script = html5.script.internal | html5.script.external
11
+
12
+
13
+ html5.script.internal = element script { html5.script.internal.attlist & html5.script.internal.content }
14
+ html5.script.external = element script { html5.script.external.attlist & html5.script.external.content }
15
+
16
+ html5.script.internal.attlist &= html5.global.attrs & html5.type.mime.nocharset.attr?
17
+ html5.script.external.attlist &= html5.global.attrs & html5.src.attr & html5.script.defer.attr?
18
+ & html5.script.async.attr? & html5.type.mime.nocharset.attr? & html5.charset.attr?
19
+
20
+ html5.script.defer.attr = attribute defer { 'defer' | '' }
21
+ html5.script.async.attr = attribute async { 'async' | '' }
22
+
23
+
24
+ html5.script.internal.content = datatype.html5.script
25
+ html5.script.external.content = datatype.html5.script.documentation
26
+
27
+ html5.global.scripting.attrs &= html5.scripting.onabort.attr?
28
+ & html5.scripting.onblur.attr?
29
+ & html5.scripting.oncanplay.attr?
30
+ & html5.scripting.oncanplaythrough.attr?
31
+ & html5.scripting.onchange.attr?
32
+ & html5.scripting.onclick.attr?
33
+ & html5.scripting.oncontextmenu.attr?
34
+ & html5.scripting.ondblclick.attr?
35
+ & html5.scripting.ondrag.attr?
36
+ & html5.scripting.ondragend.attr?
37
+ & html5.scripting.ondragenter.attr?
38
+ & html5.scripting.ondragleave.attr?
39
+ & html5.scripting.ondragover.attr?
40
+ & html5.scripting.ondragstart.attr?
41
+ & html5.scripting.ondrop.attr?
42
+ & html5.scripting.ondurationchange.attr?
43
+ & html5.scripting.onemptied.attr?
44
+ & html5.scripting.onended.attr?
45
+ & html5.scripting.onerror.attr?
46
+ & html5.scripting.onfocus.attr?
47
+ & html5.scripting.oninput.attr?
48
+ & html5.scripting.oninvalid.attr?
49
+ & html5.scripting.onkeydown.attr?
50
+ & html5.scripting.onkeypress.attr?
51
+ & html5.scripting.onkeyup.attr?
52
+ & html5.scripting.onload.attr?
53
+ & html5.scripting.onloadeddata.attr?
54
+ & html5.scripting.onloadedmetadata.attr?
55
+ & html5.scripting.onloadstart.attr?
56
+ & html5.scripting.onmousedown.attr?
57
+ & html5.scripting.onmousemove.attr?
58
+ & html5.scripting.onmouseout.attr?
59
+ & html5.scripting.onmouseover.attr?
60
+ & html5.scripting.onmouseup.attr?
61
+ & html5.scripting.onmousewheel.attr?
62
+ & html5.scripting.onpause.attr?
63
+ & html5.scripting.onplay.attr?
64
+ & html5.scripting.onplaying.attr?
65
+ & html5.scripting.onprogress.attr?
66
+ & html5.scripting.onratechange.attr?
67
+ & html5.scripting.onreadystatechange.attr?
68
+ & html5.scripting.onreset.attr?
69
+ & html5.scripting.onscroll.attr?
70
+ & html5.scripting.onseeked.attr?
71
+ & html5.scripting.onseeking.attr?
72
+ & html5.scripting.onselect.attr?
73
+ & html5.scripting.onshow.attr?
74
+ & html5.scripting.onstalled.attr?
75
+ & html5.scripting.onsubmit.attr?
76
+ & html5.scripting.onsuspend.attr?
77
+ & html5.scripting.ontimeupdate.attr?
78
+ & html5.scripting.onvolumechange.attr?
79
+ & html5.scripting.onwaiting.attr?
80
+
81
+
82
+ html5.scripting.onabort.attr = attribute onabort { datatype.html5.js }
83
+ html5.scripting.onblur.attr = attribute onblur { datatype.html5.js }
84
+ html5.scripting.oncanplay.attr = attribute oncanplay { datatype.html5.js }
85
+ html5.scripting.oncanplaythrough.attr = attribute oncanplaythrough { datatype.html5.js }
86
+ html5.scripting.onchange.attr = attribute onchange { datatype.html5.js }
87
+ html5.scripting.onclick.attr = attribute onclick { datatype.html5.js }
88
+ html5.scripting.oncontextmenu.attr = attribute oncontextmenu { datatype.html5.js }
89
+ html5.scripting.ondblclick.attr = attribute ondblclick { datatype.html5.js }
90
+ html5.scripting.ondrag.attr = attribute ondrag { datatype.html5.js }
91
+ html5.scripting.ondragend.attr = attribute ondragend { datatype.html5.js }
92
+ html5.scripting.ondragenter.attr = attribute ondragenter { datatype.html5.js }
93
+ html5.scripting.ondragleave.attr = attribute ondragleave { datatype.html5.js }
94
+ html5.scripting.ondragover.attr = attribute ondragover { datatype.html5.js }
95
+ html5.scripting.ondragstart.attr = attribute ondragstart { datatype.html5.js }
96
+ html5.scripting.ondrop.attr = attribute ondrop { datatype.html5.js }
97
+ html5.scripting.ondurationchange.attr = attribute ondurationchange { datatype.html5.js }
98
+ html5.scripting.onemptied.attr = attribute onemptied { datatype.html5.js }
99
+ html5.scripting.onended.attr = attribute onended { datatype.html5.js }
100
+ html5.scripting.onerror.attr = attribute onerror { datatype.html5.js }
101
+ html5.scripting.onfocus.attr = attribute onfocus { datatype.html5.js }
102
+ html5.scripting.oninput.attr = attribute oninput { datatype.html5.js }
103
+ html5.scripting.oninvalid.attr = attribute oninvalid { datatype.html5.js }
104
+ html5.scripting.onkeydown.attr = attribute onkeydown { datatype.html5.js }
105
+ html5.scripting.onkeypress.attr = attribute onkeypress { datatype.html5.js }
106
+ html5.scripting.onkeyup.attr = attribute onkeyup { datatype.html5.js }
107
+ html5.scripting.onload.attr = attribute onload { datatype.html5.js }
108
+ html5.scripting.onloadeddata.attr = attribute onloadeddata { datatype.html5.js }
109
+ html5.scripting.onloadedmetadata.attr = attribute onloadedmetadata { datatype.html5.js }
110
+ html5.scripting.onloadstart.attr = attribute onloadstart { datatype.html5.js }
111
+ html5.scripting.onmousedown.attr = attribute onmousedown { datatype.html5.js }
112
+ html5.scripting.onmousemove.attr = attribute onmousemove { datatype.html5.js }
113
+ html5.scripting.onmouseout.attr = attribute onmouseout { datatype.html5.js }
114
+ html5.scripting.onmouseover.attr = attribute onmouseover { datatype.html5.js }
115
+ html5.scripting.onmouseup.attr = attribute onmouseup { datatype.html5.js }
116
+ html5.scripting.onmousewheel.attr = attribute onmousewheel { datatype.html5.js }
117
+ html5.scripting.onpause.attr = attribute onpause { datatype.html5.js }
118
+ html5.scripting.onplay.attr = attribute onplay { datatype.html5.js }
119
+ html5.scripting.onplaying.attr = attribute onplaying { datatype.html5.js }
120
+ html5.scripting.onprogress.attr = attribute onprogress { datatype.html5.js }
121
+ html5.scripting.onratechange.attr = attribute onratechange { datatype.html5.js }
122
+ html5.scripting.onreadystatechange.attr = attribute onreadystatechange { datatype.html5.js }
123
+ html5.scripting.onreset.attr = attribute onreset { datatype.html5.js }
124
+ html5.scripting.onscroll.attr = attribute onscroll { datatype.html5.js }
125
+ html5.scripting.onseeked.attr = attribute onseeked { datatype.html5.js }
126
+ html5.scripting.onseeking.attr = attribute onseeking { datatype.html5.js }
127
+ html5.scripting.onselect.attr = attribute onselect { datatype.html5.js }
128
+ html5.scripting.onshow.attr = attribute onshow { datatype.html5.js }
129
+ html5.scripting.onstalled.attr = attribute onstalled { datatype.html5.js }
130
+ html5.scripting.onsubmit.attr = attribute onsubmit { datatype.html5.js }
131
+ html5.scripting.onsuspend.attr = attribute onsuspend { datatype.html5.js }
132
+ html5.scripting.ontimeupdate.attr = attribute ontimeupdate { datatype.html5.js }
133
+ html5.scripting.onvolumechange.attr = attribute onvolumechange { datatype.html5.js }
134
+ html5.scripting.onwaiting.attr = attribute onwaiting { datatype.html5.js }
135
+
136
+
137
+ html5.scripting.body.attrs = html5.scripting.body.onafterprint.attr?
138
+ & html5.scripting.body.onbeforeprint.attr?
139
+ & html5.scripting.body.onbeforeunload.attr?
140
+ & html5.scripting.body.onhashchange.attr?
141
+ & html5.scripting.body.onmessage.attr?
142
+ & html5.scripting.body.onoffline.attr?
143
+ & html5.scripting.body.ononline.attr?
144
+ & html5.scripting.body.onpopstate.attr?
145
+ & html5.scripting.body.onredo.attr?
146
+ & html5.scripting.body.onresize.attr?
147
+ & html5.scripting.body.onstorage.attr?
148
+ & html5.scripting.body.onundo.attr?
149
+ & html5.scripting.body.onunload.attr?
150
+
151
+
152
+ html5.scripting.body.onafterprint.attr = attribute onafterprint { datatype.html5.js }
153
+ html5.scripting.body.onbeforeprint.attr = attribute onbeforeprint { datatype.html5.js }
154
+ html5.scripting.body.onbeforeunload.attr = attribute onbeforeunload { datatype.html5.js }
155
+ html5.scripting.body.onhashchange.attr = attribute onhashchange { datatype.html5.js }
156
+ html5.scripting.body.onmessage.attr = attribute onmessage { datatype.html5.js }
157
+ html5.scripting.body.onoffline.attr = attribute onoffline { datatype.html5.js }
158
+ html5.scripting.body.ononline.attr = attribute ononline { datatype.html5.js }
159
+ html5.scripting.body.onpopstate.attr = attribute onpopstate { datatype.html5.js }
160
+ html5.scripting.body.onredo.attr = attribute onredo { datatype.html5.js }
161
+ html5.scripting.body.onresize.attr = attribute onresize { datatype.html5.js }
162
+ html5.scripting.body.onstorage.attr = attribute onstorage { datatype.html5.js }
163
+ html5.scripting.body.onundo.attr = attribute onundo { datatype.html5.js }
164
+ html5.scripting.body.onunload.attr = attribute onunload { datatype.html5.js }
@@ -0,0 +1,58 @@
1
+
2
+
3
+ html5.flow.class |= html5.sections.class | html5.headings.class
4
+
5
+ html5.sections.class |= html5.section | html5.article | html5.nav | html5.aside | html5.header | html5.footer | html5.address
6
+ html5.headings.class |= html5.hgroup | html5.h1 | html5.h2 | html5.h3 | html5.h4 | html5.h5 | html5.h6
7
+
8
+ html5.headings.attrs &= html5.global.attrs
9
+ html5.sections.attrs &= html5.global.attrs
10
+
11
+ html5.hgroup = element hgroup {html5.hgroup.attlist & html5.hgroup.content}
12
+ html5.hgroup.attlist &= html5.headings.attrs
13
+ html5.hgroup.content = (html5.h1 | html5.h2 | html5.h3 | html5.h4 | html5.h5 | html5.h6)+
14
+
15
+ html5.h1 = element h1 {html5.h.attlist, html5.h.content}
16
+ html5.h2 = element h2 {html5.h.attlist, html5.h.content}
17
+ html5.h3 = element h3 {html5.h.attlist, html5.h.content}
18
+ html5.h4 = element h4 {html5.h.attlist, html5.h.content}
19
+ html5.h5 = element h5 {html5.h.attlist, html5.h.content}
20
+ html5.h6 = element h6 {html5.h.attlist, html5.h.content}
21
+
22
+ html5.h.attlist &= html5.headings.attrs
23
+ html5.h.content = html5.phrasing.model
24
+
25
+
26
+ html5.section = element section {html5.section.attlist & html5.section.content}
27
+ html5.section.attlist &= html5.sections.attrs
28
+ html5.section.content = html5.section.model
29
+
30
+
31
+ html5.article = element article {html5.article.attlist & html5.article.content}
32
+ html5.article.attlist &= html5.sections.attrs
33
+ html5.article.content = html5.section.model
34
+
35
+
36
+ html5.nav = element nav { html5.nav.attlist & html5.nav.content }
37
+ html5.nav.attlist &= html5.sections.attrs
38
+ html5.nav.content = html5.flow.model
39
+
40
+
41
+ html5.aside = element aside { html5.aside.attlist & html5.aside.content }
42
+ html5.aside.attlist &= html5.sections.attrs
43
+ html5.aside.content = html5.flow.model
44
+
45
+
46
+ html5.header = element header { html5.header.attlist & html5.header.content }
47
+ html5.header.attlist &= html5.sections.attrs
48
+ html5.header.content = html5.flow.model
49
+
50
+
51
+ html5.footer = element footer { html5.footer.attlist & html5.footer.content }
52
+ html5.footer.attlist &= html5.sections.attrs
53
+ html5.footer.content = html5.flow.model
54
+
55
+
56
+ html5.address = element address { html5.address.attlist & html5.address.content }
57
+ html5.address.attlist &= html5.sections.attrs
58
+ html5.address.content = html5.flow.model
@@ -0,0 +1,18 @@
1
+
2
+
3
+ html5.metadata.class |= html5.style.unscoped
4
+ html5.global.attrs &= html5.style.attr?
5
+ html5.flow.class |= html5.style.scoped
6
+
7
+
8
+
9
+ html5.style.unscoped = element style { html5.style.unscoped.attlist, html5.style.content }
10
+ html5.style.unscoped.attlist &= html5.global.attrs, html5.media.attr?, html5.type.mime.nocharset.attr?
11
+
12
+ html5.style.scoped = element style { html5.style.scoped.attlist, html5.style.content }
13
+ html5.style.scoped.attlist &= html5.global.attrs, html5.media.attr?, html5.type.mime.nocharset.attr?, html5.style.scoped.attr
14
+
15
+ html5.style.scoped.attr = attribute scoped {'scoped' | ''}
16
+ html5.style.content = datatype.style
17
+
18
+ html5.style.attr = attribute style { datatype.style }
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <pattern id="id-unique" xmlns="http://purl.oclc.org/dsdl/schematron">
3
+ <!-- note: assumes that NCName lexical constraints are tested elsewhere -->
4
+ <let name="id-set" value="//*[@id]"/>
5
+ <rule context="*[@id]">
6
+ <assert test="count($id-set[@id = current()/@id]) = 1"
7
+ >Duplicate ID '<value-of select="current()/@id"/>'</assert>
8
+ </rule>
9
+ </pattern>
10
+
@@ -0,0 +1,3 @@
1
+ Use and distribution of all schemas in this directory are permitted under the terms
2
+ W3C Software Notice and License
3
+ http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
@@ -0,0 +1,84 @@
1
+ # This is the Mathematical Markup Language (MathML) 3.0, an XML
2
+ # application for describing mathematical notation and capturing
3
+ # both its structure and content.
4
+ #
5
+ # Copyright 1998-2009 W3C (MIT, ERCIM, Keio)
6
+ #
7
+ # Use and distribution of this code are permitted under the terms
8
+ # W3C Software Notice and License
9
+ # http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
10
+
11
+
12
+ default namespace m = "http://www.w3.org/1998/Math/MathML"
13
+ namespace local = ""
14
+
15
+ start = math
16
+
17
+ math = element math {math.attributes,MathExpression*}
18
+ MathExpression = semantics
19
+
20
+ NonMathMLAtt = attribute (* - (local:*|m:*)) {xsd:string}
21
+
22
+ CommonDeprecatedAtt = attribute other {text}?
23
+
24
+ CommonAtt = attribute id {xsd:ID}?,
25
+ attribute xref {text}?,
26
+ attribute class {xsd:NMTOKENS}?,
27
+ attribute style {xsd:string}?,
28
+ attribute href {xsd:anyURI}?,
29
+ CommonDeprecatedAtt,
30
+ NonMathMLAtt*
31
+
32
+
33
+ math.attributes = CommonAtt,
34
+ attribute display {"block" | "inline"}?,
35
+ attribute maxwidth {length}?,
36
+ attribute overflow {"linebreak" | "scroll" | "elide" | "truncate" | "scale"}?,
37
+ attribute altimg {xsd:anyURI}?,
38
+ attribute altimg-width {length}?,
39
+ attribute altimg-height {length}?,
40
+ attribute altimg-valign {length | "top" | "middle" | "bottom"}?,
41
+ attribute alttext {text}?,
42
+ attribute cdgroup {xsd:anyURI}?,
43
+ math.deprecatedattributes
44
+
45
+ # the mathml3-presentation schema adds additional attributes
46
+ # to the math element, all those valid on mstyle
47
+
48
+ math.deprecatedattributes = attribute mode {xsd:string}?,
49
+ attribute macros {xsd:string}?
50
+
51
+
52
+ name = attribute name {xsd:NCName}
53
+ cd = attribute cd {xsd:NCName}
54
+
55
+ src = attribute src {xsd:anyURI}?
56
+
57
+ annotation = element annotation {annotation.attributes,text}
58
+
59
+ annotation-xml.model = (MathExpression|anyElement)*
60
+
61
+ anyElement = element (* - m:*) {(attribute * {text}|text| anyElement)*}
62
+
63
+ annotation-xml = element annotation-xml {annotation.attributes,
64
+ annotation-xml.model}
65
+ annotation.attributes = CommonAtt,
66
+ cd?,
67
+ name?,
68
+ DefEncAtt,
69
+ src?
70
+
71
+ DefEncAtt = attribute encoding {xsd:string}?,
72
+ attribute definitionURL {xsd:anyURI}?
73
+
74
+ semantics = element semantics {semantics.attributes,
75
+ MathExpression,
76
+ (annotation|annotation-xml)*}
77
+ semantics.attributes = CommonAtt,DefEncAtt,cd?,name?
78
+
79
+
80
+
81
+ length = xsd:string {
82
+ pattern = '\s*((-?[0-9]*(\.[0-9]*)?(e[mx]|in|cm|mm|p[xtc]|%)?)|(negative)?((very){0,2}thi(n|ck)|medium)mathspace)\s*'
83
+ }
84
+