From 0f261a39c8d073c0dc55c14ebb676d2ba09a83ae Mon Sep 17 00:00:00 2001 From: Norman Walsh Date: Wed, 6 Jul 2005 20:15:28 +0000 Subject: [PATCH] Support XInclude in more places --- docbook/relaxng/docbook/src/xinclude.rnc | 255 +++++++++++++++++++++++ 1 file changed, 255 insertions(+) diff --git a/docbook/relaxng/docbook/src/xinclude.rnc b/docbook/relaxng/docbook/src/xinclude.rnc index fd1c71944..b1cec1b68 100644 --- a/docbook/relaxng/docbook/src/xinclude.rnc +++ b/docbook/relaxng/docbook/src/xinclude.rnc @@ -10,13 +10,268 @@ # Release: $Id$ # +namespace ctrl = "http://nwalsh.com/xmlns/schema-control/" +namespace rng = "http://relaxng.org/ns/structure/1.0" namespace xi = "http://www.w3.org/2001/XInclude" namespace db = "http://docbook.org/ns/docbook" namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" +db.divisions |= db.xi.include +db.components |= db.xi.include + +db.toplevel.sections |= + ((db.section|db.xi.include)+, (db.simplesect|db.xi.include)*) + | (db.simplesect|db.xi.include)+ + +db.recursive.sections |= + ((db.section|db.xi.include)+, (db.simplesect|db.xi.include)*) + | (db.simplesect|db.xi.include)+ + +db.part.components |= db.xi.include + +db.article.components |= + ((db.section|db.xi.include)+, (db.simplesect|db.xi.include)*) + | (db.simplesect|db.xi.include)+ + db.all.blocks |= db.xi.include db.all.inlines |= db.xi.include +ctrl:conditional [ + pattern="db.refentry" + + rng:define [ + name = "db.toplevel.sections" + combine = "choice" + rng:oneOrMore [ + rng:choice [ + rng:ref [ name = "db.refentry" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + ] + + rng:define [ + name = "db.recursive.sections" + combine = "choice" + rng:oneOrMore [ + rng:choice [ + rng:ref [ name = "db.refentry" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + ] + + rng:define [ + name = "db.article.components" + combine = "choice" + rng:oneOrMore [ + rng:choice [ + rng:ref [ name = "db.refentry" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + ] + + rng:define [ + name = "db.toplevel.refsection" + combine = "choice" + rng:oneOrMore [ + rng:choice [ + rng:ref [ name = "db.refentry" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + ] + + rng:define [ + name = "db.secondlevel.refsection" + combine = "choice" + rng:oneOrMore [ + rng:choice [ + rng:ref [ name = "db.refentry" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + ] +] + +ctrl:conditional [ + pattern="db.sect1" + + rng:define [ + name = "db.toplevel.sections" + combine = "choice" + rng:choice [ + rng:group [ + rng:oneOrMore [ + rng:choice [ + rng:ref [ name = "db.sect1" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + rng:zeroOrMore [ + rng:choice [ + rng:ref [ name = "db.simplesect" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + ] + rng:oneOrMore [ + rng:choice [ + rng:ref [ name = "db.simplesect" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + ] + ] + + rng:define [ + name = "db.article.components" + combine = "choice" + rng:choice [ + rng:group [ + rng:oneOrMore [ + rng:choice [ + rng:ref [ name = "db.sect1" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + rng:zeroOrMore [ + rng:choice [ + rng:ref [ name = "db.simplesect" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + ] + rng:oneOrMore [ + rng:choice [ + rng:ref [ name = "db.simplesect" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + ] + ] + + rng:define [ + name = "db.sect1.sections" + combine = "choice" + rng:choice [ + rng:group [ + rng:oneOrMore [ + rng:choice [ + rng:ref [ name = "db.sect2" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + rng:zeroOrMore [ + rng:choice [ + rng:ref [ name = "db.simplesect" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + ] + rng:oneOrMore [ + rng:choice [ + rng:ref [ name = "db.simplesect" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + ] + ] + + rng:define [ + name = "db.sect2.sections" + combine = "choice" + rng:choice [ + rng:group [ + rng:oneOrMore [ + rng:choice [ + rng:ref [ name = "db.sect3" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + rng:zeroOrMore [ + rng:choice [ + rng:ref [ name = "db.simplesect" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + ] + rng:oneOrMore [ + rng:choice [ + rng:ref [ name = "db.simplesect" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + ] + ] + + rng:define [ + name = "db.sect3.sections" + combine = "choice" + rng:choice [ + rng:group [ + rng:oneOrMore [ + rng:choice [ + rng:ref [ name = "db.sect4" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + rng:zeroOrMore [ + rng:choice [ + rng:ref [ name = "db.simplesect" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + ] + rng:oneOrMore [ + rng:choice [ + rng:ref [ name = "db.simplesect" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + ] + ] + + rng:define [ + name = "db.sect4.sections" + combine = "choice" + rng:choice [ + rng:group [ + rng:oneOrMore [ + rng:choice [ + rng:ref [ name = "db.sect5" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + rng:zeroOrMore [ + rng:choice [ + rng:ref [ name = "db.simplesect" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + ] + rng:oneOrMore [ + rng:choice [ + rng:ref [ name = "db.simplesect" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + ] + ] + + rng:define [ + name = "db.sect5.sections" + combine = "choice" + rng:oneOrMore [ + rng:choice [ + rng:ref [ name = "db.simplesect" ] + rng:ref [ name = "db.xi.include" ] + ] + ] + ] +] + # ====================================================================== [ -- 2.40.0