diff options
Diffstat (limited to 'data/doc/sisu/v1/model')
21 files changed, 3622 insertions, 0 deletions
diff --git a/data/doc/sisu/v1/model/README b/data/doc/sisu/v1/model/README new file mode 100644 index 00000000..0b03e45e --- /dev/null +++ b/data/doc/sisu/v1/model/README @@ -0,0 +1,14 @@ +Models of SiSU xml +[early attempt at modelling, not definitive] +* xsd - xml schema +* rnc - relax ng compact format +* rng - relax ng xml format + +* input (markup) formats + * sax (.sxs.xml) + * dom (.sxd.xml) + * node (.sxn.xml) + +* output formats + * sax (sax.xml) + * dom (dom.xml) diff --git a/data/doc/sisu/v1/model/relaxng/sisu_object_model_dom.rnc b/data/doc/sisu/v1/model/relaxng/sisu_object_model_dom.rnc new file mode 100644 index 00000000..fddacbb8 --- /dev/null +++ b/data/doc/sisu/v1/model/relaxng/sisu_object_model_dom.rnc @@ -0,0 +1,148 @@ +#%% sisu object model: input +# 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: sisu object models in relaxNG dom model base +# used for preliminary modeling, not definitive + +# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Ralph Amissah + +# License: GPL 3 or later + +# Summary of GPL 3 + +# 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, 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/gpl3.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 2006. +# All Rights Reserved. + +#%% definitions +#dublin core: +element-dc = + ( attribute title { text } + #attribute subtitle { text }? + & attribute creator { text }? + & attribute subject { text }? + & attribute description { text }? + & attribute publisher { text }? + & attribute contributor { text }? + & attribute date { text }? + & attribute datecreated { text }? + & attribute dateissued { text }? + & attribute dateavailable { text }? + & attribute datevalid { text }? + & attribute datemodified { text }? + & attribute type { text }? + & attribute format { text }? + & attribute identifier { text }? + & attribute source { text }? + & attribute relation { text }? + & attribute coverage { text }? + & attribute rights { text }? + & attribute keywords { text }? ) +#element-paragraph = +# text +# element b +# element i +# element u +#endnotes, zero or many, embedded in text: +element-endnote = + element endnote { + element number { text }, + element note { text } + }* +#body text/contents +element-text = + element mytext { + text + & element-endnote + } +#object citation number, unique sequential number for objects: +element-ocn = + element ocn { text } +#object container: +element-object = + element object { + element-ocn, + #note nametag is only used in element-heading, object is used in both heading and content -> + element nametag { text }?, + element-text + }+ +#heading object container +element-heading = + element heading { + element-object + } +#content/paragraph/main text object container +element-content = + element content { + element-object* + }, +#text includes <en> endnote pointer numbers, and <b> <i> <u> etc. +#note includes <b> <i> <u> etc. +#%% structure +element document { + #document head: + element head { + attribute id { text }, + element-dc, + attribute copyright { text }? + #element title { + # attribute xml:lang { text }, + # text + #} + }, + #document body: + element body { + element heading1 { + element-heading, + element heading2 { + element-heading, + element heading3 { + element-heading, + element contents1 { + element-heading, + element-content*, + element contents2 { + element-heading, + element-content*, + element contents3 { + element-heading, + element-content* + }* + }* + }+ + }+ + }+ + }+ + } +} + diff --git a/data/doc/sisu/v1/model/relaxng/sisu_object_model_input.rnc b/data/doc/sisu/v1/model/relaxng/sisu_object_model_input.rnc new file mode 100644 index 00000000..ad221da7 --- /dev/null +++ b/data/doc/sisu/v1/model/relaxng/sisu_object_model_input.rnc @@ -0,0 +1,186 @@ +#%% sisu object model: input +# 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: sisu object models in relaxNG input model base +# used for preliminary modeling, not definitive + +# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Ralph Amissah + +# License: GPL 3 or later + +# Summary of GPL 3 + +# 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, 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/gpl3.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 2006. +# All Rights Reserved. + +#%% 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 + }+ + } + } + diff --git a/data/doc/sisu/v1/model/relaxng/sisu_object_model_metaverse.rnc b/data/doc/sisu/v1/model/relaxng/sisu_object_model_metaverse.rnc new file mode 100644 index 00000000..b00ca480 --- /dev/null +++ b/data/doc/sisu/v1/model/relaxng/sisu_object_model_metaverse.rnc @@ -0,0 +1,210 @@ +#%% sisu object model: input +# 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: sisu object models in relaxNG metaverse model base +# used for preliminary modeling, not definitive + +# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Ralph Amissah + +# License: GPL 3 or later + +# Summary of GPL 3 + +# 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, 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/gpl3.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 2006. +# All Rights Reserved. + +#%% 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 + }+ + } + } + diff --git a/data/doc/sisu/v1/model/relaxng/sisu_object_model_sax.rnc b/data/doc/sisu/v1/model/relaxng/sisu_object_model_sax.rnc new file mode 100644 index 00000000..02507881 --- /dev/null +++ b/data/doc/sisu/v1/model/relaxng/sisu_object_model_sax.rnc @@ -0,0 +1,86 @@ +#%% sisu object model: input +# 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: sisu object models in relaxNG sax model base +# used for preliminary modeling, not definitive + +# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Ralph Amissah + +# License: GPL 3 or later + +# Summary of GPL 3 + +# 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, 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/gpl3.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 2006. +# All Rights Reserved. + +# Ralph Amissah: ralph@amissah.com +# ralph.amissah@gmail.com + +#%% definitions +#text includes <en> endnote pointer numbers, and <b> <i> <u> etc. +#note includes <b> <i> <u> etc. + +#%% structure +element document { + #document head: + element head { + #dublin core: + element dc { + attribute class { text } + }+ + }, + #document body: + element body { + #object, a unit of text, usually a paragraph with any associated endnotes + element object { + attribute number { text }, + element ocn { text }, + #body content/text, whether ordinary paragraph or heading: + element text { + #attributes indicates whether ordinary text (norm) or heading, (levels h[1-6]): + attribute class { text }, + text + }, + #endnotes, zero or many: + element endnote { + attribute notenumber { text }, + #endnotes number: + element number { text }, + #endnotes content/text: + element note { text } + }* + }+ + } +} + diff --git a/data/doc/sisu/v1/model/relaxng/sisu_object_model_xhtml.rnc b/data/doc/sisu/v1/model/relaxng/sisu_object_model_xhtml.rnc new file mode 100644 index 00000000..740642fa --- /dev/null +++ b/data/doc/sisu/v1/model/relaxng/sisu_object_model_xhtml.rnc @@ -0,0 +1,105 @@ +#%% sisu object model: input +# 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: sisu object models in relaxNG xhtml model base +# used for preliminary modeling, not definitive + +# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Ralph Amissah + +# License: GPL 3 or later + +# Summary of GPL 3 + +# 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, 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/gpl3.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 2006. +# All Rights Reserved. + +#%% definitions +#dublin core: +element-dc = + ( attribute title { text } + #attribute subtitle { text }? + & attribute creator { text }? + & attribute subject { text }? + & attribute description { text }? + & attribute publisher { text }? + & attribute contributor { text }? + & attribute date { text }? + & attribute datecreated { text }? + & attribute dateissued { text }? + & attribute dateavailable { text }? + & attribute datevalid { text }? + & attribute datemodified { text }? + & attribute type { text }? + & attribute format { text }? + & attribute identifier { text }? + & attribute source { text }? + & attribute relation { text }? + & attribute coverage { text }? + & attribute rights { text }? + & attribute keywords { text }? ), +#text includes <en> endnote pointer numbers, and <b> <i> <u> etc. +#note includes <b> <i> <u> etc. +#%% structure +element document { + #document head: + element head { + attribute id { text }, + element-dc, + attribute copyright { text }? + #element title { + # attribute xml:lang { text }, + # text + #} + }, + #document body: + element body { + #object, unit + element object { + #may or may not be a heading, if heading provide heading level [1-6]: + element heading { text }?, + #object citation number, unique sequential number for objects: + element ocn { text }, + #body content/text, whether heading or ordinary paragraph: + element text { text }, + #endnotes, zero or many: + element endnote { + #endnotes number: + element en_n { text }, + #endnotes content/text: + element note { text } + }* + }+ + } +} + diff --git a/data/doc/sisu/v1/model/xml/input/rnc/dom.rnc b/data/doc/sisu/v1/model/xml/input/rnc/dom.rnc new file mode 100644 index 00000000..7391eca4 --- /dev/null +++ b/data/doc/sisu/v1/model/xml/input/rnc/dom.rnc @@ -0,0 +1,69 @@ +#% dom input model, part of SiSU and 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 skin { xsd:NCName } + | 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+ } diff --git a/data/doc/sisu/v1/model/xml/input/rnc/node.rnc b/data/doc/sisu/v1/model/xml/input/rnc/node.rnc new file mode 100644 index 00000000..5116f629 --- /dev/null +++ b/data/doc/sisu/v1/model/xml/input/rnc/node.rnc @@ -0,0 +1,67 @@ +#% node input model, part of SiSU and 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 skin { xsd:NCName } + | 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 } diff --git a/data/doc/sisu/v1/model/xml/input/rnc/sax.rnc b/data/doc/sisu/v1/model/xml/input/rnc/sax.rnc new file mode 100644 index 00000000..891a18f8 --- /dev/null +++ b/data/doc/sisu/v1/model/xml/input/rnc/sax.rnc @@ -0,0 +1,47 @@ +#% sax input model, part of SiSU and 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 skin { xsd:NCName } + | 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 } diff --git a/data/doc/sisu/v1/model/xml/input/rng/dom.rng b/data/doc/sisu/v1/model/xml/input/rng/dom.rng new file mode 100644 index 00000000..746421c8 --- /dev/null +++ b/data/doc/sisu/v1/model/xml/input/rng/dom.rng @@ -0,0 +1,166 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- dom rng input model, part of SiSU and under the same license --> +<grammar ns="" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <start> + <element name="document"> + <element name="head"> + <oneOrMore> + <element name="header"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <choice> + <element name="creator"> + <text/> + </element> + <element name="date"> + <data type="NMTOKEN"/> + </element> + <element name="date.available"> + <data type="NMTOKEN"/> + </element> + <element name="date.created"> + <data type="NMTOKEN"/> + </element> + <element name="date.issued"> + <data type="NMTOKEN"/> + </element> + <element name="date.modified"> + <data type="NMTOKEN"/> + </element> + <element name="date.valid"> + <data type="NMTOKEN"/> + </element> + <element name="italicize"> + <text/> + </element> + <element name="language"> + <data type="NCName"/> + </element> + <element name="links"> + <text/> + </element> + <element name="markup"> + <text/> + </element> + <element name="rights"> + <text/> + </element> + <element name="skin"> + <data type="NCName"/> + </element> + <element name="subject"> + <text/> + </element> + <element name="title"> + <text/> + </element> + <element name="type"> + <data type="NCName"/> + </element> + <element name="vocabulary"> + <data type="NCName"/> + </element> + </choice> + </element> + </oneOrMore> + </element> + <element name="body"> + <element name="heading1"> + <ref name="heading"/> + <element name="heading2"> + <ref name="heading"/> + <oneOrMore> + <ref name="contents1"/> + </oneOrMore> + <oneOrMore> + <element name="heading3"> + <ref name="heading"/> + <oneOrMore> + <ref name="contents1"/> + </oneOrMore> + </element> + </oneOrMore> + </element> + </element> + </element> + </element> + </start> + <define name="heading"> + <element name="heading"> + <ref name="object"/> + </element> + </define> + <define name="contents1"> + <element name="contents1"> + <ref name="heading"/> + <ref name="content"/> + <zeroOrMore> + <element name="contents2"> + <ref name="heading"/> + <ref name="content"/> + <zeroOrMore> + <element name="contents3"> + <ref name="heading"/> + <ref name="content"/> + </element> + </zeroOrMore> + </element> + </zeroOrMore> + </element> + </define> + <define name="object"> + <element name="object"> + <element name="text"> + <oneOrMore> + <choice> + <text/> + <ref name="italic"/> + <element name="bold"> + <data type="NMTOKEN"/> + </element> + <element name="endnote"> + <optional> + <element name="symbol"> + <text/> + </element> + </optional> + <element name="note"> + <oneOrMore> + <choice> + <text/> + <ref name="italic"/> + <element name="br"> + <empty/> + </element> + </choice> + </oneOrMore> + </element> + </element> + <element name="underscore"> + <ref name="italic"/> + </element> + <element name="image.path"> + <text/> + </element> + <element name="italic"> + <text/> + </element> + </choice> + </oneOrMore> + </element> + </element> + </define> + <define name="italic"> + <element name="italic"> + <text/> + </element> + </define> + <define name="content"> + <element name="content"> + <oneOrMore> + <ref name="object"/> + </oneOrMore> + </element> + </define> +</grammar> diff --git a/data/doc/sisu/v1/model/xml/input/rng/node.rng b/data/doc/sisu/v1/model/xml/input/rng/node.rng new file mode 100644 index 00000000..8b60cce8 --- /dev/null +++ b/data/doc/sisu/v1/model/xml/input/rng/node.rng @@ -0,0 +1,177 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- node rng input model, part of SiSU and under the same license --> +<grammar ns="" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <start> + <element name="document"> + <element name="head"> + <oneOrMore> + <element name="header"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <choice> + <element name="creator"> + <text/> + </element> + <element name="date"> + <data type="NMTOKEN"/> + </element> + <element name="date.available"> + <data type="NMTOKEN"/> + </element> + <element name="date.created"> + <data type="NMTOKEN"/> + </element> + <element name="date.issued"> + <data type="NMTOKEN"/> + </element> + <element name="date.modified"> + <data type="NMTOKEN"/> + </element> + <element name="date.valid"> + <data type="NMTOKEN"/> + </element> + <element name="italicize"> + <oneOrMore> + <choice> + <text/> + <ref name="i"/> + </choice> + </oneOrMore> + </element> + <element name="language"> + <data type="NCName"/> + </element> + <element name="links"> + <text/> + </element> + <element name="markup"> + <text/> + </element> + <element name="rights"> + <text/> + </element> + <element name="skin"> + <data type="NCName"/> + </element> + <element name="subject"> + <text/> + </element> + <element name="title"> + <text/> + </element> + <element name="type"> + <data type="NCName"/> + </element> + <element name="vocabulary"> + <data type="NCName"/> + </element> + </choice> + </element> + </oneOrMore> + </element> + <element name="body"> + <oneOrMore> + <element name="object"> + <choice> + <element name="text"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <oneOrMore> + <choice> + <text/> + <ref name="b"/> + <ref name="i"/> + <element name="br"> + <empty/> + </element> + <element name="endnote"> + <attribute name="symbol"> + <data type="NCName"/> + </attribute> + <oneOrMore> + <choice> + <text/> + <ref name="i"/> + </choice> + </oneOrMore> + </element> + <element name="image.path"> + <text/> + </element> + <element name="sub"> + <text/> + </element> + </choice> + </oneOrMore> + </element> + <group> + <element name="ocn"> + <empty/> + </element> + <element name="table"> + <attribute name="align"> + <data type="NCName"/> + </attribute> + <attribute name="bgcolor"> + <data type="NCName"/> + </attribute> + <attribute name="border"> + <data type="integer"/> + </attribute> + <attribute name="cellpadding"> + <data type="integer"/> + </attribute> + <attribute name="summary"/> + <attribute name="width"/> + <oneOrMore> + <element name="tr"> + <oneOrMore> + <element name="td"> + <attribute name="valign"> + <data type="NCName"/> + </attribute> + <attribute name="width"/> + <oneOrMore> + <choice> + <text/> + <ref name="b"/> + </choice> + </oneOrMore> + </element> + </oneOrMore> + </element> + </oneOrMore> + </element> + </group> + </choice> + <element name="node"> + <element name="id"> + <data type="integer"/> + </element> + <element name="parent"> + <data type="integer"/> + </element> + <optional> + <element name="offspring"> + <text/> + </element> + </optional> + </element> + </element> + </oneOrMore> + </element> + </element> + </start> + <define name="b"> + <element name="b"> + <text/> + </element> + </define> + <define name="i"> + <element name="i"> + <text/> + </element> + </define> +</grammar> diff --git a/data/doc/sisu/v1/model/xml/input/rng/sax.rng b/data/doc/sisu/v1/model/xml/input/rng/sax.rng new file mode 100644 index 00000000..14412938 --- /dev/null +++ b/data/doc/sisu/v1/model/xml/input/rng/sax.rng @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- sax rng input model, part of SiSU and under the same license --> +<grammar ns="" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <start> + <element name="document"> + <element name="head"> + <oneOrMore> + <element name="header"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <choice> + <element name="creator"> + <text/> + </element> + <element name="date"> + <data type="NMTOKEN"/> + </element> + <element name="date.available"> + <data type="NMTOKEN"/> + </element> + <element name="date.created"> + <data type="NMTOKEN"/> + </element> + <element name="date.issued"> + <data type="NMTOKEN"/> + </element> + <element name="date.modified"> + <data type="NMTOKEN"/> + </element> + <element name="date.valid"> + <data type="NMTOKEN"/> + </element> + <element name="italicize"> + <text/> + </element> + <element name="language"> + <data type="NCName"/> + </element> + <element name="links"> + <text/> + </element> + <element name="markup"> + <text/> + </element> + <element name="rights"> + <text/> + </element> + <element name="skin"> + <data type="NCName"/> + </element> + <element name="subject"> + <text/> + </element> + <element name="title"> + <text/> + </element> + <element name="type"> + <data type="NCName"/> + </element> + <element name="vocabulary"> + <data type="NCName"/> + </element> + </choice> + </element> + </oneOrMore> + </element> + <element name="body"> + <oneOrMore> + <element name="object"> + <optional> + <element name="text"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <oneOrMore> + <choice> + <text/> + <ref name="b"/> + <ref name="i"/> + <element name="endnote"> + <attribute name="symbol"> + <data type="NCName"/> + </attribute> + <oneOrMore> + <choice> + <text/> + <ref name="i"/> + <element name="br"> + <empty/> + </element> + </choice> + </oneOrMore> + </element> + <element name="u"> + <ref name="i"/> + </element> + <element name="image.path"> + <text/> + </element> + </choice> + </oneOrMore> + </element> + </optional> + </element> + </oneOrMore> + </element> + </element> + </start> + <define name="i"> + <element name="i"> + <text/> + </element> + </define> + <define name="b"> + <element name="b"> + <text/> + </element> + </define> +</grammar> diff --git a/data/doc/sisu/v1/model/xml/input/xsd/dom.xsd b/data/doc/sisu/v1/model/xml/input/xsd/dom.xsd new file mode 100644 index 00000000..8de8999a --- /dev/null +++ b/data/doc/sisu/v1/model/xml/input/xsd/dom.xsd @@ -0,0 +1,181 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- dom input model, part of SiSU and under the same license --> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> + <xs:element name="document"> + <xs:complexType> + <xs:sequence> + <xs:element ref="head"/> + <xs:element ref="body"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="head"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="header"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="header"> + <xs:complexType> + <xs:choice> + <xs:element ref="creator"/> + <xs:element ref="date"/> + <xs:element ref="date.available"/> + <xs:element ref="date.created"/> + <xs:element ref="date.issued"/> + <xs:element ref="date.modified"/> + <xs:element ref="date.valid"/> + <xs:element ref="italicize"/> + <xs:element ref="language"/> + <xs:element ref="links"/> + <xs:element ref="markup"/> + <xs:element ref="rights"/> + <xs:element ref="skin"/> + <xs:element ref="subject"/> + <xs:element ref="title"/> + <xs:element ref="type"/> + <xs:element ref="vocabulary"/> + </xs:choice> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="creator" type="xs:string"/> + <xs:element name="date" type="xs:NMTOKEN"/> + <xs:element name="date.available" type="xs:NMTOKEN"/> + <xs:element name="date.created" type="xs:NMTOKEN"/> + <xs:element name="date.issued" type="xs:NMTOKEN"/> + <xs:element name="date.modified" type="xs:NMTOKEN"/> + <xs:element name="date.valid" type="xs:NMTOKEN"/> + <xs:element name="italicize" type="xs:string"/> + <xs:element name="language" type="xs:NCName"/> + <xs:element name="links" type="xs:string"/> + <xs:element name="markup" type="xs:string"/> + <xs:element name="rights" type="xs:string"/> + <xs:element name="skin" type="xs:NCName"/> + <xs:element name="subject" type="xs:string"/> + <xs:element name="title" type="xs:string"/> + <xs:element name="type" type="xs:NCName"/> + <xs:element name="vocabulary" type="xs:NCName"/> + <xs:element name="body"> + <xs:complexType> + <xs:sequence> + <xs:element ref="heading1"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="heading1"> + <xs:complexType> + <xs:sequence> + <xs:element ref="heading"/> + <xs:element ref="heading2"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="heading2"> + <xs:complexType> + <xs:sequence> + <xs:element ref="heading"/> + <xs:element maxOccurs="unbounded" ref="contents1"/> + <xs:element maxOccurs="unbounded" ref="heading3"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="heading3"> + <xs:complexType> + <xs:sequence> + <xs:element ref="heading"/> + <xs:element maxOccurs="unbounded" ref="contents1"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="heading"> + <xs:complexType> + <xs:sequence> + <xs:element ref="object"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="contents1"> + <xs:complexType> + <xs:sequence> + <xs:element ref="heading"/> + <xs:element ref="content"/> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="contents2"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="contents2"> + <xs:complexType> + <xs:sequence> + <xs:element ref="heading"/> + <xs:element ref="content"/> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="contents3"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="contents3"> + <xs:complexType> + <xs:sequence> + <xs:element ref="heading"/> + <xs:element ref="content"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="object"> + <xs:complexType> + <xs:sequence> + <xs:element ref="text"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="text"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="italic"/> + <xs:element ref="bold"/> + <xs:element ref="endnote"/> + <xs:element ref="underscore"/> + <xs:element ref="image.path"/> + <xs:element ref="italic"/> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="bold" type="xs:NMTOKEN"/> + <xs:element name="endnote"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" ref="symbol"/> + <xs:element ref="note"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="symbol" type="xs:string"/> + <xs:element name="note"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="italic"/> + <xs:element ref="br"/> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="br"> + <xs:complexType/> + </xs:element> + <xs:element name="underscore"> + <xs:complexType> + <xs:sequence> + <xs:element ref="italic"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="image.path" type="xs:string"/> + <xs:element name="italic" type="xs:string"/> + <xs:element name="content"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="object"/> + </xs:sequence> + </xs:complexType> + </xs:element> +</xs:schema> diff --git a/data/doc/sisu/v1/model/xml/input/xsd/node.xsd b/data/doc/sisu/v1/model/xml/input/xsd/node.xsd new file mode 100644 index 00000000..f0fc9614 --- /dev/null +++ b/data/doc/sisu/v1/model/xml/input/xsd/node.xsd @@ -0,0 +1,159 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- node input model, part of SiSU and under the same license --> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> + <xs:element name="document"> + <xs:complexType> + <xs:sequence> + <xs:element ref="head"/> + <xs:element ref="body"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="head"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="header"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="header"> + <xs:complexType> + <xs:choice> + <xs:element ref="creator"/> + <xs:element ref="date"/> + <xs:element ref="date.available"/> + <xs:element ref="date.created"/> + <xs:element ref="date.issued"/> + <xs:element ref="date.modified"/> + <xs:element ref="date.valid"/> + <xs:element ref="italicize"/> + <xs:element ref="language"/> + <xs:element ref="links"/> + <xs:element ref="markup"/> + <xs:element ref="rights"/> + <xs:element ref="skin"/> + <xs:element ref="subject"/> + <xs:element ref="title"/> + <xs:element ref="type"/> + <xs:element ref="vocabulary"/> + </xs:choice> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="creator" type="xs:string"/> + <xs:element name="date" type="xs:NMTOKEN"/> + <xs:element name="date.available" type="xs:NMTOKEN"/> + <xs:element name="date.created" type="xs:NMTOKEN"/> + <xs:element name="date.issued" type="xs:NMTOKEN"/> + <xs:element name="date.modified" type="xs:NMTOKEN"/> + <xs:element name="date.valid" type="xs:NMTOKEN"/> + <xs:element name="italicize"> + <xs:complexType mixed="true"> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="i"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="language" type="xs:NCName"/> + <xs:element name="links" type="xs:string"/> + <xs:element name="markup" type="xs:string"/> + <xs:element name="rights" type="xs:string"/> + <xs:element name="skin" type="xs:NCName"/> + <xs:element name="subject" type="xs:string"/> + <xs:element name="title" type="xs:string"/> + <xs:element name="type" type="xs:NCName"/> + <xs:element name="vocabulary" type="xs:NCName"/> + <xs:element name="body"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="object"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="object"> + <xs:complexType> + <xs:sequence> + <xs:choice> + <xs:element ref="text"/> + <xs:sequence> + <xs:element ref="ocn"/> + <xs:element ref="table"/> + </xs:sequence> + </xs:choice> + <xs:element ref="node"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="text"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="b"/> + <xs:element ref="i"/> + <xs:element ref="br"/> + <xs:element ref="endnote"/> + <xs:element ref="image.path"/> + <xs:element ref="sub"/> + </xs:choice> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="br"> + <xs:complexType/> + </xs:element> + <xs:element name="endnote"> + <xs:complexType mixed="true"> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="i"/> + </xs:sequence> + <xs:attribute name="symbol" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="image.path" type="xs:string"/> + <xs:element name="sub" type="xs:string"/> + <xs:element name="ocn"> + <xs:complexType/> + </xs:element> + <xs:element name="table"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="tr"/> + </xs:sequence> + <xs:attribute name="align" use="required" type="xs:NCName"/> + <xs:attribute name="bgcolor" use="required" type="xs:NCName"/> + <xs:attribute name="border" use="required" type="xs:integer"/> + <xs:attribute name="cellpadding" use="required" type="xs:integer"/> + <xs:attribute name="summary" use="required"/> + <xs:attribute name="width" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="tr"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="td"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="td"> + <xs:complexType mixed="true"> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="b"/> + </xs:sequence> + <xs:attribute name="valign" use="required" type="xs:NCName"/> + <xs:attribute name="width" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="node"> + <xs:complexType> + <xs:sequence> + <xs:element ref="id"/> + <xs:element ref="parent"/> + <xs:element minOccurs="0" ref="offspring"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="id" type="xs:integer"/> + <xs:element name="parent" type="xs:integer"/> + <xs:element name="offspring" type="xs:string"/> + <xs:element name="b" type="xs:string"/> + <xs:element name="i" type="xs:string"/> +</xs:schema> diff --git a/data/doc/sisu/v1/model/xml/input/xsd/sax.xsd b/data/doc/sisu/v1/model/xml/input/xsd/sax.xsd new file mode 100644 index 00000000..450bfce5 --- /dev/null +++ b/data/doc/sisu/v1/model/xml/input/xsd/sax.xsd @@ -0,0 +1,108 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- sax input model, part of SiSU and under the same license --> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> + <xs:element name="document"> + <xs:complexType> + <xs:sequence> + <xs:element ref="head"/> + <xs:element ref="body"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="head"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="header"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="header"> + <xs:complexType> + <xs:choice> + <xs:element ref="creator"/> + <xs:element ref="date"/> + <xs:element ref="date.available"/> + <xs:element ref="date.created"/> + <xs:element ref="date.issued"/> + <xs:element ref="date.modified"/> + <xs:element ref="date.valid"/> + <xs:element ref="italicize"/> + <xs:element ref="language"/> + <xs:element ref="links"/> + <xs:element ref="markup"/> + <xs:element ref="rights"/> + <xs:element ref="skin"/> + <xs:element ref="subject"/> + <xs:element ref="title"/> + <xs:element ref="type"/> + <xs:element ref="vocabulary"/> + </xs:choice> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="creator" type="xs:string"/> + <xs:element name="date" type="xs:NMTOKEN"/> + <xs:element name="date.available" type="xs:NMTOKEN"/> + <xs:element name="date.created" type="xs:NMTOKEN"/> + <xs:element name="date.issued" type="xs:NMTOKEN"/> + <xs:element name="date.modified" type="xs:NMTOKEN"/> + <xs:element name="date.valid" type="xs:NMTOKEN"/> + <xs:element name="italicize" type="xs:string"/> + <xs:element name="language" type="xs:NCName"/> + <xs:element name="links" type="xs:string"/> + <xs:element name="markup" type="xs:string"/> + <xs:element name="rights" type="xs:string"/> + <xs:element name="skin" type="xs:NCName"/> + <xs:element name="subject" type="xs:string"/> + <xs:element name="title" type="xs:string"/> + <xs:element name="type" type="xs:NCName"/> + <xs:element name="vocabulary" type="xs:NCName"/> + <xs:element name="body"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="object"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="object"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" ref="text"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="text"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="b"/> + <xs:element ref="i"/> + <xs:element ref="endnote"/> + <xs:element ref="u"/> + <xs:element ref="image.path"/> + </xs:choice> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="endnote"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="i"/> + <xs:element ref="br"/> + </xs:choice> + <xs:attribute name="symbol" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="br"> + <xs:complexType/> + </xs:element> + <xs:element name="u"> + <xs:complexType> + <xs:sequence> + <xs:element ref="i"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="image.path" type="xs:string"/> + <xs:element name="i" type="xs:string"/> + <xs:element name="b" type="xs:string"/> +</xs:schema> diff --git a/data/doc/sisu/v1/model/xml/output/rnc/dom.rnc b/data/doc/sisu/v1/model/xml/output/rnc/dom.rnc new file mode 100644 index 00000000..e8a3ed42 --- /dev/null +++ b/data/doc/sisu/v1/model/xml/output/rnc/dom.rnc @@ -0,0 +1,144 @@ +#% dom output model, part of SiSU and under the same license +default namespace = "" +namespace xlink = "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 xlink:actuate { xsd:NCName }, + attribute xlink:href { text }, + attribute xlink:show { xsd:NCName }, + attribute xlink: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 xlink:href { xsd:anyURI }, + attribute xlink: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 })+ + } + } diff --git a/data/doc/sisu/v1/model/xml/output/rnc/sax.rnc b/data/doc/sisu/v1/model/xml/output/rnc/sax.rnc new file mode 100644 index 00000000..b242afb3 --- /dev/null +++ b/data/doc/sisu/v1/model/xml/output/rnc/sax.rnc @@ -0,0 +1,164 @@ +# % sax output model, part of SiSU and distributed under the same license + +default namespace = "" +namespace xlink = "http://www.w3.org/1999/xlink" + +start = + element document { + element head { + (br + | meta + | element creator { + attribute class { xsd:NCName }, + (text + | element link { + attribute xlink:href { xsd:anyURI }, + attribute xlink: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 xlink:actuate { xsd:NCName }, + attribute xlink:href { text }, + attribute xlink:show { xsd:NCName }, + attribute xlink: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 xlink:href { xsd:anyURI }, + attribute xlink:type { xsd:NCName }, + (xsd:anyURI | text | b | i | sup)+ + } +u = element u { (text | b | i)+ } +del = element del { (text | b | i | link)+ } diff --git a/data/doc/sisu/v1/model/xml/output/rng/dom.rng b/data/doc/sisu/v1/model/xml/output/rng/dom.rng new file mode 100644 index 00000000..eea891ec --- /dev/null +++ b/data/doc/sisu/v1/model/xml/output/rng/dom.rng @@ -0,0 +1,438 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- dom output model, part of SiSU and under the same license --> +<grammar xmlns:xlink="http://www.w3.org/1999/xlink" ns="" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <start> + <element name="document"> + <element name="head"> + <oneOrMore> + <element name="header"> + <ref name="meta"/> + <choice> + <element name="creator"> + <text/> + </element> + <element name="date"> + <data type="NMTOKEN"/> + </element> + <element name="date_available"> + <data type="NMTOKEN"/> + </element> + <element name="date_created"> + <data type="NMTOKEN"/> + </element> + <element name="date_issued"> + <data type="NMTOKEN"/> + </element> + <element name="date_modified"> + <data type="NMTOKEN"/> + </element> + <element name="date_valid"> + <data type="NMTOKEN"/> + </element> + <element name="keywords"> + <text/> + </element> + <element name="language"> + <data type="NCName"/> + </element> + <element name="rights"> + <oneOrMore> + <choice> + <text/> + <ref name="link"/> + </choice> + </oneOrMore> + </element> + <element name="source"> + <text/> + </element> + <element name="structure"> + <text/> + </element> + <element name="subject"> + <text/> + </element> + <element name="title"> + <text/> + </element> + <element name="type"> + <text/> + </element> + <element name="source_control"> + <oneOrMore> + <choice> + <ref name="br"/> + <ref name="meta"/> + <element name="sc"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <text/> + </element> + </choice> + </oneOrMore> + </element> + </choice> + </element> + </oneOrMore> + </element> + <element name="body"> + <oneOrMore> + <element name="heading1"> + <ref name="heading"/> + <zeroOrMore> + <ref name="contents1"/> + </zeroOrMore> + <zeroOrMore> + <element name="heading2"> + <ref name="heading"/> + <zeroOrMore> + <ref name="contents1"/> + </zeroOrMore> + <zeroOrMore> + <element name="heading3"> + <ref name="heading"/> + <oneOrMore> + <element name="contents1"> + <ref name="heading"/> + <ref name="content"/> + <zeroOrMore> + <element name="contents2"> + <ref name="heading"/> + <ref name="content"/> + <zeroOrMore> + <element name="contents3"> + <ref name="heading"/> + <ref name="content"/> + </element> + </zeroOrMore> + </element> + </zeroOrMore> + </element> + </oneOrMore> + </element> + </zeroOrMore> + </element> + </zeroOrMore> + </element> + </oneOrMore> + </element> + </element> + </start> + <define name="meta"> + <element name="meta"> + <text/> + </element> + </define> + <define name="br"> + <element name="br"> + <empty/> + </element> + </define> + <define name="heading"> + <element name="heading"> + <ref name="object"/> + </element> + </define> + <define name="contents1"> + <element name="contents1"> + <ref name="heading"/> + <ref name="content"/> + <zeroOrMore> + <element name="contents2"> + <ref name="heading"/> + <ref name="content"/> + <zeroOrMore> + <element name="contents3"> + <ref name="heading"/> + <ref name="content"/> + </element> + </zeroOrMore> + </element> + </zeroOrMore> + </element> + </define> + <define name="content"> + <element name="content"> + <zeroOrMore> + <ref name="object"/> + </zeroOrMore> + </element> + </define> +<!-- + <define name="contents1"> + <element name="contents1"> + <ref name="heading"/> + <element name="content"> + <oneOrMore> + <ref name="object"/> + </oneOrMore> + </element> + </element> + </define> +--> + <define name="object"> + <element name="object"> + <attribute name="id"> + <data type="integer"/> + </attribute> + <element name="ocn"> + <text/> + </element> + <optional> + <element name="nametag"> + <text/> + </element> + </optional> + <choice> + <element name="table"> + <attribute name="align"> + <data type="NCName"/> + </attribute> + <attribute name="bgcolor"> + <data type="NCName"/> + </attribute> + <attribute name="border"> + <data type="integer"/> + </attribute> + <attribute name="cellpadding"> + <data type="integer"/> + </attribute> + <attribute name="summary"/> + <attribute name="width"/> + <oneOrMore> + <element name="tr"> + <oneOrMore> + <element name="td"> + <attribute name="valign"> + <data type="NCName"/> + </attribute> + <attribute name="width"/> + <oneOrMore> + <choice> + <text/> + <ref name="b"/> + <ref name="i"/> + </choice> + </oneOrMore> + </element> + </oneOrMore> + </element> + </oneOrMore> + </element> + <element name="text"> + <optional> + <attribute name="class"> + <data type="NCName"/> + </attribute> + </optional> + <oneOrMore> + <choice> + <text/> + <ref name="b"/> + <ref name="del"/> + <ref name="endnote"/> + <ref name="i"/> + <ref name="link"/> + <element name="br"> + <empty/> + </element> + <element name="endnote"> + <element name="number"> + <data type="integer"/> + </element> + <element name="note"> + <oneOrMore> + <choice> + <text/> + <ref name="i"/> + <ref name="link"/> + </choice> + </oneOrMore> + </element> + </element> + <element name="image"> + <attribute name="height"> + <data type="integer"/> + </attribute> + <attribute name="width"> + <data type="integer"/> + </attribute> + <attribute name="xlink:actuate"> + <data type="NCName"/> + </attribute> + <attribute name="xlink:href"/> + <attribute name="xlink:show"> + <data type="NCName"/> + </attribute> + <attribute name="xlink:type"> + <data type="NCName"/> + </attribute> + </element> + <element name="sub"> + <text/> + </element> + </choice> + </oneOrMore> + </element> + </choice> +<!-- + <element name="text"> + <optional> + <attribute name="class"> + <data type="NCName"/> + </attribute> + </optional> + <oneOrMore> + <choice> + <text/> + <ref name="i"/> + <element name="b"> + <oneOrMore> + <choice> + <text/> + <ref name="i"/> + </choice> + </oneOrMore> + </element> + <element name="endnote"> + <choice> + <element name="number"> + <data type="integer"/> + </element> + <element name="symbol"> + <text/> + </element> + </choice> + <element name="note"> + <oneOrMore> + <choice> + <text/> + <ref name="i"/> + <element name="br"> + <empty/> + </element> + <element name="link"> + <attribute name="xlink:href"> + <data type="anyURI"/> + </attribute> + <attribute name="xlink:type"> + <data type="NCName"/> + </attribute> + <data type="anyURI"/> + </element> + </choice> + </oneOrMore> + </element> + </element> + <element name="u"> + <ref name="i"/> + </element> + </choice> + </oneOrMore> + </element> +--> + </element> + </define> +<!-- + <define name="content"> + <element name="content"> + <zeroOrMore> + <ref name="object"/> + </zeroOrMore> + </element> + </define> + <define name="b"> + <element name="b"> + <text/> + </element> + </define> +--> + <define name="i"> + <element name="i"> + <text/> + </element> + </define> + <define name="b"> + <element name="i"> + <text/> + </element> + </define> + <define name="u"> + <element name="u"> + <oneOrMore> + <choice> + <text/> + <ref name="b"/> + <ref name="i"/> + </choice> + </oneOrMore> + </element> + </define> + <define name="sub"> + <element name="sub"> + <data type="NCName"/> + </element> + </define> + <define name="sup"> + <element name="sup"> + <data type="NCName"/> + </element> + </define> + <define name="del"> + <element name="del"> + <oneOrMore> + <choice> + <text/> + <ref name="b"/> + <ref name="i"/> + <ref name="link"/> + </choice> + </oneOrMore> + </element> + </define> + <define name="link"> + <element name="link"> + <attribute name="xlink:href"> + <data type="anyURI"/> + </attribute> + <attribute name="xlink:type"> + <data type="NCName"/> + </attribute> + <data type="anyURI"/> + </element> + </define> + <define name="endnote"> + <element name="endnote"> + <choice> + <element name="number"> + <data type="integer"/> + </element> + <element name="symbol"> + <text/> + </element> + </choice> + <element name="note"> + <oneOrMore> + <choice> + <text/> + <ref name="b"/> + <ref name="br"/> + <ref name="del"/> + <ref name="i"/> + <ref name="link"/> + <ref name="sub"/> + <ref name="sup"/> + <ref name="u"/> + <element name="em"> + <data type="NCName"/> + </element> + <element name="sub"> + <data type="NCName"/> + </element> + </choice> + </oneOrMore> + </element> + </element> + </define> +</grammar> diff --git a/data/doc/sisu/v1/model/xml/output/rng/sax.rng b/data/doc/sisu/v1/model/xml/output/rng/sax.rng new file mode 100644 index 00000000..a2df4fed --- /dev/null +++ b/data/doc/sisu/v1/model/xml/output/rng/sax.rng @@ -0,0 +1,374 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- % sax output model, part of SiSU and distributed under the same license --> +<grammar xmlns:xlink="http://www.w3.org/1999/xlink" ns="" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <start> + <element name="document"> + <element name="head"> + <oneOrMore> + <choice> + <ref name="br"/> + <ref name="meta"/> + <element name="creator"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <oneOrMore> + <choice> + <text/> + <element name="link"> + <attribute name="xlink:href"> + <data type="anyURI"/> + </attribute> + <attribute name="xlink:type"> + <data type="NCName"/> + </attribute> + <data type="anyURI"/> + </element> + </choice> + </oneOrMore> + </element> + <element name="date"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <data type="NMTOKEN"/> + </element> + <element name="date_available"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <data type="NMTOKEN"/> + </element> + <element name="date_created"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <data type="NMTOKEN"/> + </element> + <element name="date_issued"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <data type="NMTOKEN"/> + </element> + <element name="date_modified"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <data type="NMTOKEN"/> + </element> + <element name="date_valid"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <data type="NMTOKEN"/> + </element> + <element name="keywords"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <text/> + </element> + <element name="language"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <data type="NCName"/> + </element> + <element name="meta"> + <data type="NMTOKEN"/> + </element> + <element name="rights"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <oneOrMore> + <choice> + <text/> + <ref name="link"/> + </choice> + </oneOrMore> + </element> + <element name="source"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <text/> + </element> + <element name="structure"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <text/> + </element> + <element name="subject"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <text/> + </element> + <element name="title"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <text/> + </element> + <element name="type"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <text/> + </element> + <element name="source_control"> + <oneOrMore> + <choice> + <ref name="br"/> + <ref name="meta"/> + <element name="sc"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <text/> + </element> + </choice> + </oneOrMore> + </element> + </choice> + </oneOrMore> + </element> + <element name="body"> + <oneOrMore> + <element name="object"> + <attribute name="id"/> + <!-- + <attribute name="id"> + <data type="integer"/> + </attribute> + --> + <element name="ocn"> + <text/> + <!-- + <data type="integer"/> + --> + </element> + <optional> + <element name="text"> + <attribute name="class"> + <data type="NCName"/> + </attribute> + <oneOrMore> + <choice> + <text/> + <ref name="b"/> + <ref name="br"/> + <ref name="del"/> + <ref name="en"/> + <ref name="i"/> + <ref name="link"/> + <ref name="sub"/> + <ref name="sup"/> + <ref name="u"/> + <element name="image"> + <optional> + <attribute name="alt"/> + </optional> + <optional> + <attribute name="height"> + <data type="integer"/> + </attribute> + </optional> + <optional> + <attribute name="width"> + <data type="integer"/> + </attribute> + </optional> + <attribute name="xlink:actuate"> + <data type="NCName"/> + </attribute> + <attribute name="xlink:href"/> + <attribute name="xlink:show"> + <data type="NCName"/> + </attribute> + <attribute name="xlink:type"> + <data type="NCName"/> + </attribute> + </element> + </choice> + </oneOrMore> + </element> + </optional> + <optional> + <element name="table"> + <attribute name="align"> + <data type="NCName"/> + </attribute> + <attribute name="bgcolor"> + <data type="NCName"/> + </attribute> + <attribute name="border"> + <data type="integer"/> + </attribute> + <attribute name="cellpadding"> + <data type="integer"/> + </attribute> + <attribute name="summary"/> + <attribute name="width"/> + <oneOrMore> + <element name="tr"> + <oneOrMore> + <element name="td"> + <attribute name="valign"> + <data type="NCName"/> + </attribute> + <attribute name="width"/> + <oneOrMore> + <choice> + <text/> + <ref name="b"/> + <ref name="i"/> + </choice> + </oneOrMore> + </element> + </oneOrMore> + </element> + </oneOrMore> + </element> + </optional> + <zeroOrMore> + <element name="endnote"> + <optional> + <attribute name="notenumber"> + <data type="integer"/> + </attribute> + </optional> + <optional> + <attribute name="symbol"/> + </optional> + <choice> + <element name="number"> + <data type="integer"/> + </element> + <element name="symbol"> + <text/> + </element> + </choice> + <element name="note"> + <oneOrMore> + <choice> + <text/> + <ref name="b"/> + <ref name="br"/> + <ref name="del"/> + <ref name="i"/> + <ref name="link"/> + <ref name="sup"/> + <ref name="u"/> + <element name="em"> + <data type="NCName"/> + </element> + <element name="sub"> + <data type="NCName"/> + </element> + </choice> + </oneOrMore> + </element> + </element> + </zeroOrMore> + </element> + </oneOrMore> + </element> + </element> + </start> + <define name="meta"> + <element name="meta"> + <text/> + </element> + </define> + <define name="br"> + <element name="br"> + <empty/> + </element> + </define> + <define name="b"> + <element name="b"> + <oneOrMore> + <choice> + <text/> + <ref name="en"/> + <ref name="i"/> + <ref name="link"/> + <ref name="sup"/> + </choice> + </oneOrMore> + </element> + </define> + <define name="i"> + <element name="i"> + <oneOrMore> + <choice> + <text/> + <ref name="b"/> + <ref name="br"/> + <ref name="sup"/> + </choice> + </oneOrMore> + </element> + </define> + <define name="en"> + <element name="en"> + <text/> + </element> + </define> + <define name="sub"> + <element name="sub"> + <data type="NCName"/> + </element> + </define> + <define name="sup"> + <element name="sup"> + <data type="NCName"/> + </element> + </define> + <define name="link"> + <element name="link"> + <attribute name="xlink:href"> + <data type="anyURI"/> + </attribute> + <attribute name="xlink:type"> + <data type="NCName"/> + </attribute> + <oneOrMore> + <choice> + <data type="anyURI"/> + <text/> + <ref name="b"/> + <ref name="i"/> + <ref name="sup"/> + </choice> + </oneOrMore> + </element> + </define> + <define name="u"> + <element name="u"> + <oneOrMore> + <choice> + <text/> + <ref name="b"/> + <ref name="i"/> + </choice> + </oneOrMore> + </element> + </define> + <define name="del"> + <element name="del"> + <oneOrMore> + <choice> + <text/> + <ref name="b"/> + <ref name="i"/> + <ref name="link"/> + </choice> + </oneOrMore> + </element> + </define> +</grammar> diff --git a/data/doc/sisu/v1/model/xml/output/xsd/dom.xsd b/data/doc/sisu/v1/model/xml/output/xsd/dom.xsd new file mode 100644 index 00000000..3132338a --- /dev/null +++ b/data/doc/sisu/v1/model/xml/output/xsd/dom.xsd @@ -0,0 +1,327 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- dom output model, part of SiSU and under the same license --> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:xlink="http://www.w3.org/1999/xlink"> + <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/> + <xs:element name="document"> + <xs:complexType> + <xs:sequence> + <xs:element ref="head"/> + <xs:element ref="body"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="head"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="header"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="header"> + <xs:complexType> + <xs:sequence> + <xs:element ref="meta"/> + <xs:choice> + <xs:element ref="creator"/> + <xs:element ref="date"/> + <xs:element ref="date_available"/> + <xs:element ref="date_created"/> + <xs:element ref="date_issued"/> + <xs:element ref="date_modified"/> + <xs:element ref="date_valid"/> + <xs:element ref="keywords"/> + <xs:element ref="language"/> + <xs:element ref="rights"/> + <xs:element ref="source"/> + <xs:element ref="structure"/> + <xs:element ref="subject"/> + <xs:element ref="title"/> + <xs:element ref="type"/> + <xs:element ref="source_control"/> + </xs:choice> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="creator" type="xs:string"/> + <xs:element name="date" type="xs:NMTOKEN"/> + <xs:element name="date_available" type="xs:NMTOKEN"/> + <xs:element name="date_created" type="xs:NMTOKEN"/> + <xs:element name="date_issued" type="xs:NMTOKEN"/> + <xs:element name="date_modified" type="xs:NMTOKEN"/> + <xs:element name="date_valid" type="xs:NMTOKEN"/> + <xs:element name="keywords" type="xs:string"/> + <xs:element name="language" type="xs:NCName"/> + <xs:element name="rights"> + <xs:complexType mixed="true"> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="link"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="source" type="xs:string"/> + <xs:element name="structure" type="xs:string"/> + <xs:element name="subject" type="xs:string"/> + <xs:element name="title" type="xs:string"/> + <xs:element name="type" type="xs:string"/> + <xs:element name="source_control"> + <xs:complexType> + <xs:choice maxOccurs="unbounded"> + <xs:element ref="br"/> + <xs:element ref="meta"/> + <xs:element ref="sc"/> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="sc"> + <xs:complexType mixed="true"> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="body"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="heading1"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="heading1"> + <xs:complexType> + <xs:sequence> + <xs:element ref="heading"/> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="contents1"/> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="heading2"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="heading2"> + <xs:complexType> + <xs:sequence> + <xs:element ref="heading"/> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="contents1"/> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="heading3"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="heading3"> + <xs:complexType> + <xs:sequence> + <xs:element ref="heading"/> + <xs:element maxOccurs="unbounded" ref="contents1"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="contents1"> + <xs:complexType> + <xs:sequence> + <xs:element ref="heading"/> + <xs:element ref="content"/> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="contents2"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="contents2"> + <xs:complexType> + <xs:sequence> + <xs:element ref="heading"/> + <xs:element ref="content"/> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="contents3"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="contents3"> + <xs:complexType> + <xs:sequence> + <xs:element ref="heading"/> + <xs:element ref="content"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="meta" type="xs:string"/> + <xs:element name="br"> + <xs:complexType/> + </xs:element> + <xs:element name="heading"> + <xs:complexType> + <xs:sequence> + <xs:element ref="object"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="content"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="object"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- + <define name="contents1"> + <element name="contents1"> + <ref name="heading"/> + <element name="content"> + <oneOrMore> + <ref name="object"/> + </oneOrMore> + </element> + </element> + </define> + --> + <xs:element name="object"> + <xs:complexType> + <xs:sequence> + <xs:element ref="ocn"/> + <xs:element minOccurs="0" ref="nametag"/> + <xs:choice> + <xs:element ref="table"/> + <xs:element ref="text"/> + </xs:choice> + </xs:sequence> + <xs:attribute name="id" use="required" type="xs:integer"/> + </xs:complexType> + </xs:element> + <xs:element name="ocn" type="xs:string"/> + <xs:element name="nametag" type="xs:string"/> + <xs:element name="table"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="tr"/> + </xs:sequence> + <xs:attribute name="align" use="required" type="xs:NCName"/> + <xs:attribute name="bgcolor" use="required" type="xs:NCName"/> + <xs:attribute name="border" use="required" type="xs:integer"/> + <xs:attribute name="cellpadding" use="required" type="xs:integer"/> + <xs:attribute name="summary" use="required"/> + <xs:attribute name="width" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="tr"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="td"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="td"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="i"/> + <xs:element ref="i"/> + </xs:choice> + <xs:attribute name="valign" use="required" type="xs:NCName"/> + <xs:attribute name="width" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="text"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="i"/> + <xs:element ref="del"/> + <xs:element ref="endnote"/> + <xs:element ref="i"/> + <xs:element ref="link"/> + <xs:element ref="br"/> + <xs:element name="endnote"> + <xs:complexType> + <xs:sequence> + <xs:element ref="number"/> + <xs:element name="note"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="i"/> + <xs:element ref="link"/> + </xs:choice> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element ref="image"/> + <xs:element name="sub" type="xs:string"/> + </xs:choice> + <xs:attribute name="class" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="number" type="xs:integer"/> + <xs:element name="image"> + <xs:complexType> + <xs:attribute name="height" use="required" type="xs:integer"/> + <xs:attribute name="width" use="required" type="xs:integer"/> + <xs:attribute ref="xlink:actuate" use="required"/> + <xs:attributeGroup ref="xlink:href"/> + <xs:attribute ref="xlink:show" use="required"/> + <xs:attribute ref="xlink:type" use="required"/> + </xs:complexType> + </xs:element> + <!-- + <define name="content"> + <element name="content"> + <zeroOrMore> + <ref name="object"/> + </zeroOrMore> + </element> + </define> + <define name="b"> + <element name="b"> + <text/> + </element> + </define> + --> + <xs:element name="i" type="xs:string"/> + <xs:element name="u"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="i"/> + <xs:element ref="i"/> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="sub" type="xs:NCName"/> + <xs:element name="sup" type="xs:NCName"/> + <xs:element name="del"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="i"/> + <xs:element ref="i"/> + <xs:element ref="link"/> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="link"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:anyURI"> + <xs:attributeGroup ref="xlink:href1"/> + <xs:attribute ref="xlink:type" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="endnote"> + <xs:complexType> + <xs:sequence> + <xs:choice> + <xs:element ref="number"/> + <xs:element ref="symbol"/> + </xs:choice> + <xs:element name="note"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="i"/> + <xs:element ref="br"/> + <xs:element ref="del"/> + <xs:element ref="i"/> + <xs:element ref="link"/> + <xs:element ref="sub"/> + <xs:element ref="sup"/> + <xs:element ref="u"/> + <xs:element ref="em"/> + <xs:element ref="sub"/> + </xs:choice> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="symbol" type="xs:string"/> + <xs:element name="em" type="xs:NCName"/> +</xs:schema> diff --git a/data/doc/sisu/v1/model/xml/output/xsd/sax.xsd b/data/doc/sisu/v1/model/xml/output/xsd/sax.xsd new file mode 100644 index 00000000..db6eb147 --- /dev/null +++ b/data/doc/sisu/v1/model/xml/output/xsd/sax.xsd @@ -0,0 +1,332 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- % sax output model, part of SiSU and distributed under the same license --> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:xlink="http://www.w3.org/1999/xlink"> + <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/> + <xs:element name="document"> + <xs:complexType> + <xs:sequence> + <xs:element ref="head"/> + <xs:element ref="body"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="head"> + <xs:complexType> + <xs:choice maxOccurs="unbounded"> + <xs:element ref="br"/> + <xs:element ref="meta"/> + <xs:element ref="creator"/> + <xs:element ref="date"/> + <xs:element ref="date_available"/> + <xs:element ref="date_created"/> + <xs:element ref="date_issued"/> + <xs:element ref="date_modified"/> + <xs:element ref="date_valid"/> + <xs:element ref="keywords"/> + <xs:element ref="language"/> + <xs:element name="meta" type="xs:NMTOKEN"/> + <xs:element ref="rights"/> + <xs:element ref="source"/> + <xs:element ref="structure"/> + <xs:element ref="subject"/> + <xs:element ref="title"/> + <xs:element ref="type"/> + <xs:element ref="source_control"/> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="creator"> + <xs:complexType mixed="true"> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="unbounded" name="link"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:anyURI"> + <xs:attributeGroup ref="xlink:href"/> + <xs:attribute ref="xlink:type" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="date"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:NMTOKEN"> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="date_available"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:NMTOKEN"> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="date_created"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:NMTOKEN"> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="date_issued"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:NMTOKEN"> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="date_modified"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:NMTOKEN"> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="date_valid"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:NMTOKEN"> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="keywords"> + <xs:complexType mixed="true"> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="language"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:NCName"> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="rights"> + <xs:complexType mixed="true"> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="link"/> + </xs:sequence> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="source"> + <xs:complexType mixed="true"> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="structure"> + <xs:complexType mixed="true"> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="subject"> + <xs:complexType mixed="true"> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="title"> + <xs:complexType mixed="true"> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="type"> + <xs:complexType mixed="true"> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="source_control"> + <xs:complexType> + <xs:choice maxOccurs="unbounded"> + <xs:element ref="br"/> + <xs:element ref="meta"/> + <xs:element ref="sc"/> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="sc"> + <xs:complexType mixed="true"> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="body"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="object"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="object"> + <xs:complexType> + <xs:sequence> + <xs:element ref="ocn"/> + <xs:element minOccurs="0" ref="text"/> + <xs:element minOccurs="0" ref="table"/> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="endnote"/> + </xs:sequence> + <xs:attribute name="id" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="ocn" type="xs:string"/> + <xs:element name="text"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="b"/> + <xs:element ref="br"/> + <xs:element ref="del"/> + <xs:element ref="en"/> + <xs:element ref="i"/> + <xs:element ref="link"/> + <xs:element ref="sub"/> + <xs:element ref="sup"/> + <xs:element ref="u"/> + <xs:element ref="image"/> + </xs:choice> + <xs:attribute name="class" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="image"> + <xs:complexType> + <xs:attribute name="alt"/> + <xs:attribute name="height" type="xs:integer"/> + <xs:attribute name="width" type="xs:integer"/> + <xs:attribute ref="xlink:actuate" use="required"/> + <xs:attributeGroup ref="xlink:href1"/> + <xs:attribute ref="xlink:show" use="required"/> + <xs:attribute ref="xlink:type" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="table"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="tr"/> + </xs:sequence> + <xs:attribute name="align" use="required" type="xs:NCName"/> + <xs:attribute name="bgcolor" use="required" type="xs:NCName"/> + <xs:attribute name="border" use="required" type="xs:integer"/> + <xs:attribute name="cellpadding" use="required" type="xs:integer"/> + <xs:attribute name="summary" use="required"/> + <xs:attribute name="width" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="tr"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="td"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="td"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="b"/> + <xs:element ref="i"/> + </xs:choice> + <xs:attribute name="valign" use="required" type="xs:NCName"/> + <xs:attribute name="width" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="endnote"> + <xs:complexType> + <xs:sequence> + <xs:choice> + <xs:element ref="number"/> + <xs:element ref="symbol"/> + </xs:choice> + <xs:element ref="note"/> + </xs:sequence> + <xs:attribute name="notenumber" type="xs:integer"/> + <xs:attribute name="symbol"/> + </xs:complexType> + </xs:element> + <xs:element name="number" type="xs:integer"/> + <xs:element name="symbol" type="xs:string"/> + <xs:element name="note"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="b"/> + <xs:element ref="br"/> + <xs:element ref="del"/> + <xs:element ref="i"/> + <xs:element ref="link"/> + <xs:element ref="sup"/> + <xs:element ref="u"/> + <xs:element ref="em"/> + <xs:element ref="sub"/> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="em" type="xs:NCName"/> + <xs:element name="sub" type="xs:NCName"/> + <xs:element name="meta" type="xs:string"/> + <xs:element name="br"> + <xs:complexType/> + </xs:element> + <xs:element name="b"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="en"/> + <xs:element ref="i"/> + <xs:element ref="link"/> + <xs:element ref="sup"/> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="i"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="b"/> + <xs:element ref="br"/> + <xs:element ref="sup"/> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="en" type="xs:string"/> + <xs:element name="sup" type="xs:NCName"/> + <xs:element name="link"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="b"/> + <xs:element ref="i"/> + <xs:element ref="sup"/> + </xs:choice> + <xs:attributeGroup ref="xlink:href"/> + <xs:attribute ref="xlink:type" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="u"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="b"/> + <xs:element ref="i"/> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="del"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="b"/> + <xs:element ref="i"/> + <xs:element ref="link"/> + </xs:choice> + </xs:complexType> + </xs:element> +</xs:schema> |