aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/develop/relaxng.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/develop/relaxng.rb')
-rw-r--r--lib/sisu/develop/relaxng.rb1153
1 files changed, 0 insertions, 1153 deletions
diff --git a/lib/sisu/develop/relaxng.rb b/lib/sisu/develop/relaxng.rb
deleted file mode 100644
index 194e2e3d..00000000
--- a/lib/sisu/develop/relaxng.rb
+++ /dev/null
@@ -1,1153 +0,0 @@
-# encoding: utf-8
-=begin
-
-* Name: SiSU
-
-** Description: documents, structuring, processing, publishing, search
-*** relaxng flow/logic
-
-** Author: Ralph Amissah
- <ralph@amissah.com>
- <ralph.amissah@gmail.com>
-
-** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah,
- All Rights Reserved.
-
-** License: GPL 3 or later:
-
- SiSU, a framework for document structuring, publishing and search
-
- Copyright (C) Ralph Amissah
-
- This program is free software: you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the Free
- Software Foundation, either version 3 of the License, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- more details.
-
- You should have received a copy of the GNU General Public License along with
- this program. If not, see <http://www.gnu.org/licenses/>.
-
- If you have Internet connection, the latest version of the GPL should be
- available at these locations:
- <http://www.fsf.org/licensing/licenses/gpl.html>
- <http://www.gnu.org/licenses/gpl.html>
-
- <http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html>
-
-** SiSU uses:
- * Standard SiSU markup syntax,
- * Standard SiSU meta-markup syntax, and the
- * Standard SiSU object citation numbering and system
-
-** Hompages:
- <http://www.jus.uio.no/sisu>
- <http://www.sisudoc.org>
-
-** Git
- <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary>
- <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=lib/sisu/develop/relaxng.rb;hb=HEAD>
-
-=end
-module SiSU_Relaxng
- require_relative 'se' # se.rb
- class RelaxNG
- def gpl3_or_later
- @gpl3_or_later =<<RELAXNG
-=begin
-
- * Name: SiSU generated relaxng
-
- * Description: generated relaxng for SiSU
- (SiSU is a framework for document structuring, publishing and search)
-
- * Author: Ralph Amissah
-
- * Copyright: (C) 1997 - 2013 Ralph Amissah All Rights Reserved.
-
- * License: GPL 3 or later:
-
- SiSU, a framework for document structuring, publishing and search
-
- Copyright: (C) 1997 - 2013 Ralph Amissah
-
- This program is free software: you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the Free
- Software Foundation, either version 3 of the License, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- more details.
-
- You should have received a copy of the GNU General Public License along with
- this program. If not, see <http://www.gnu.org/licenses/>.
-
- If you have Internet connection, the latest version of the GPL should be
- available at these locations:
- <http://www.fsf.org/licenses/gpl.html>
- <http://www.gnu.org/licenses/gpl.html>
- <http://www.jus.uio.no/sisu/gpl.fsf>
-
- * SiSU uses:
- * Standard SiSU markup syntax,
- * Standard SiSU meta-markup syntax, and the
- * Standard SiSU object citation numbering and system
-
- * Hompages:
- <http://www.jus.uio.no/sisu>
- <http://www.sisudoc.org>
-
- * Ralph Amissah
- <ralph@amissah.com>
- <ralph.amissah@gmail.com>
-
-=end
-RELAXNG
- end
- def rnc_name
- def output_sax
- 'sisu_sax.rnc'
- end
- def output_dom
- 'sisu_dom.rnc'
- end
- def output_xhtml
- 'sisu_xhtml.rnc'
- end
- def input_sax
- 'sisu_sax.rnc'
- end
- def input_dom
- 'sisu_dom.rnc'
- end
- def input_node
- 'sisu_node.rnc'
- end
- self
- end
- def rng_name
- def output_sax
- 'sisu_sax.rng'
- end
- def output_dom
- 'sisu_dom.rng'
- end
- def output_xhtml
- 'sisu_xhtml.rng'
- end
- def input_sax
- 'sisu_sax.rng'
- end
- def input_dom
- 'sisu_dom.rng'
- end
- def input_node
- 'sisu_node.rng'
- end
- self
- end
- def xsd_name
- def output_sax
- 'sisu_sax.xsd'
- end
- def output_dom
- 'sisu_dom.xsd'
- end
- def output_xhtml
- 'sisu_xhtml.xsd'
- end
- def input_sax
- 'sisu_sax.xsd'
- end
- def input_dom
- 'sisu_dom.xsd'
- end
- def input_node
- 'sisu_node.xsd'
- end
- self
- end
- def rnc_sisu_object_input
- @relaxng =<<RELAXNG
-#%% sisu object model: input
-#{gpl3_or_later}
-#%% definitions
-# dublin core:
-element-semantic =
- element semantic {
- # dublin core:
- element title { text }
- & element creator { text }?
- & element subject { text }?
- & element description { text }?
- & element publisher { text }?
- & element contributor { text }?
- & element date { text }?
- & element date.created { text }?
- & element date.issued { text }?
- & element date.available { text }?
- & element date.valid { text }?
- & element date.modified { text }?
- & element type { text }?
- & element format { text }?
- & element identifier { text }?
- & element source { text }?
- & element relation { text }?
- & element coverage { text }?
- & element rights { text }?
- & element keywords { text }?
- # extended semantic metadata:
- & attribute subtitle { text }?
- & attribute illustrator { text }?
- & attribute translator { text }?
- & attribute prepared_by { text }?
- & attribute digitized_by { text }?
- & attribute language { text }?
- & attribute language.original { text }?
- & attribute classify.pg { text }?
- & attribute classify.isbn { text }?
- & attribute classify.dewey { text }?
- & attribute classify.loc { text }?
- & attribute prefix.a { text }?
- & attribute prefix.b { text }?
- & attribute suffix { text }?
- & attribute comments { text }?
- & attribute abstract { text }?
- # & attribute information { text }?
- & attribute contact { text }?
- & attribute links { text }?
- }
-element-processing =
- element processing {
- attribute structure { text }?
- & attribute level { text }?
- & attribute markup { text }?
- & attribute bold { text }?
- & attribute italics { text }?
- & attribute papersize { text }?
- & attribute vocabulary { text }?
- & element date_scheme { text }?
- & element date.issued.scheme { text }?
- & element date.available.scheme { text }?
- & element date.valid.scheme { text }?
- & element date.modified.scheme { text }?
- }?
-element-head =
- element head {
- # processing instructions, and semantic data, distinguish?:
- element metadata {
- element title { text },
- element file { text },
- element generator { text },
- element-semantic,
- element-processing
- }+
- }
-# body text/contents
-# includes <b> <i> <u> <del> <ins> <indent1> <bullet> etc.
-element-txt =
- element txt {
- text*
- & element b { text }*
- & element i { text }*
- & element u { text }*
- & element ins { text }*
- & element del { text }*
- }
-element-endnote =
- element endnote {
- element number { text },
- element note { element-txt }+
- }+
-element-para =
- element para {
- # attribute paragraph_format { text },
- element-txt+
- & element-endnote?
- }
-element-external_space =
- element external_space {
- # ignored by sisu, provide program needs
- element program {
- # e.g. kdissert
- element name { text },
- element xpos { text },
- element ypos { text },
- element font { text },
- element outline_color { text },
- element text_color { text },
- element comment { text }
- }*
- }*,
-#%% structure
- element document {
- # document head:
- element-head,
- # document body:
- element body {
- # object, a unit of text, usually a paragraph with any associated endnotes
- element node {
- element structure {
- # structure document using either node:heading levels or node:heading relationships:
- # (i) sisu default uses node:heading levels (1-6 or A-C,1-3) to build document structure
- element level { text }?,
- # (ii) sisu alternatively could use node:heading relationship information to build document structure
- element node.id { text },
- element node.parent { text },
- element node.child { text }*
- },
- element node.objects {
- element object.heading {
- # nametag used only in headings, especially important for segmented html
- element nametag { text },
- element-para
- },
- element object.para {
- element-para
- }*
- }+,
- element-external_space
- }+
- }
- }
-RELAXNG
- end
- def rnc_sisu_object_ao
- @relaxng =<<RELAXNG
-#%% sisu object model: ao
-#{gpl3_or_later}
-#%% definitions
-# dublin core:
-element-semantic =
- element semantic {
- # dublin core:
- element title { text }
- & element creator { text }?
- & element subject { text }?
- & element description { text }?
- & element publisher { text }?
- & element contributor { text }?
- & element date { text }?
- & element date.created { text }?
- & element date.issued { text }?
- & element date.available { text }?
- & element date.valid { text }?
- & element date.modified { text }?
- & element type { text }?
- & element format { text }?
- & element identifier { text }?
- & element source { text }?
- & element relation { text }?
- & element coverage { text }?
- & element rights { text }?
- & element keywords { text }?
- # extended semantic metadata:
- & attribute subtitle { text }?
- & attribute illustrator { text }?
- & attribute translator { text }?
- & attribute prepared_by { text }?
- & attribute digitized_by { text }?
- & attribute language { text }?
- & attribute language.original { text }?
- & attribute classify.pg { text }?
- & attribute classify.isbn { text }?
- & attribute classify.dewey { text }?
- & attribute classify.loc { text }?
- & attribute prefix.a { text }?
- & attribute prefix.b { text }?
- & attribute suffix { text }?
- & attribute comments { text }?
- & attribute abstract { text }?
- # & attribute information { text }?
- & attribute contact { text }?
- & attribute links { text }?
- }
-element-processing =
- element processing {
- attribute structure { text }?
- & attribute level { text }?
- & attribute markup { text }?
- & attribute bold { text }?
- & attribute italics { text }?
- & attribute papersize { text }?
- & attribute vocabulary { text }?
- & element date_scheme { text }?
- & element date.issued.scheme { text }?
- & element date.available.scheme { text }?
- & element date.valid.scheme { text }?
- & element date.modified.scheme { text }?
- }?
-element-head =
- element head {
- # processing instructions, and semantic data, distinguish?:
- element metadata {
- element title { text },
- element file { text },
- element generator { text },
- element-semantic,
- element-processing
- }+
- }
-# body text/contents
-# includes <b> <i> <u> <del> <ins> <indent1> <bullet> etc.
-element-txt =
- element txt {
- text*
- & element b { text }*
- & element i { text }*
- & element u { text }*
- & element ins { text }*
- & element del { text }*
- }
-element-checksum.endnote = element checksum.clean { text }
-element-endnote =
- element endnote {
- element number { text },
- element note { element-txt }+,
- element-checksum.endnote
- }+
-element-checksum.para =
- element checksum.para {
- element checksum.clean { text },
- element checksum.marked { text }
- }
-element-para =
- element para {
- # attribute paragraph_format { text },
- element-txt+
- & element-endnote?
- }
-element-object =
- element object {
- element-para,
- element-checksum.para
- }
-# object citation number, unique sequential number for objects:
-element-ocn = element ocn { text }
-element-object_structure_summary =
- element-ocn,
- # type: heading level value 1 -6, or normal text
- element type { text },
- # type number: sequential number for designated type
- element type_number { text },
- # type category: sequential number for designated category, e.g. sequentially counting all headers
- element category_number { text }
-element-external_space =
- element external_space {
- # ignored by sisu, provide program needs
- element program {
- # e.g. kdissert
- element name { text },
- element xpos { text },
- element ypos { text },
- element font { text },
- element outline_color { text },
- element text_color { text },
- element comment { text }
- }*
- }*,
-#%% structure
- element document {
- # document head:
- element-head,
- # document body:
- element body {
- # object, a unit of text, usually a paragraph with any associated endnotes
- element node {
- element structure {
- # structure document using either node:heading levels or node:heading relationships:
- # (i) sisu default uses node:heading levels (1-6 or A-C,1-3) to build document structure
- element level { text }?,
- # (ii) sisu alternatively could use node:heading relationship information to build document structure
- element node.id { text },
- element node.parent { text },
- element node.child { text }*
- },
- element node.objects {
- element object.heading {
- element-object_structure_summary,
- # nametag used only in headings, especially important for segmented html
- element nametag { text },
- element-object
- },
- element object.para {
- element-object_structure_summary,
- element-object
- }*
- }+,
- element-external_space
- }+
- }
- }
-RELAXNG
- end
- def rnc_model_output_sax
- @relaxng =<<RELAXNG
-#% sax output model, part of SiSU and distributed under the same license
-default namespace = ""
-namespace xl = "http://www.w3.org/1999/xlink"
-start =
- element document {
- element head {
- (br
- | meta
- | element creator {
- attribute class { xsd:NCName },
- (text
- | element link {
- attribute xl:href { xsd:anyURI },
- attribute xl:type { xsd:NCName },
- xsd:anyURI
- })+
- }
- | element date {
- attribute class { xsd:NCName },
- xsd:NMTOKEN
- }
- | element date_available {
- attribute class { xsd:NCName },
- xsd:NMTOKEN
- }
- | element date_created {
- attribute class { xsd:NCName },
- xsd:NMTOKEN
- }
- | element date_issued {
- attribute class { xsd:NCName },
- xsd:NMTOKEN
- }
- | element date_modified {
- attribute class { xsd:NCName },
- xsd:NMTOKEN
- }
- | element date_valid {
- attribute class { xsd:NCName },
- xsd:NMTOKEN
- }
- | element keywords {
- attribute class { xsd:NCName },
- text
- }
- | element language {
- attribute class { xsd:NCName },
- xsd:NCName
- }
- | element meta { xsd:NMTOKEN }
- | element rights {
- attribute class { xsd:NCName },
- (text | link)+
- }
- | element source {
- attribute class { xsd:NCName },
- text
- }
- | element structure {
- attribute class { xsd:NCName },
- text
- }
- | element subject {
- attribute class { xsd:NCName },
- text
- }
- | element title {
- attribute class { xsd:NCName },
- text
- }
- | element type {
- attribute class { xsd:NCName },
- text
- }
- | element source_control {
- (br
- | meta
- | element sc {
- attribute class { xsd:NCName },
- text
- })+
- })+
- },
- element body {
- element object {
- attribute id { text },
- element ocn {
- text
- },
- element text {
- attribute class { xsd:NCName },
- (text
- | b
- | br
- | del
- | en
- | i
- | link
- | sub
- | sup
- | u
- | element image {
- attribute alt { text }?,
- attribute height { xsd:integer }?,
- attribute width { xsd:integer }?,
- attribute xl:actuate { xsd:NCName },
- attribute xl:href { text },
- attribute xl:show { xsd:NCName },
- attribute xl:type { xsd:NCName }
- })+
- }?,
- element table {
- attribute align { xsd:NCName },
- attribute bgcolor { xsd:NCName },
- attribute border { xsd:integer },
- attribute cellpadding { xsd:integer },
- attribute summary { text },
- attribute width { text },
- element tr {
- element td {
- attribute valign { xsd:NCName },
- attribute width { text },
- (text | b | i)+
- }+
- }+
- }?,
- element endnote {
- attribute notenumber { xsd:integer }?,
- attribute symbol { text }?,
- (element number { xsd:integer }
- | element symbol { text }),
- element note {
- (text
- | b
- | br
- | del
- | i
- | link
- | sup
- | u
- | element em { xsd:NCName }
- | element sub { xsd:NCName })+
- }
- }*
- }+
- }
- }
-meta = element meta { text }
-br = element br { empty }
-b = element b { (text | en | i | link | sup)+ }
-i = element i { (text | b | br | sup)+ }
-en = element en { text }
-sub = element sub { xsd:NCName }
-sup = element sup { xsd:NCName }
-link =
- element link {
- attribute xl:href { xsd:anyURI },
- attribute xl:type { xsd:NCName },
- (xsd:anyURI | text | b | i | sup)+
- }
-u = element u { (text | b | i)+ }
-del = element del { (text | b | i | link)+ }
-RELAXNG
- end
- def rnc_model_output_dom
- @relaxng =<<RELAXNG
-#% dom output model, part of SiSU and distributed under the same license
-default namespace = ""
-namespace xl = "http://www.w3.org/1999/xlink"
-start =
- element document {
- element head {
- element header {
- meta,
- (element creator { text }
- | element date { xsd:NMTOKEN }
- | element date_available { xsd:NMTOKEN }
- | element date_created { xsd:NMTOKEN }
- | element date_issued { xsd:NMTOKEN }
- | element date_modified { xsd:NMTOKEN }
- | element date_valid { xsd:NMTOKEN }
- | element keywords { text }
- | element language { xsd:NCName }
- | element rights { (text | link)+ }
- | element source { text }
- | element structure { text }
- | element subject { text }
- | element title { text }
- | element type { text }
- | element source_control {
- (br
- | meta
- | element sc {
- attribute class { xsd:NCName },
- text
- })+
- })
- }+
- },
- element body {
- element heading1 {
- heading,
- contents1*,
- element heading2 {
- heading,
- contents1*,
- element heading3 {
- heading,
- element contents1 {
- heading,
- content,
- element contents2 {
- heading,
- content,
- element contents3 { heading, content }*
- }*
- }+
- }*
- }*
- }+
- }
- }
-meta = element meta { text }
-br = element br { empty }
-heading = element heading { object }
-contents1 =
- element contents1 {
- heading,
- content,
- element contents2 {
- heading,
- content,
- element contents3 { heading, content }*
- }*
- }
-content = element content { object* }
-object =
- element object {
- attribute id { xsd:integer },
- element ocn { text },
- element nametag { text }?,
- (element table {
- attribute align { xsd:NCName },
- attribute bgcolor { xsd:NCName },
- attribute border { xsd:integer },
- attribute cellpadding { xsd:integer },
- attribute summary { text },
- attribute width { text },
- element tr {
- element td {
- attribute valign { xsd:NCName },
- attribute width { text },
- (text | b | i)+
- }+
- }+
- }
- | element text {
- attribute class { xsd:NCName }?,
- (text
- | b
- | del
- | endnote
- | i
- | link
- | element br { empty }
- | element endnote {
- element number { xsd:integer },
- element note { (text | i | link)+ }
- }
- | element image {
- attribute height { xsd:integer },
- attribute width { xsd:integer },
- attribute xl:actuate { xsd:NCName },
- attribute xl:href { text },
- attribute xl:show { xsd:NCName },
- attribute xl:type { xsd:NCName }
- }
- | element sub { text })+
- })
- }
-i = element i { text }
-b = element i { text }
-u = element u { (text | b | i)+ }
-sub = element sub { xsd:NCName }
-sup = element sup { xsd:NCName }
-del = element del { (text | b | i | link)+ }
-link =
- element link {
- attribute xl:href { xsd:anyURI },
- attribute xl:type { xsd:NCName },
- xsd:anyURI
- }
-endnote =
- element endnote {
- (element number { xsd:integer }
- | element symbol { text }),
- element note {
- (text
- | b
- | br
- | del
- | i
- | link
- | sub
- | sup
- | u
- | element em { xsd:NCName }
- | element sub { xsd:NCName })+
- }
- }
-RELAXNG
- end
- def rnc_model_output_xhtml #not done
- @relaxng =<<RELAXNG
-#% xhtml output model, part of SiSU and distributed under the same license
-default namespace = ""
-namespace xl = "http://www.w3.org/1999/xlink"
-start =
- element document {
- element head {
- (br
- | element creator {
- attribute class { xsd:NCName },
- (text
- | element link {
- attribute xl:href { xsd:anyURI },
- attribute xl:type { xsd:NCName },
- xsd:anyURI
- })+
- }
- | element date {
- attribute class { xsd:NCName },
- xsd:NMTOKEN
- }
- | element date_available {
- attribute class { xsd:NCName },
- xsd:NMTOKEN
- }
- | element date_created {
- attribute class { xsd:NCName },
- xsd:NMTOKEN
- }
- | element date_issued {
- attribute class { xsd:NCName },
- xsd:NMTOKEN
- }
- | element date_modified {
- attribute class { xsd:NCName },
- xsd:NMTOKEN
- }
- | element date_valid {
- attribute class { xsd:NCName },
- xsd:NMTOKEN
- }
- | element language {
- attribute class { xsd:NCName },
- xsd:NCName
- }
- | element keywords {
- attribute class { xsd:NCName },
- text
- }
- | element meta {
- attribute content { text }?,
- attribute http-equiv { xsd:NCName }?,
- text
- }
- | element rights {
- attribute class { xsd:NCName },
- (text | link)+
- }
- | element source {
- attribute class { xsd:NCName },
- text
- }
- | element structure {
- attribute class { xsd:NCName },
- text
- }
- | element subject {
- attribute class { xsd:NCName },
- text
- }
- | element title {
- attribute class { xsd:NCName },
- text
- }
- | element type {
- attribute class { xsd:NCName },
- xsd:NCName
- })+
- },
- element body {
- element object {
- attribute id { xsd:integer },
- (element endnote {
- attribute notenumber { xsd:integer }?,
- attribute symbol { text }?,
- (text
- | b
- | br
- | del
- | i
- | link
- | sup
- | u
- | element em { xsd:NCName }
- | element sub { xsd:NCName })+
- }
- | element ocn { text }
- | element text {
- attribute class { xsd:NCName },
- (text
- | b
- | br
- | del
- | en
- | i
- | link
- | sup
- | u
- | element image {
- attribute alt { text }?,
- attribute height { xsd:integer }?,
- attribute width { xsd:integer }?,
- attribute xl:actuate { xsd:NCName },
- attribute xl:href { text },
- attribute xl:show { xsd:NCName },
- attribute xl:type { xsd:NCName }
- }
- | element sub { text })+
- })+,
- element table {
- attribute align { xsd:NCName },
- attribute bgcolor { xsd:NCName },
- attribute border { xsd:integer },
- attribute cellpadding { xsd:integer },
- attribute summary { text },
- attribute width { text },
- element tr {
- element td {
- attribute valign { xsd:NCName },
- attribute width { text },
- (text | b | i)+
- }+
- }+
- }?
- }+
- }
- }
-br = element br { empty }
-en = element en { text }
-sup = element sup { xsd:NCName }
-i = element i { (text | b | br | sup)+ }
-link =
- element link {
- attribute xl:href { xsd:anyURI },
- attribute xl:type { xsd:NCName },
- (text | b | i | sup)+
- }
-b = element b { (text | en | i | link | sup)+ }
-u = element u { (text | b | i)+ }
-del = element del { (text | b | i | link)+ }
-RELAXNG
- end
- def rnc_model_input_sax
- @relaxng =<<RELAXNG
-#% sax input model, part of SiSU and distributed under the same license
-default namespace = ""
-start =
- element document {
- element head {
- element header {
- attribute class { xsd:NCName },
- (element creator { text }
- | element date { xsd:NMTOKEN }
- | element date.available { xsd:NMTOKEN }
- | element date.created { xsd:NMTOKEN }
- | element date.issued { xsd:NMTOKEN }
- | element date.modified { xsd:NMTOKEN }
- | element date.valid { xsd:NMTOKEN }
- | element italicize { text }
- | element language { xsd:NCName }
- | element links { text }
- | element markup { text }
- | element rights { text }
- | element subject { text }
- | element title { text }
- | element type { xsd:NCName }
- | element vocabulary { xsd:NCName })
- }+
- },
- element body {
- element object {
- element text {
- attribute class { xsd:NCName },
- (text
- | b
- | i
- | element endnote {
- attribute symbol { xsd:NCName },
- (text
- | i
- | element br { empty })+
- }
- | element u { i }
- | element image.path { text })+
- }?
- }+
- }
- }
-i = element i { text }
-b = element b { text }
-RELAXNG
- end
- def rnc_model_input_dom
- @relaxng =<<RELAXNG
-#% dom input model, part of SiSU and distributed under the same license
-default namespace = ""
-start =
- element document {
- element head {
- element header {
- attribute class { xsd:NCName },
- (element creator { text }
- | element date { xsd:NMTOKEN }
- | element date.available { xsd:NMTOKEN }
- | element date.created { xsd:NMTOKEN }
- | element date.issued { xsd:NMTOKEN }
- | element date.modified { xsd:NMTOKEN }
- | element date.valid { xsd:NMTOKEN }
- | element italicize { text }
- | element language { xsd:NCName }
- | element links { text }
- | element markup { text }
- | element rights { text }
- | element subject { text }
- | element title { text }
- | element type { xsd:NCName }
- | element vocabulary { xsd:NCName })
- }+
- },
- element body {
- element heading1 {
- heading,
- element heading2 {
- heading,
- contents1+,
- element heading3 { heading, contents1+ }+
- }
- }
- }
- }
-heading = element heading { object }
-contents1 =
- element contents1 {
- heading,
- content,
- element contents2 {
- heading,
- content,
- element contents3 { heading, content }*
- }*
- }
-object =
- element object {
- element text {
- (text
- | italic
- | element bold { xsd:NMTOKEN }
- | element endnote {
- element symbol { text }?,
- element note {
- (text
- | italic
- | element br { empty })+
- }
- }
- | element underscore { italic }
- | element image.path { text }
- | element italic { text })+
- }
- }
-italic = element italic { text }
-content = element content { object+ }
-RELAXNG
- end
- def rnc_model_input_node
- @relaxng =<<RELAXNG
-#% node input model, part of SiSU and distributed under the same license
-default namespace = ""
-start =
- element document {
- element head {
- element header {
- attribute class { xsd:NCName },
- (element creator { text }
- | element date { xsd:NMTOKEN }
- | element date.available { xsd:NMTOKEN }
- | element date.created { xsd:NMTOKEN }
- | element date.issued { xsd:NMTOKEN }
- | element date.modified { xsd:NMTOKEN }
- | element date.valid { xsd:NMTOKEN }
- | element italicize { (text | i)+ }
- | element language { xsd:NCName }
- | element links { text }
- | element markup { text }
- | element rights { text }
- | element subject { text }
- | element title { text }
- | element type { xsd:NCName }
- | element vocabulary { xsd:NCName })
- }+
- },
- element body {
- element object {
- (element text {
- attribute class { xsd:NCName },
- (text
- | b
- | i
- | element br { empty }
- | element endnote {
- attribute symbol { xsd:NCName },
- (text | i)+
- }
- | element image.path { text }
- | element sub { text })+
- }
- | (element ocn { empty },
- element table {
- attribute align { xsd:NCName },
- attribute bgcolor { xsd:NCName },
- attribute border { xsd:integer },
- attribute cellpadding { xsd:integer },
- attribute summary { text },
- attribute width { text },
- element tr {
- element td {
- attribute valign { xsd:NCName },
- attribute width { text },
- (text | b)+
- }+
- }+
- })),
- element node {
- element id { xsd:integer },
- element parent { xsd:integer },
- element offspring { text }?
- }
- }+
- }
- }
-b = element b { text }
-i = element i { text }
-RELAXNG
- end
- end
-end
-__END__
-needs updating