aboutsummaryrefslogtreecommitdiffstats
path: root/lib/docbuilder/xsd
diff options
context:
space:
mode:
Diffstat (limited to 'lib/docbuilder/xsd')
-rwxr-xr-xlib/docbuilder/xsd/application.xsd31
-rwxr-xr-xlib/docbuilder/xsd/appref.xsd27
-rwxr-xr-xlib/docbuilder/xsd/book.xsd292
-rwxr-xr-xlib/docbuilder/xsd/chapter.xsd45
-rwxr-xr-xlib/docbuilder/xsd/common.entities.xsd2
-rwxr-xr-xlib/docbuilder/xsd/common.header.xsd29
-rwxr-xr-xlib/docbuilder/xsd/common.image.xsd18
-rwxr-xr-xlib/docbuilder/xsd/common.refs.xsd102
-rwxr-xr-xlib/docbuilder/xsd/common.table.xsd42
-rwxr-xr-xlib/docbuilder/xsd/common.xsd212
-rwxr-xr-xlib/docbuilder/xsd/comref.xsd26
-rwxr-xr-xlib/docbuilder/xsd/cref.xsd35
-rwxr-xr-xlib/docbuilder/xsd/erlref.xsd26
-rwxr-xr-xlib/docbuilder/xsd/fascicules.xsd25
-rwxr-xr-xlib/docbuilder/xsd/fileref.xsd26
-rwxr-xr-xlib/docbuilder/xsd/part.xsd31
16 files changed, 969 insertions, 0 deletions
diff --git a/lib/docbuilder/xsd/application.xsd b/lib/docbuilder/xsd/application.xsd
new file mode 100755
index 0000000000..eb666cb6c7
--- /dev/null
+++ b/lib/docbuilder/xsd/application.xsd
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:include schemaLocation="common.xsd"/>
+ <xs:include schemaLocation="common.header.xsd"/>
+ <xs:element name="application">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="header"/>
+ <xs:element minOccurs="0" ref="description"/>
+ <xs:element maxOccurs="unbounded" ref="include"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="description">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="block"/>
+ <xs:element ref="quote"/>
+ <xs:element ref="br"/>
+ <xs:element ref="marker"/>
+ <xs:element ref="warning"/>
+ <xs:element ref="note"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="include">
+ <xs:complexType>
+ <xs:attribute name="file" use="required"/>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
diff --git a/lib/docbuilder/xsd/appref.xsd b/lib/docbuilder/xsd/appref.xsd
new file mode 100755
index 0000000000..b63839e494
--- /dev/null
+++ b/lib/docbuilder/xsd/appref.xsd
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:include schemaLocation="common.refs.xsd"/>
+ <!-- Structure -->
+ <xs:element name="appref">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="header"/>
+ <xs:element ref="app"/>
+ <xs:element ref="appsummary"/>
+ <xs:element ref="description"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="section"/>
+ <xs:element ref="funcs"/>
+ </xs:choice>
+ <xs:element ref="authors"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="app" type="xs:string"/>
+ <xs:element name="appsummary" type="xs:string"/>
+ <!--
+ `name' is used in common.refs.dtd and must therefore
+ be defined in each *ref. dtd
+ -->
+ <xs:element name="name" type="xs:string"/>
+</xs:schema>
diff --git a/lib/docbuilder/xsd/book.xsd b/lib/docbuilder/xsd/book.xsd
new file mode 100755
index 0000000000..b47962263a
--- /dev/null
+++ b/lib/docbuilder/xsd/book.xsd
@@ -0,0 +1,292 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:include schemaLocation="common.xsd"/>
+ <xs:include schemaLocation="common.table.xsd"/>
+ <xs:element name="book">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="header"/>
+ <xs:element minOccurs="0" ref="insidecover"/>
+ <xs:element ref="pagetext"/>
+ <xs:element ref="preamble"/>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="applications"/>
+ <xs:element ref="parts"/>
+ <xs:element ref="headline"/>
+ <xs:element ref="pagetext"/>
+ </xs:choice>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="listoffigures"/>
+ <xs:element minOccurs="0" ref="listoftables"/>
+ <xs:element minOccurs="0" ref="listofterms"/>
+ <xs:element minOccurs="0" ref="bibliography"/>
+ <xs:element minOccurs="0" ref="index"/>
+ </xs:sequence>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="header">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="title"/>
+ <xs:element ref="prepared"/>
+ <xs:element minOccurs="0" ref="responsible"/>
+ <xs:element ref="docno"/>
+ <xs:element minOccurs="0" ref="approved"/>
+ <xs:element minOccurs="0" ref="checked"/>
+ <xs:element ref="date"/>
+ <xs:element ref="rev"/>
+ <xs:element minOccurs="0" ref="file"/>
+ <xs:element minOccurs="0" ref="abbreviation"/>
+ </xs:sequence>
+ <xs:attribute name="titlestyle" default="normal">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="special"/>
+ <xs:enumeration value="normal"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="title">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="br"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="prepared">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="br"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="responsible">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="br"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="docno">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="br"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="approved">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="br"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="checked">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="br"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="date">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="br"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="rev">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="br"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="file">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="br"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="abbreviation">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="br"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="pagetext" type="xs:string"/>
+ <xs:element name="preamble">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="preface"/>
+ <xs:element minOccurs="0" ref="contents"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="preface">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="block"/>
+ <xs:element ref="quote"/>
+ <xs:element ref="br"/>
+ <xs:element ref="marker"/>
+ <xs:element ref="warning"/>
+ <xs:element ref="note"/>
+ <xs:element ref="table"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="insidecover">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="br"/>
+ <xs:element ref="theheader"/>
+ <xs:element ref="vfill"/>
+ <xs:element ref="tt"/>
+ <xs:element ref="bold"/>
+ <xs:element ref="include"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tt">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="br"/>
+ <xs:element ref="theheader"/>
+ <xs:element ref="vfill"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="bold">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="br"/>
+ <xs:element ref="theheader"/>
+ <xs:element ref="vfill"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="vfill">
+ <xs:complexType/>
+ </xs:element>
+ <xs:element name="theheader">
+ <xs:complexType>
+ <xs:attribute name="tag" default="none">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="title"/>
+ <xs:enumeration value="prepared"/>
+ <xs:enumeration value="responsible"/>
+ <xs:enumeration value="docno"/>
+ <xs:enumeration value="approved"/>
+ <xs:enumeration value="checked"/>
+ <xs:enumeration value="date"/>
+ <xs:enumeration value="rev"/>
+ <xs:enumeration value="file"/>
+ <xs:enumeration value="abbreviation"/>
+ <xs:enumeration value="none"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="applications">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="include"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="parts">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:element minOccurs="0" ref="description"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="include"/>
+ <xs:element ref="onepart"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="lift" default="no">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="yes"/>
+ <xs:enumeration value="no"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="headline" type="xs:string"/>
+ <xs:element name="index">
+ <xs:complexType/>
+ </xs:element>
+ <xs:element name="listoffigures">
+ <xs:complexType/>
+ </xs:element>
+ <xs:element name="listoftables">
+ <xs:complexType/>
+ </xs:element>
+ <xs:element name="listofterms">
+ <xs:complexType/>
+ </xs:element>
+ <xs:element name="bibliography">
+ <xs:complexType/>
+ </xs:element>
+ <xs:element name="contents">
+ <xs:complexType>
+ <xs:attribute name="level" default="2">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="0"/>
+ <xs:enumeration value="1"/>
+ <xs:enumeration value="2"/>
+ <xs:enumeration value="3"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="onepart">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:element minOccurs="0" ref="description"/>
+ <xs:element maxOccurs="unbounded" ref="include"/>
+ </xs:sequence>
+ <xs:attribute name="lift" default="no">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="yes"/>
+ <xs:enumeration value="no"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="description">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="block"/>
+ <xs:element ref="quote"/>
+ <xs:element ref="br"/>
+ <xs:element ref="marker"/>
+ <xs:element ref="warning"/>
+ <xs:element ref="note"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="include">
+ <xs:complexType>
+ <xs:attribute name="file" use="required"/>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
diff --git a/lib/docbuilder/xsd/chapter.xsd b/lib/docbuilder/xsd/chapter.xsd
new file mode 100755
index 0000000000..4d89baa988
--- /dev/null
+++ b/lib/docbuilder/xsd/chapter.xsd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:include schemaLocation="common.xsd"/>
+ <xs:include schemaLocation="common.header.xsd"/>
+ <xs:include schemaLocation="common.table.xsd"/>
+ <xs:include schemaLocation="common.image.xsd"/>
+ <!-- Structure -->
+ <xs:element name="chapter">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="header"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="block"/>
+ <xs:element ref="quote"/>
+ <xs:element ref="warning"/>
+ <xs:element ref="note"/>
+ <xs:element ref="br"/>
+ <xs:element ref="image"/>
+ <xs:element ref="marker"/>
+ <xs:element ref="table"/>
+ </xs:choice>
+ <xs:element maxOccurs="unbounded" ref="section"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="section">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="marker"/>
+ <xs:element ref="title"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="block"/>
+ <xs:element ref="quote"/>
+ <xs:element ref="warning"/>
+ <xs:element ref="note"/>
+ <xs:element ref="br"/>
+ <xs:element ref="image"/>
+ <xs:element ref="marker"/>
+ <xs:element ref="table"/>
+ <xs:element ref="section"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
diff --git a/lib/docbuilder/xsd/common.entities.xsd b/lib/docbuilder/xsd/common.entities.xsd
new file mode 100755
index 0000000000..52a5d35179
--- /dev/null
+++ b/lib/docbuilder/xsd/common.entities.xsd
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"/>
diff --git a/lib/docbuilder/xsd/common.header.xsd b/lib/docbuilder/xsd/common.header.xsd
new file mode 100755
index 0000000000..bfee4b8bb4
--- /dev/null
+++ b/lib/docbuilder/xsd/common.header.xsd
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="header">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="title"/>
+ <xs:element minOccurs="0" ref="shorttitle"/>
+ <xs:element ref="prepared"/>
+ <xs:element minOccurs="0" ref="responsible"/>
+ <xs:element ref="docno"/>
+ <xs:element minOccurs="0" ref="approved"/>
+ <xs:element minOccurs="0" ref="checked"/>
+ <xs:element ref="date"/>
+ <xs:element ref="rev"/>
+ <xs:element minOccurs="0" ref="file"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="title" type="xs:string"/>
+ <xs:element name="shorttitle" type="xs:string"/>
+ <xs:element name="prepared" type="xs:string"/>
+ <xs:element name="responsible" type="xs:string"/>
+ <xs:element name="docno" type="xs:string"/>
+ <xs:element name="approved" type="xs:string"/>
+ <xs:element name="checked" type="xs:string"/>
+ <xs:element name="date" type="xs:string"/>
+ <xs:element name="rev" type="xs:string"/>
+ <xs:element name="file" type="xs:string"/>
+</xs:schema>
diff --git a/lib/docbuilder/xsd/common.image.xsd b/lib/docbuilder/xsd/common.image.xsd
new file mode 100755
index 0000000000..17054eb23c
--- /dev/null
+++ b/lib/docbuilder/xsd/common.image.xsd
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="image">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="icaption">
+ <xs:attribute name="file" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:complexType name="icaption">
+ <xs:sequence>
+ <xs:element ref="icaption"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="icaption" type="xs:string"/>
+</xs:schema>
diff --git a/lib/docbuilder/xsd/common.refs.xsd b/lib/docbuilder/xsd/common.refs.xsd
new file mode 100755
index 0000000000..58b450669d
--- /dev/null
+++ b/lib/docbuilder/xsd/common.refs.xsd
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ This file contains common stuff for the *ref.dtd files.
+ Note that `name' is defined in each *ref.dtd.
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:include schemaLocation="common.xsd"/>
+ <xs:include schemaLocation="common.header.xsd"/>
+ <xs:element name="description">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="block"/>
+ <xs:element ref="quote"/>
+ <xs:element ref="br"/>
+ <xs:element ref="marker"/>
+ <xs:element ref="warning"/>
+ <xs:element ref="note"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="funcs">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="func"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="func">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="name"/>
+ <xs:element ref="fsummary"/>
+ <xs:element minOccurs="0" ref="type"/>
+ <xs:element minOccurs="0" ref="desc"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <!-- ELEMENT name is defined in each ref dtd -->
+ <xs:element name="fsummary">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="c"/>
+ <xs:element ref="em"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="type">
+ <xs:complexType>
+ <xs:sequence maxOccurs="unbounded">
+ <xs:element ref="v"/>
+ <xs:element minOccurs="0" ref="d"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="v" type="xs:string"/>
+ <xs:element name="d">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="c"/>
+ <xs:element ref="em"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="desc">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="block"/>
+ <xs:element ref="quote"/>
+ <xs:element ref="br"/>
+ <xs:element ref="marker"/>
+ <xs:element ref="warning"/>
+ <xs:element ref="note"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="authors">
+ <xs:complexType>
+ <xs:sequence maxOccurs="unbounded">
+ <xs:element ref="aname"/>
+ <xs:element ref="email"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="aname" type="xs:string"/>
+ <xs:element name="email" type="xs:string"/>
+ <xs:element name="section">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="marker"/>
+ <xs:element ref="title"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="block"/>
+ <xs:element ref="quote"/>
+ <xs:element ref="br"/>
+ <xs:element ref="marker"/>
+ <xs:element ref="warning"/>
+ <xs:element ref="note"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
diff --git a/lib/docbuilder/xsd/common.table.xsd b/lib/docbuilder/xsd/common.table.xsd
new file mode 100755
index 0000000000..cf63df4317
--- /dev/null
+++ b/lib/docbuilder/xsd/common.table.xsd
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="table">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="row"/>
+ <xs:element ref="tcaption"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="row">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="cell"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="cell">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="inline"/>
+ <xs:attribute name="align" default="left">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="left"/>
+ <xs:enumeration value="center"/>
+ <xs:enumeration value="right"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="valign" default="middle">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="top"/>
+ <xs:enumeration value="middle"/>
+ <xs:enumeration value="bottom"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tcaption" type="xs:string"/>
+</xs:schema>
diff --git a/lib/docbuilder/xsd/common.xsd b/lib/docbuilder/xsd/common.xsd
new file mode 100755
index 0000000000..3d43390bd8
--- /dev/null
+++ b/lib/docbuilder/xsd/common.xsd
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This file contains common stuff for all dtds. -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="block" abstract="true"/>
+ <xs:group name="inline">
+ <xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element ref="c"/>
+ <xs:element ref="em"/>
+ <xs:element ref="term"/>
+ <xs:element ref="cite"/>
+ <xs:element ref="br"/>
+ <xs:element ref="path"/>
+ <xs:element ref="seealso"/>
+ <xs:element ref="url"/>
+ <xs:element ref="marker"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+ <!-- XXX -->
+ <xs:element name="p" substitutionGroup="block">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="inline"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="pre" substitutionGroup="block">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="seealso"/>
+ <xs:element ref="url"/>
+ <xs:element ref="input"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="input">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="seealso"/>
+ <xs:element ref="url"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="code" substitutionGroup="block">
+ <xs:complexType mixed="true">
+ <xs:attribute name="type" default="none">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="erl"/>
+ <xs:enumeration value="c"/>
+ <xs:enumeration value="none"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="quote">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="p"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="warning">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="block"/>
+ <xs:element ref="quote"/>
+ <xs:element ref="br"/>
+ <xs:element ref="marker"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="note">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="block"/>
+ <xs:element ref="quote"/>
+ <xs:element ref="br"/>
+ <xs:element ref="marker"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="c" type="xs:string"/>
+ <xs:element name="em">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="c"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <!-- XXX -->
+ <xs:element name="term">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="termdef"/>
+ </xs:sequence>
+ <xs:attribute name="id" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="termdef" type="xs:string"/>
+ <xs:element name="cite">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="citedef"/>
+ </xs:sequence>
+ <xs:attribute name="id" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="citedef">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="ctitle"/>
+ <xs:element ref="cauthor"/>
+ <xs:element ref="chowpublished"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ctitle" type="xs:string"/>
+ <xs:element name="cauthor" type="xs:string"/>
+ <xs:element name="chowpublished" type="xs:string"/>
+ <!-- XXX -->
+ <xs:element name="br">
+ <xs:complexType/>
+ </xs:element>
+ <!-- Path -->
+ <xs:element name="path">
+ <xs:complexType mixed="true">
+ <xs:attribute name="unix" default=""/>
+ <xs:attribute name="windows" default=""/>
+ </xs:complexType>
+ </xs:element>
+ <!-- List -->
+ <xs:element name="list" substitutionGroup="block">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="item"/>
+ </xs:sequence>
+ <xs:attribute name="type" default="bulleted">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="ordered"/>
+ <xs:enumeration value="bulleted"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="taglist" substitutionGroup="block">
+ <xs:complexType>
+ <xs:sequence maxOccurs="unbounded">
+ <xs:element ref="tag"/>
+ <xs:element ref="item"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tag">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="c"/>
+ <xs:element ref="em"/>
+ <xs:element ref="seealso"/>
+ <xs:element ref="url"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="item">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="inline"/>
+ <xs:element ref="block"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <!-- References -->
+ <xs:element name="seealso">
+ <xs:complexType mixed="true">
+ <xs:attribute name="marker" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="url">
+ <xs:complexType mixed="true">
+ <xs:attribute name="href" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="marker">
+ <xs:complexType>
+ <xs:attribute name="id" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- CodeInclude -->
+ <xs:element name="codeinclude" substitutionGroup="block">
+ <xs:complexType>
+ <xs:attribute name="file" use="required"/>
+ <xs:attribute name="tag" default=""/>
+ <xs:attribute name="type" default="none">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="erl"/>
+ <xs:enumeration value="c"/>
+ <xs:enumeration value="none"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <!-- ErlEval -->
+ <xs:element name="erleval" substitutionGroup="block">
+ <xs:complexType>
+ <xs:attribute name="expr" use="required"/>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
diff --git a/lib/docbuilder/xsd/comref.xsd b/lib/docbuilder/xsd/comref.xsd
new file mode 100755
index 0000000000..61df4dd848
--- /dev/null
+++ b/lib/docbuilder/xsd/comref.xsd
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:include schemaLocation="common.refs.xsd"/>
+ <xs:element name="comref">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="header"/>
+ <xs:element ref="com"/>
+ <xs:element ref="comsummary"/>
+ <xs:element ref="description"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="section"/>
+ <xs:element ref="funcs"/>
+ </xs:choice>
+ <xs:element ref="authors"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="com" type="xs:string"/>
+ <xs:element name="comsummary" type="xs:string"/>
+ <!--
+ `name' is used in common.refs.dtd and must therefore
+ be defined in each *ref. dtd
+ -->
+ <xs:element name="name" type="xs:string"/>
+</xs:schema>
diff --git a/lib/docbuilder/xsd/cref.xsd b/lib/docbuilder/xsd/cref.xsd
new file mode 100755
index 0000000000..f1cbeddfff
--- /dev/null
+++ b/lib/docbuilder/xsd/cref.xsd
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:include schemaLocation="common.refs.xsd"/>
+ <xs:element name="cref">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="header"/>
+ <xs:element ref="lib"/>
+ <xs:element ref="libsummary"/>
+ <xs:element ref="description"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="section"/>
+ <xs:element ref="funcs"/>
+ </xs:choice>
+ <xs:element ref="authors"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="lib" type="xs:string"/>
+ <xs:element name="libsummary" type="xs:string"/>
+ <!--
+ `name' is used in common.refs.dtd and must therefore
+ be defined in each *ref. dtd
+ -->
+ <xs:element name="name">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="ret"/>
+ <xs:element ref="nametext"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ret" type="xs:string"/>
+ <xs:element name="nametext" type="xs:string"/>
+</xs:schema>
diff --git a/lib/docbuilder/xsd/erlref.xsd b/lib/docbuilder/xsd/erlref.xsd
new file mode 100755
index 0000000000..f6011b7bea
--- /dev/null
+++ b/lib/docbuilder/xsd/erlref.xsd
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:include schemaLocation="common.refs.xsd"/>
+ <xs:element name="erlref">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="header"/>
+ <xs:element ref="module"/>
+ <xs:element ref="modulesummary"/>
+ <xs:element ref="description"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="section"/>
+ <xs:element ref="funcs"/>
+ </xs:choice>
+ <xs:element ref="authors"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="module" type="xs:string"/>
+ <xs:element name="modulesummary" type="xs:string"/>
+ <!--
+ `name' is used in common.refs.dtd and must therefore
+ be defined in each *ref. dtd
+ -->
+ <xs:element name="name" type="xs:string"/>
+</xs:schema>
diff --git a/lib/docbuilder/xsd/fascicules.xsd b/lib/docbuilder/xsd/fascicules.xsd
new file mode 100755
index 0000000000..bfdb5bd604
--- /dev/null
+++ b/lib/docbuilder/xsd/fascicules.xsd
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Structure -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="fascicules">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="fascicule"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="fascicule">
+ <xs:complexType mixed="true">
+ <xs:attribute name="file" use="required"/>
+ <xs:attribute name="href" use="required"/>
+ <xs:attribute name="entry" default="no">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="yes"/>
+ <xs:enumeration value="no"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
diff --git a/lib/docbuilder/xsd/fileref.xsd b/lib/docbuilder/xsd/fileref.xsd
new file mode 100755
index 0000000000..8038f2115f
--- /dev/null
+++ b/lib/docbuilder/xsd/fileref.xsd
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:include schemaLocation="common.refs.xsd"/>
+ <xs:element name="fileref">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="header"/>
+ <xs:element ref="file"/>
+ <xs:element ref="filesummary"/>
+ <xs:element ref="description"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="section"/>
+ <xs:element ref="funcs"/>
+ </xs:choice>
+ <xs:element ref="authors"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <!-- Note: ELEMENT file is already defined -->
+ <xs:element name="filesummary" type="xs:string"/>
+ <!--
+ `name' is used in common.refs.dtd and must therefore
+ be defined in each *ref. dtd
+ -->
+ <xs:element name="name" type="xs:string"/>
+</xs:schema>
diff --git a/lib/docbuilder/xsd/part.xsd b/lib/docbuilder/xsd/part.xsd
new file mode 100755
index 0000000000..30d6ec0120
--- /dev/null
+++ b/lib/docbuilder/xsd/part.xsd
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:include schemaLocation="common.xsd"/>
+ <xs:include schemaLocation="common.header.xsd"/>
+ <xs:element name="part">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="header"/>
+ <xs:element minOccurs="0" ref="description"/>
+ <xs:element maxOccurs="unbounded" ref="include"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="description">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="block"/>
+ <xs:element ref="quote"/>
+ <xs:element ref="br"/>
+ <xs:element ref="marker"/>
+ <xs:element ref="warning"/>
+ <xs:element ref="note"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="include">
+ <xs:complexType>
+ <xs:attribute name="file" use="required"/>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>