Skip to content
Snippets Groups Projects
Commit 056c34f9 authored by Goik Martin's avatar Goik Martin
Browse files

qandasets may inherit title from immediate preceeding section/chapter/...

parent db55f558
No related branches found
No related tags found
No related merge requests found
......@@ -85,7 +85,14 @@
<tr>
<td>
<link linkend="{@xml:id}"> <!-- xrefstyle="template:%n, %t" -->
<xsl:copy-of select="db:title/node()"/>
<xsl:choose>
<xsl:when test="db:title">
<xsl:copy-of select="db:title/node()"/>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="preceding-sibling::db:title[1]/node()"/>
</xsl:otherwise>
</xsl:choose>
</link>
</td>
<td/>
......
#!/bin/sh
export SCRIPTBASENAME=$1
export PLUGINID=de.hdm_stuttgart.mi.$1
#
#Eclipsedoc related plugin parameters
#
export PPARAM='-p eclipse.plugin.name $1 -p eclipse.plugin.provider MartinGoik'
export BUILDROOT=/tmp
export BUILDBASE=$BUILDROOT/$SCRIPTBASENAME
export BUILDNAVI=$BUILDBASE/navi/$PLUGINID
saxon9he-xslt -s:$SCRIPTBASENAME.xml -xi:on -xsl:../Xsl/docbook2docbook.xsl > ${SCRIPTBASENAME}.answer.xml
/usr/share/xmlmind/bin/xxetool convert -p eclipse.plugin.id $PLUGINID $PPARAM db5.toEclipseHelp ${SCRIPTBASENAME}.answer.xml -u $BUILDNAVI
#end
<?xml version="1.0" encoding="utf-8"?>
<s:schema xmlns:s="http://www.ascc.net/xml/schematron"
xmlns:db="http://docbook.org/ns/docbook">
<s:ns prefix="db" uri="http://docbook.org/ns/docbook"/>
<s:pattern name="Glossary 'firstterm' type constraint">
<s:rule context="db:firstterm[@linkend]">
<s:assert test="local-name(//*[@xml:id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'">@linkend on firstterm must point to a glossentry.</s:assert>
</s:rule>
</s:pattern>
<s:pattern name="Footnote reference type constraint">
<s:rule context="db:footnoteref">
<s:assert test="local-name(//*[@xml:id=current()/@linkend]) = 'footnote' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'">@linkend on footnoteref must point to a footnote.</s:assert>
</s:rule>
</s:pattern>
<s:pattern name="Glossary 'glossterm' type constraint">
<s:rule context="db:glossterm[@linkend]">
<s:assert test="local-name(//*[@xml:id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'">@linkend on glossterm must point to a glossentry.</s:assert>
</s:rule>
</s:pattern>
<s:pattern name="Synopsis fragment type constraint">
<s:rule context="db:synopfragmentref">
<s:assert test="local-name(//*[@xml:id=current()/@linkend]) = 'synopfragment' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'">@linkend on synopfragmentref must point to a synopfragment.</s:assert>
</s:rule>
</s:pattern>
<s:pattern name="Glosssary 'see' type constraint">
<s:rule context="db:glosssee[@otherterm]">
<s:assert test="local-name(//*[@xml:id=current()/@otherterm]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@otherterm]) = 'http://docbook.org/ns/docbook'">@otherterm on glosssee must point to a glossentry.</s:assert>
</s:rule>
</s:pattern>
<s:pattern name="Glossary 'seealso' type constraint">
<s:rule context="db:glossseealso[@otherterm]">
<s:assert test="local-name(//*[@xml:id=current()/@otherterm]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@otherterm]) = 'http://docbook.org/ns/docbook'">@otherterm on glossseealso must point to a glossentry.</s:assert>
</s:rule>
</s:pattern>
<s:pattern name="Glossary term definition constraint">
<s:rule context="db:termdef">
<s:assert test="count(db:firstterm) = 1">A termdef must contain exactly one firstterm</s:assert>
</s:rule>
</s:pattern>
<s:pattern name="Cardinality of segments and titles">
<s:rule context="db:seglistitem">
<s:assert test="count(db:seg) = count(../db:segtitle)">The number of seg elements must be the same as the number of segtitle elements in the parent segmentedlist</s:assert>
</s:rule>
</s:pattern>
<s:pattern name="Root must have version">
<s:rule context="/db:para">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:set">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:book">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:dedication">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:acknowledgements">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:colophon">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:appendix">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:chapter">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:part">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:preface">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:section">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:article">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:sect1">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:sect2">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:sect3">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:sect4">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:sect5">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:reference">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:refentry">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:refsection">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:refsect1">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:refsect2">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:refsect3">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:glossary">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:bibliography">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:index">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:setindex">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
<s:rule context="/db:toc">
<s:assert test="@version">The root element must have a version attribute.</s:assert>
</s:rule>
</s:pattern>
<s:pattern name="Element exclusion">
<s:rule context="db:annotation">
<s:assert test="not(.//db:annotation)">annotation must not occur in the descendants of annotation</s:assert>
</s:rule>
<s:rule context="db:caution">
<s:assert test="not(.//db:caution)">caution must not occur in the descendants of caution</s:assert>
<s:assert test="not(.//db:important)">important must not occur in the descendants of caution</s:assert>
<s:assert test="not(.//db:note)">note must not occur in the descendants of caution</s:assert>
<s:assert test="not(.//db:tip)">tip must not occur in the descendants of caution</s:assert>
<s:assert test="not(.//db:warning)">warning must not occur in the descendants of caution</s:assert>
</s:rule>
<s:rule context="db:important">
<s:assert test="not(.//db:caution)">caution must not occur in the descendants of important</s:assert>
<s:assert test="not(.//db:important)">important must not occur in the descendants of important</s:assert>
<s:assert test="not(.//db:note)">note must not occur in the descendants of important</s:assert>
<s:assert test="not(.//db:tip)">tip must not occur in the descendants of important</s:assert>
<s:assert test="not(.//db:warning)">warning must not occur in the descendants of important</s:assert>
</s:rule>
<s:rule context="db:note">
<s:assert test="not(.//db:caution)">caution must not occur in the descendants of note</s:assert>
<s:assert test="not(.//db:important)">important must not occur in the descendants of note</s:assert>
<s:assert test="not(.//db:note)">note must not occur in the descendants of note</s:assert>
<s:assert test="not(.//db:tip)">tip must not occur in the descendants of note</s:assert>
<s:assert test="not(.//db:warning)">warning must not occur in the descendants of note</s:assert>
</s:rule>
<s:rule context="db:tip">
<s:assert test="not(.//db:caution)">caution must not occur in the descendants of tip</s:assert>
<s:assert test="not(.//db:important)">important must not occur in the descendants of tip</s:assert>
<s:assert test="not(.//db:note)">note must not occur in the descendants of tip</s:assert>
<s:assert test="not(.//db:tip)">tip must not occur in the descendants of tip</s:assert>
<s:assert test="not(.//db:warning)">warning must not occur in the descendants of tip</s:assert>
</s:rule>
<s:rule context="db:warning">
<s:assert test="not(.//db:caution)">caution must not occur in the descendants of warning</s:assert>
<s:assert test="not(.//db:important)">important must not occur in the descendants of warning</s:assert>
<s:assert test="not(.//db:note)">note must not occur in the descendants of warning</s:assert>
<s:assert test="not(.//db:tip)">tip must not occur in the descendants of warning</s:assert>
<s:assert test="not(.//db:warning)">warning must not occur in the descendants of warning</s:assert>
</s:rule>
<s:rule context="db:caption">
<s:assert test="not(.//db:caution)">caution must not occur in the descendants of caption</s:assert>
<s:assert test="not(.//db:equation)">equation must not occur in the descendants of caption</s:assert>
<s:assert test="not(.//db:example)">example must not occur in the descendants of caption</s:assert>
<s:assert test="not(.//db:figure)">figure must not occur in the descendants of caption</s:assert>
<s:assert test="not(.//db:important)">important must not occur in the descendants of caption</s:assert>
<s:assert test="not(.//db:note)">note must not occur in the descendants of caption</s:assert>
<s:assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of caption</s:assert>
<s:assert test="not(.//db:table)">table must not occur in the descendants of caption</s:assert>
<s:assert test="not(.//db:task)">task must not occur in the descendants of caption</s:assert>
<s:assert test="not(.//db:tip)">tip must not occur in the descendants of caption</s:assert>
<s:assert test="not(.//db:warning)">warning must not occur in the descendants of caption</s:assert>
</s:rule>
<s:rule context="db:equation">
<s:assert test="not(.//db:caution)">caution must not occur in the descendants of equation</s:assert>
<s:assert test="not(.//db:equation)">equation must not occur in the descendants of equation</s:assert>
<s:assert test="not(.//db:example)">example must not occur in the descendants of equation</s:assert>
<s:assert test="not(.//db:figure)">figure must not occur in the descendants of equation</s:assert>
<s:assert test="not(.//db:important)">important must not occur in the descendants of equation</s:assert>
<s:assert test="not(.//db:note)">note must not occur in the descendants of equation</s:assert>
<s:assert test="not(.//db:table)">table must not occur in the descendants of equation</s:assert>
<s:assert test="not(.//db:tip)">tip must not occur in the descendants of equation</s:assert>
<s:assert test="not(.//db:warning)">warning must not occur in the descendants of equation</s:assert>
</s:rule>
<s:rule context="db:example">
<s:assert test="not(.//db:caution)">caution must not occur in the descendants of example</s:assert>
<s:assert test="not(.//db:equation)">equation must not occur in the descendants of example</s:assert>
<s:assert test="not(.//db:example)">example must not occur in the descendants of example</s:assert>
<s:assert test="not(.//db:figure)">figure must not occur in the descendants of example</s:assert>
<s:assert test="not(.//db:important)">important must not occur in the descendants of example</s:assert>
<s:assert test="not(.//db:note)">note must not occur in the descendants of example</s:assert>
<s:assert test="not(.//db:table)">table must not occur in the descendants of example</s:assert>
<s:assert test="not(.//db:tip)">tip must not occur in the descendants of example</s:assert>
<s:assert test="not(.//db:warning)">warning must not occur in the descendants of example</s:assert>
</s:rule>
<s:rule context="db:figure">
<s:assert test="not(.//db:caution)">caution must not occur in the descendants of figure</s:assert>
<s:assert test="not(.//db:equation)">equation must not occur in the descendants of figure</s:assert>
<s:assert test="not(.//db:example)">example must not occur in the descendants of figure</s:assert>
<s:assert test="not(.//db:figure)">figure must not occur in the descendants of figure</s:assert>
<s:assert test="not(.//db:important)">important must not occur in the descendants of figure</s:assert>
<s:assert test="not(.//db:note)">note must not occur in the descendants of figure</s:assert>
<s:assert test="not(.//db:table)">table must not occur in the descendants of figure</s:assert>
<s:assert test="not(.//db:tip)">tip must not occur in the descendants of figure</s:assert>
<s:assert test="not(.//db:warning)">warning must not occur in the descendants of figure</s:assert>
</s:rule>
<s:rule context="db:table">
<s:assert test="not(.//db:caution)">caution must not occur in the descendants of table</s:assert>
<s:assert test="not(.//db:equation)">equation must not occur in the descendants of table</s:assert>
<s:assert test="not(.//db:example)">example must not occur in the descendants of table</s:assert>
<s:assert test="not(.//db:figure)">figure must not occur in the descendants of table</s:assert>
<s:assert test="not(.//db:important)">important must not occur in the descendants of table</s:assert>
<s:assert test="not(.//db:informaltable)">informaltable must not occur in the descendants of table</s:assert>
<s:assert test="not(.//db:note)">note must not occur in the descendants of table</s:assert>
<s:assert test="not(.//db:tip)">tip must not occur in the descendants of table</s:assert>
<s:assert test="not(.//db:warning)">warning must not occur in the descendants of table</s:assert>
</s:rule>
<s:rule context="db:footnote">
<s:assert test="not(.//db:caution)">caution must not occur in the descendants of footnote</s:assert>
<s:assert test="not(.//db:epigraph)">epigraph must not occur in the descendants of footnote</s:assert>
<s:assert test="not(.//db:equation)">equation must not occur in the descendants of footnote</s:assert>
<s:assert test="not(.//db:example)">example must not occur in the descendants of footnote</s:assert>
<s:assert test="not(.//db:figure)">figure must not occur in the descendants of footnote</s:assert>
<s:assert test="not(.//db:footnote)">footnote must not occur in the descendants of footnote</s:assert>
<s:assert test="not(.//db:important)">important must not occur in the descendants of footnote</s:assert>
<s:assert test="not(.//db:indexterm)">indexterm must not occur in the descendants of footnote</s:assert>
<s:assert test="not(.//db:note)">note must not occur in the descendants of footnote</s:assert>
<s:assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of footnote</s:assert>
<s:assert test="not(.//db:table)">table must not occur in the descendants of footnote</s:assert>
<s:assert test="not(.//db:task)">task must not occur in the descendants of footnote</s:assert>
<s:assert test="not(.//db:tip)">tip must not occur in the descendants of footnote</s:assert>
<s:assert test="not(.//db:warning)">warning must not occur in the descendants of footnote</s:assert>
</s:rule>
<s:rule context="db:sidebar">
<s:assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of sidebar</s:assert>
</s:rule>
</s:pattern>
<!-- Goik's additions -->
<s:pattern name="Mandatory title in exercise">
<s:rule context="db:qandaset">
<s:assert test="db:title or name(preceding-sibling::*[1])='db:title'">title required for qandaset.</s:assert>
</s:rule>
</s:pattern>
<s:pattern name="Mandatory defaultlabel">
<s:rule context="db:qandaset">
<s:assert test="@defaultlabel">Attribute defaultlabel must be defined.</s:assert>
</s:rule>
</s:pattern>
<s:pattern name="Mandatory language">
<s:rule context="db:programlisting">
<s:assert test="@language">Attribute language must be defined.</s:assert>
</s:rule>
</s:pattern>
<s:pattern name="Mandatory Id definition constraint">
<s:rule context="db:chapter|db:section|db:figure|db:equation|db:table|db:qandaset">
<s:assert test="@xml:id">Each chapter,section, subection,... must have a unique id.</s:assert>
</s:rule>
</s:pattern>
<s:pattern name="Mandatory coref target constraint">
<s:rule context="db:coref">
<s:assert test="//db:co[@xml:id=current()/@linkend]">coref target must be a co element.</s:assert>
</s:rule>
</s:pattern>
</s:schema>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment