From c4942dc01794f9ca76d8ce03e0ab539589afe9b1 Mon Sep 17 00:00:00 2001 From: Norman Walsh Date: Thu, 22 Jan 2009 13:56:40 +0000 Subject: [PATCH] RFE 1998852 provide a mechanism to group parameters --- docbook/relaxng/docbook/src/programming.rnc | 56 +++++++++++++++++++-- docbook/relaxng/tools/doc2dtd-tables.xsl | 1 - docbook/relaxng/tools/doc2dtd.xsl | 31 ++++++++++++ 3 files changed, 83 insertions(+), 5 deletions(-) diff --git a/docbook/relaxng/docbook/src/programming.rnc b/docbook/relaxng/docbook/src/programming.rnc index 5cea50f0f..1ae7f5657 100644 --- a/docbook/relaxng/docbook/src/programming.rnc +++ b/docbook/relaxng/docbook/src/programming.rnc @@ -165,7 +165,7 @@ div { db.funcprototype.attlist, db.modifier*, db.funcdef, - (db.void | db.varargs | (db.paramdef+, db.varargs?)), + (db.void | db.varargs | ((db.paramdef|db.group.paramdef)+, db.varargs?)), db.modifier* } } @@ -260,6 +260,30 @@ div { # ====================================================================== +[ + db:refname [ "group" ] + db:refpurpose [ "A group of parameters" ] +] +div { + + db.group.paramdef.role.attribute = attribute role { text } + db.group.paramdef.choice.attribute = db.choice.opt.attribute + + db.group.paramdef.attlist = + db.group.paramdef.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.group.paramdef.choice.attribute? + + db.group.paramdef = + element group { + db.group.paramdef.attlist, + (db.paramdef|db.group.paramdef)+ + } +} + +# ====================================================================== + [ db:refname [ "paramdef" ] db:refpurpose [ "Information about a function parameter in a programming language" ] @@ -605,7 +629,7 @@ div { db.constructorsynopsis.attlist, db.modifier*, db.methodname?, - (db.methodparam+ | db.void?), + ((db.methodparam|db.group.methodparam)+ | db.void?), db.exceptionname* } } @@ -631,7 +655,7 @@ div { db.destructorsynopsis.attlist, db.modifier*, db.methodname?, - (db.methodparam+ | db.void?), + ((db.methodparam|db.group.methodparam)+ | db.void?), db.exceptionname* } } @@ -658,7 +682,7 @@ div { db.modifier*, (db.type | db.void)?, db.methodname, - (db.methodparam+ | db.void), + ((db.methodparam|db.group.methodparam)+ | db.void), db.exceptionname*, db.modifier* } @@ -718,6 +742,30 @@ div { # ====================================================================== +[ + db:refname [ "group" ] + db:refpurpose [ "A group of method parameters" ] +] +div { + + db.group.methodparam.role.attribute = attribute role { text } + db.group.methodparam.choice.attribute = db.choice.opt.attribute + + db.group.methodparam.attlist = + db.group.methodparam.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.group.methodparam.choice.attribute? + + db.group.methodparam = + element group { + db.group.methodparam.attlist, + (db.methodparam|db.group.methodparam)+ + } +} + +# ====================================================================== + [ db:refname [ "varname" ] db:refpurpose [ "The name of a variable" ] diff --git a/docbook/relaxng/tools/doc2dtd-tables.xsl b/docbook/relaxng/tools/doc2dtd-tables.xsl index 3fd96b80b..39bff1956 100644 --- a/docbook/relaxng/tools/doc2dtd-tables.xsl +++ b/docbook/relaxng/tools/doc2dtd-tables.xsl @@ -169,6 +169,5 @@ - diff --git a/docbook/relaxng/tools/doc2dtd.xsl b/docbook/relaxng/tools/doc2dtd.xsl index c2cb0f368..9d885b971 100644 --- a/docbook/relaxng/tools/doc2dtd.xsl +++ b/docbook/relaxng/tools/doc2dtd.xsl @@ -82,6 +82,37 @@ + + + + + + + + + + + + + + + + + + + + + + (norepeat|repeat) + (opt|plain|req) + + + + + + + -- 2.40.0