aboutsummaryrefslogtreecommitdiffhomepage
path: root/data/doc/sisu/model/xml/input
diff options
context:
space:
mode:
Diffstat (limited to 'data/doc/sisu/model/xml/input')
-rw-r--r--data/doc/sisu/model/xml/input/rnc/dom.rnc69
-rw-r--r--data/doc/sisu/model/xml/input/rnc/node.rnc67
-rw-r--r--data/doc/sisu/model/xml/input/rnc/sax.rnc47
-rw-r--r--data/doc/sisu/model/xml/input/rng/dom.rng166
-rw-r--r--data/doc/sisu/model/xml/input/rng/node.rng177
-rw-r--r--data/doc/sisu/model/xml/input/rng/sax.rng120
-rw-r--r--data/doc/sisu/model/xml/input/xsd/dom.xsd181
-rw-r--r--data/doc/sisu/model/xml/input/xsd/node.xsd159
-rw-r--r--data/doc/sisu/model/xml/input/xsd/sax.xsd108
9 files changed, 1094 insertions, 0 deletions
diff --git a/data/doc/sisu/model/xml/input/rnc/dom.rnc b/data/doc/sisu/model/xml/input/rnc/dom.rnc
new file mode 100644
index 00000000..7391eca4
--- /dev/null
+++ b/data/doc/sisu/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/model/xml/input/rnc/node.rnc b/data/doc/sisu/model/xml/input/rnc/node.rnc
new file mode 100644
index 00000000..5116f629
--- /dev/null
+++ b/data/doc/sisu/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/model/xml/input/rnc/sax.rnc b/data/doc/sisu/model/xml/input/rnc/sax.rnc
new file mode 100644
index 00000000..891a18f8
--- /dev/null
+++ b/data/doc/sisu/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/model/xml/input/rng/dom.rng b/data/doc/sisu/model/xml/input/rng/dom.rng
new file mode 100644
index 00000000..746421c8
--- /dev/null
+++ b/data/doc/sisu/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/model/xml/input/rng/node.rng b/data/doc/sisu/model/xml/input/rng/node.rng
new file mode 100644
index 00000000..8b60cce8
--- /dev/null
+++ b/data/doc/sisu/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/model/xml/input/rng/sax.rng b/data/doc/sisu/model/xml/input/rng/sax.rng
new file mode 100644
index 00000000..14412938
--- /dev/null
+++ b/data/doc/sisu/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/model/xml/input/xsd/dom.xsd b/data/doc/sisu/model/xml/input/xsd/dom.xsd
new file mode 100644
index 00000000..8de8999a
--- /dev/null
+++ b/data/doc/sisu/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/model/xml/input/xsd/node.xsd b/data/doc/sisu/model/xml/input/xsd/node.xsd
new file mode 100644
index 00000000..f0fc9614
--- /dev/null
+++ b/data/doc/sisu/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/model/xml/input/xsd/sax.xsd b/data/doc/sisu/model/xml/input/xsd/sax.xsd
new file mode 100644
index 00000000..450bfce5
--- /dev/null
+++ b/data/doc/sisu/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>