From 26767cc88c0548ad7978021796d0ccc4c9f7ffed Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Sat, 2 Jun 2007 11:27:06 +0100 Subject: 0.53.0, pre-build, see changelog, library naming changed for scm, placed under v0 (instead of 0.53) --- lib/sisu/v0/relaxng.rb | 1155 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1155 insertions(+) create mode 100644 lib/sisu/v0/relaxng.rb (limited to 'lib/sisu/v0/relaxng.rb') diff --git a/lib/sisu/v0/relaxng.rb b/lib/sisu/v0/relaxng.rb new file mode 100644 index 00000000..cb79773d --- /dev/null +++ b/lib/sisu/v0/relaxng.rb @@ -0,0 +1,1155 @@ +=begin + * Name: SiSU information Structuring Universe - Structured information, Serialized Units + * Author: Ralph Amissah + * http://www.jus.uio.no/sisu + * http://www.jus.uio.no/sisu/SiSU/download.html + + * Description: relaxng flow/logic + + * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Ralph Amissah + + * License: GPL 2 or later + + Summary of GPL 2 + + 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 2 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, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + 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/copyleft/gpl.html + http://www.jus.uio.no/sisu/gpl2.fsf + + SiSU was first released to the public on January 4th 2005 + + SiSU uses: + + * Standard SiSU markup syntax, + * Standard SiSU meta-markup syntax, and the + * Standard SiSU object citation numbering and system + + © Ralph Amissah 1997, current 2007. + All Rights Reserved. + + * Ralph Amissah: ralph@amissah.com + ralph.amissah@gmail.com +=end +module SiSU_relaxng + require "#{SiSU_lib}/sysenv" + class RelaxNG + def gpl2_or_later + @gpl2_or_later =< 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_dal + @relaxng =< 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 =<