Date: Fri, 21 Jun 2013 11:40:44 +0000 (UTC) From: Gabor Kovesdan <gabor@FreeBSD.org> To: doc-committers@freebsd.org, svn-doc-projects@freebsd.org Subject: svn commit: r41994 - projects/db5/share/xml Message-ID: <201306211140.r5LBeivc056181@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: gabor Date: Fri Jun 21 11:40:43 2013 New Revision: 41994 URL: http://svnweb.freebsd.org/changeset/doc/41994 Log: - Add a Schematron namespace declaration - Stock DocBook schematron constaints use different Schematron namespace so copy-paste them here because they cannot be processed with the ISO Schematron stylesheets Modified: projects/db5/share/xml/freebsd.sch Modified: projects/db5/share/xml/freebsd.sch ============================================================================== --- projects/db5/share/xml/freebsd.sch Fri Jun 21 11:38:45 2013 (r41993) +++ projects/db5/share/xml/freebsd.sch Fri Jun 21 11:40:43 2013 (r41994) @@ -5,6 +5,9 @@ <schema xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:db="http://docbook.org/ns/docbook" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + + <ns prefix="db" uri="http://docbook.org/ns/docbook"/> + <pattern name="Check file reference validity"> <rule context="//db:imagedata|//db:graphic"> <report test="contains(@fileref, '.')">Image reference (<xsl:value-of select="@fileref"/>) cannot have an extension; the proper format is inferred by the output type to generate.</report> @@ -40,4 +43,249 @@ <assert test="(. = 'freebsd8') or (. = 'freebsd9') or (. = 'freebsd10')">Invalid os value (<xsl:value-of select="."/>); must be either 'freebsd8', 'freebsd9' or 'freebsd10'.</assert> </rule> </pattern> + + <!-- DB 5.0 constraints --> + + <pattern name="Glossary 'firstterm' type constraint"> + <rule context="db:firstterm[@linkend]"> + <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.</assert> + </rule> + </pattern> + <pattern name="Footnote reference type constraint"> + <rule context="db:footnoteref"> + <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.</assert> + </rule> + </pattern> + <pattern name="Glossary 'glossterm' type constraint"> + <rule context="db:glossterm[@linkend]"> + <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.</assert> + </rule> + </pattern> + <pattern name="Synopsis fragment type constraint"> + <rule context="db:synopfragmentref"> + <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.</assert> + </rule> + </pattern> + <pattern name="Glosssary 'see' type constraint"> + <rule context="db:glosssee[@otherterm]"> + <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.</assert> + </rule> + </pattern> + <pattern name="Glossary 'seealso' type constraint"> + <rule context="db:glossseealso[@otherterm]"> + <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.</assert> + </rule> + </pattern> + <pattern name="Glossary term definition constraint"> + <rule context="db:termdef"> + <assert test="count(db:firstterm) = 1">A termdef must contain exactly one firstterm</assert> + </rule> + </pattern> + <pattern name="Cardinality of segments and titles"> + <rule context="db:seglistitem"> + <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</assert> + </rule> + </pattern> + <pattern name="Root must have version"> + <rule context="/db:para"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:set"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:book"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:dedication"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:acknowledgements"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:colophon"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:appendix"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:chapter"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:part"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:preface"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:section"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:article"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:sect1"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:sect2"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:sect3"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:sect4"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:sect5"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:reference"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:refentry"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:refsection"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:refsect1"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:refsect2"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:refsect3"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:glossary"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:bibliography"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:index"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:setindex"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + <rule context="/db:toc"> + <assert test="@version">The root element must have a version attribute.</assert> + </rule> + </pattern> + <pattern name="Element exclusion"> + <rule context="db:annotation"> + <assert test="not(.//db:annotation)">annotation must not occur in the descendants of annotation</assert> + </rule> + <rule context="db:caution"> + <assert test="not(.//db:caution)">caution must not occur in the descendants of caution</assert> + <assert test="not(.//db:important)">important must not occur in the descendants of caution</assert> + <assert test="not(.//db:note)">note must not occur in the descendants of caution</assert> + <assert test="not(.//db:tip)">tip must not occur in the descendants of caution</assert> + <assert test="not(.//db:warning)">warning must not occur in the descendants of caution</assert> + </rule> + <rule context="db:important"> + <assert test="not(.//db:caution)">caution must not occur in the descendants of important</assert> + <assert test="not(.//db:important)">important must not occur in the descendants of important</assert> + <assert test="not(.//db:note)">note must not occur in the descendants of important</assert> + <assert test="not(.//db:tip)">tip must not occur in the descendants of important</assert> + <assert test="not(.//db:warning)">warning must not occur in the descendants of important</assert> + </rule> + <rule context="db:note"> + <assert test="not(.//db:caution)">caution must not occur in the descendants of note</assert> + <assert test="not(.//db:important)">important must not occur in the descendants of note</assert> + <assert test="not(.//db:note)">note must not occur in the descendants of note</assert> + <assert test="not(.//db:tip)">tip must not occur in the descendants of note</assert> + <assert test="not(.//db:warning)">warning must not occur in the descendants of note</assert> + </rule> + <rule context="db:tip"> + <assert test="not(.//db:caution)">caution must not occur in the descendants of tip</assert> + <assert test="not(.//db:important)">important must not occur in the descendants of tip</assert> + <assert test="not(.//db:note)">note must not occur in the descendants of tip</assert> + <assert test="not(.//db:tip)">tip must not occur in the descendants of tip</assert> + <assert test="not(.//db:warning)">warning must not occur in the descendants of tip</assert> + </rule> + <rule context="db:warning"> + <assert test="not(.//db:caution)">caution must not occur in the descendants of warning</assert> + <assert test="not(.//db:important)">important must not occur in the descendants of warning</assert> + <assert test="not(.//db:note)">note must not occur in the descendants of warning</assert> + <assert test="not(.//db:tip)">tip must not occur in the descendants of warning</assert> + <assert test="not(.//db:warning)">warning must not occur in the descendants of warning</assert> + </rule> + <rule context="db:caption"> + <assert test="not(.//db:caution)">caution must not occur in the descendants of caption</assert> + <assert test="not(.//db:equation)">equation must not occur in the descendants of caption</assert> + <assert test="not(.//db:example)">example must not occur in the descendants of caption</assert> + <assert test="not(.//db:figure)">figure must not occur in the descendants of caption</assert> + <assert test="not(.//db:important)">important must not occur in the descendants of caption</assert> + <assert test="not(.//db:note)">note must not occur in the descendants of caption</assert> + <assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of caption</assert> + <assert test="not(.//db:table)">table must not occur in the descendants of caption</assert> + <assert test="not(.//db:task)">task must not occur in the descendants of caption</assert> + <assert test="not(.//db:tip)">tip must not occur in the descendants of caption</assert> + <assert test="not(.//db:warning)">warning must not occur in the descendants of caption</assert> + </rule> + <rule context="db:equation"> + <assert test="not(.//db:caution)">caution must not occur in the descendants of equation</assert> + <assert test="not(.//db:equation)">equation must not occur in the descendants of equation</assert> + <assert test="not(.//db:example)">example must not occur in the descendants of equation</assert> + <assert test="not(.//db:figure)">figure must not occur in the descendants of equation</assert> + <assert test="not(.//db:important)">important must not occur in the descendants of equation</assert> + <assert test="not(.//db:note)">note must not occur in the descendants of equation</assert> + <assert test="not(.//db:table)">table must not occur in the descendants of equation</assert> + <assert test="not(.//db:tip)">tip must not occur in the descendants of equation</assert> + <assert test="not(.//db:warning)">warning must not occur in the descendants of equation</assert> + </rule> + <rule context="db:example"> + <assert test="not(.//db:caution)">caution must not occur in the descendants of example</assert> + <assert test="not(.//db:equation)">equation must not occur in the descendants of example</assert> + <assert test="not(.//db:example)">example must not occur in the descendants of example</assert> + <assert test="not(.//db:figure)">figure must not occur in the descendants of example</assert> + <assert test="not(.//db:important)">important must not occur in the descendants of example</assert> + <assert test="not(.//db:note)">note must not occur in the descendants of example</assert> + <assert test="not(.//db:table)">table must not occur in the descendants of example</assert> + <assert test="not(.//db:tip)">tip must not occur in the descendants of example</assert> + <assert test="not(.//db:warning)">warning must not occur in the descendants of example</assert> + </rule> + <rule context="db:figure"> + <assert test="not(.//db:caution)">caution must not occur in the descendants of figure</assert> + <assert test="not(.//db:equation)">equation must not occur in the descendants of figure</assert> + <assert test="not(.//db:example)">example must not occur in the descendants of figure</assert> + <assert test="not(.//db:figure)">figure must not occur in the descendants of figure</assert> + <assert test="not(.//db:important)">important must not occur in the descendants of figure</assert> + <assert test="not(.//db:note)">note must not occur in the descendants of figure</assert> + <assert test="not(.//db:table)">table must not occur in the descendants of figure</assert> + <assert test="not(.//db:tip)">tip must not occur in the descendants of figure</assert> + <assert test="not(.//db:warning)">warning must not occur in the descendants of figure</assert> + </rule> + <rule context="db:table"> + <assert test="not(.//db:caution)">caution must not occur in the descendants of table</assert> + <assert test="not(.//db:equation)">equation must not occur in the descendants of table</assert> + <assert test="not(.//db:example)">example must not occur in the descendants of table</assert> + <assert test="not(.//db:figure)">figure must not occur in the descendants of table</assert> + <assert test="not(.//db:important)">important must not occur in the descendants of table</assert> + <assert test="not(.//db:informaltable)">informaltable must not occur in the descendants of table</assert> + <assert test="not(.//db:note)">note must not occur in the descendants of table</assert> + <assert test="not(.//db:tip)">tip must not occur in the descendants of table</assert> + <assert test="not(.//db:warning)">warning must not occur in the descendants of table</assert> + </rule> + <rule context="db:footnote"> + <assert test="not(.//db:caution)">caution must not occur in the descendants of footnote</assert> + <assert test="not(.//db:epigraph)">epigraph must not occur in the descendants of footnote</assert> + <assert test="not(.//db:equation)">equation must not occur in the descendants of footnote</assert> + <assert test="not(.//db:example)">example must not occur in the descendants of footnote</assert> + <assert test="not(.//db:figure)">figure must not occur in the descendants of footnote</assert> + <assert test="not(.//db:footnote)">footnote must not occur in the descendants of footnote</assert> + <assert test="not(.//db:important)">important must not occur in the descendants of footnote</assert> + <assert test="not(.//db:indexterm)">indexterm must not occur in the descendants of footnote</assert> + <assert test="not(.//db:note)">note must not occur in the descendants of footnote</assert> + <assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of footnote</assert> + <assert test="not(.//db:table)">table must not occur in the descendants of footnote</assert> + <assert test="not(.//db:task)">task must not occur in the descendants of footnote</assert> + <assert test="not(.//db:tip)">tip must not occur in the descendants of footnote</assert> + <assert test="not(.//db:warning)">warning must not occur in the descendants of footnote</assert> + </rule> + <rule context="db:sidebar"> + <assert test="not(.//db:sidebar)">sidebar must not occur in the descendants of sidebar</assert> + </rule> + </pattern> </schema>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201306211140.r5LBeivc056181>